%define        major %(echo %version | cut -d. -f 1)
%define        majver %(echo %version | cut -d. -f 1-2)
%define        patchver %(echo %version | cut -d. -f 3)
%define        tack_ver 1.07
Name:          ncurses
Version:       6.1.20190728
Release:       2mamba
Summary:       A CRT screen handling and optimization package
Group:         System/Libraries
Vendor:        openmamba
Distribution:  openmamba
Packager:      Silvan Calarco <silvan.calarco@mambasoft.it>
URL:           http://www.gnu.org/directory/GNU/ncurses.html
Source0:       http://ftp.gnu.org/pub/gnu/ncurses/ncurses-%{majver}.tar.gz
%if "%{?patchver}" != ""
Source1:       ftp://dickey.his.com/ncurses/%{majver}/patch-%{majver}-20190609.sh.gz
Source2:       ftp://dickey.his.com/ncurses/%{majver}/ncurses-%{majver}-20190615.patch.gz
Source3:       ftp://dickey.his.com/ncurses/%{majver}/ncurses-%{majver}-20190623.patch.gz
Source4:       ftp://dickey.his.com/ncurses/%{majver}/ncurses-%{majver}-20190630.patch.gz
Source5:       ftp://dickey.his.com/ncurses/%{majver}/ncurses-%{majver}-20190706.patch.gz
Source6:       ftp://dickey.his.com/ncurses/%{majver}/ncurses-%{majver}-20190713.patch.gz
Source7:       ftp://dickey.his.com/ncurses/%{majver}/ncurses-%{majver}-20190720.patch.gz
Source8:       ftp://dickey.his.com/ncurses/%{majver}/ncurses-%{majver}-20190727.patch.gz
Source20:      ftp://dickey.his.com/ncurses/%{majver}/ncurses-%{majver}-%{patchver}.patch.gz
%endif
License:       MIT
## AUTOBUILDREQ-BEGIN
BuildRequires: glibc-devel
## AUTOBUILDREQ-END
%if "%{stage1}" != "1"
BuildRequires: emacs >= 21.3
BuildRequires: libgpm-devel >= 1.20.1
BuildRequires: sharutils >= 4.2.1
%endif
Requires:      libncurses = %{version}-%{release}
BuildRoot:     %{_tmppath}/%{name}-%{version}-root

%description
The curses library routines are a terminal-independent method of updating character screens with reasonalble optimization. The ncurses (new curses) library is a freely distributable replacement for the discontinued 4.4BSD classic curses library.

%package terminfo
Summary:       Extra terminal information files
Group:         System/Libraries
Requires:      libncurses = %{version}-%{release}
Provides:      ncurses-terminfo-extras
Obsoletes:     ncurses-terminfo-extras

%description terminfo
Extra terminal information files.

%package -n libncurses
Summary:       The development files for applications which use ncurses
Group:         System/Libraries
Requires:      ncurses-terminfo

%description -n libncurses
The curses library routines are a terminal-independent method of updating character screens with reasonalble optimization. The ncurses (new curses) library is a freely distributable replacement for the discontinued 4.4BSD classic curses library.

%package -n libncurses-devel
Summary:       The development files for applications which use ncurses
Group:         Development/Libraries
Requires:      libncurses = %{version}-%{release}

%description -n libncurses-devel
The header files and libraries for developing applications that use the ncurses CRT screen handling and optimization package.

%prep
%setup -q -n %{name}-%{majver}

%if "%{?patchver}" != ""
gunzip -c %{SOURCE1} | bash

gunzip -c %{SOURCE2} | patch -p1
gunzip -c %{SOURCE3} | patch -p1
gunzip -c %{SOURCE4} | patch -p1
gunzip -c %{SOURCE5} | patch -p1
gunzip -c %{SOURCE6} | patch -p1
gunzip -c %{SOURCE7} | patch -p1
gunzip -c %{SOURCE8} | patch -p1
gunzip -c %{SOURCE20} | patch -p1
%endif

%build
mkdir narrowc widec
cd narrowc
ln -s ../configure .
%configure \
   --with-pkg-config-libdir=%{_libdir}/pkgconfig \
   --with-install-prefix=%{buildroot} \
   --with-normal \
   --with-shared \
   --with-gpm \
   --with-build-cc=%{_build}-gcc \
   --without-debug \
   --without-profile \
   --without-ada \
   --with-termlib \
   --enable-getcap \
   --enable-pc-files \
   --with-ticlib \
%if "%{stage1}" == "1"
   CPPFLAGS="-ldl"
%endif
#   --enable-termcap \

%make

cd ../widec
ln -s ../configure .
%configure \
   --with-pkg-config-libdir=%{_libdir}/pkgconfig \
   --with-install-prefix=%{buildroot} \
   --with-normal \
   --with-shared \
   --with-gpm \
   --enable-widec \
   --with-build-cc="%{_build}-gcc -D_GNU_SOURCE" \
   --without-debug \
   --without-profile \
   --without-ada \
   --enable-getcap \
   --enable-pc-files \
   --with-ticlib \
%if "%{stage1}" == "1"
   CPPFLAGS="-ldl"
%endif
#   --enable-termcap \

%make
cd ..

%install
[ "%{buildroot}" != / ] && rm -rf %{buildroot}
cd widec
make install \
%if "%{_host}" != "%{_build}"
TIC_PATH=tic
%endif

cd ../narrowc
make install \
%if "%{_host}" != "%{_build}"
TIC_PATH=tic
%endif

cd ..

ln -sf ../l/linux %{buildroot}%{_datadir}/terminfo/c/console

#mv %{buildroot}%{_datadir}/terminfo/x/xterm \
#   %{buildroot}%{_datadir}/terminfo/x/xterm-original
#ln -s xterm-xfree86 %{buildroot}%{_datadir}/terminfo/x/xterm

#install -d %{buildroot}/%{_lib}
#mv %{buildroot}%{_libdir}/libncurses.so.5* %{buildroot}/%{_lib}
#ln -sf /%{_lib}/libncurses.so.5 %{buildroot}%{_libdir}/libncurses.so
#ln -sf /%{_lib}/libncurses.so.5 %{buildroot}%{_libdir}/libcurses.so

#mv %{buildroot}%{_libdir}/libncursesw.so.5* %{buildroot}/%{_lib}
#ln -sf /%{_lib}/libncursesw.so.5 %{buildroot}%{_libdir}/libncursesw.so
#ln -sf /%{_lib}/libncursesw.so.5 %{buildroot}%{_libdir}/libcursesw.so

ln -sf libncurses.a %{buildroot}%{_libdir}/libcurses.a
ln -sf libncursesw.a %{buildroot}%{_libdir}/libcursesw.a

# fix strange permissions
chmod 755 %{buildroot}/%{_libdir}/*.so.*

#DEFAULT_TERMINFOS="\
#ansi ansi-m console dumb color_xterm linux pcansi-m screen vt52 vt100 vt102 vt220 \
#xterm xterm-256color"
#
#find %{buildroot}%{_datadir}/terminfo -type d | sed "s|^%{buildroot}|%dir |" >> filelist-terminfo
#find %{buildroot}%{_datadir}/terminfo -type f -o -type l | sed "s|^%{buildroot}||" > filelist-terminfo
#
#> filelist-terminfo-default
#for t in $DEFAULT_TERMINFOS; do
#   F=`grep "/${t}\$" filelist-terminfo`
#   [ "$F" ] && {
#      echo "$F" >> filelist-terminfo-default
#      sed -i "/\/${t}$/d" filelist-terminfo
#   }
#done
#:

%clean
[ "%{buildroot}" != / ] && rm -rf %{buildroot}

%post -n libncurses -p /sbin/ldconfig
%postun -n libncurses -p /sbin/ldconfig

%files
%defattr(-,root,root)
%{_bindir}/captoinfo
%{_bindir}/clear
%{_bindir}/infocmp
%{_bindir}/infotocap
%{_bindir}/reset
%{_bindir}/tabs
%{_bindir}/tic
%{_bindir}/toe
%{_bindir}/tput
%{_bindir}/tset
%{_mandir}/man1/*
%{_mandir}/man5/*
%{_mandir}/man7/*

%files -n libncurses
%defattr(-,root,root)
%{_libdir}/libform.so.*
%{_libdir}/libformw.so.*
%{_libdir}/libmenu.so.*
%{_libdir}/libmenuw.so.*
%{_libdir}/libncurses.so.*
%{_libdir}/libncursesw.so.*
%{_libdir}/libpanel.so.*
%{_libdir}/libpanelw.so.*
%{_libdir}/libtic.so.*
%{_libdir}/libticw.so.*
%{_libdir}/libtinfo.so.*
%{_libdir}/pkgconfig/tinfo.pc
#%{_datadir}/terminfo/*
%if "%{_target_cpu}" != "x86_64"
%{_libdir}/terminfo
%endif

%files -n libncurses-devel
%defattr(-,root,root)
%{_bindir}/ncurses%{major}-config
%{_bindir}/ncursesw%{major}-config
%{_datadir}/tabset/*
%{_includedir}/*
%{_libdir}/lib*.so
%{_libdir}/*.a
%{_libdir}/pkgconfig/form.pc
%{_libdir}/pkgconfig/formw.pc
%{_libdir}/pkgconfig/menu.pc
%{_libdir}/pkgconfig/menuw.pc
%{_libdir}/pkgconfig/ncurses++.pc
%{_libdir}/pkgconfig/ncurses++w.pc
%{_libdir}/pkgconfig/ncurses.pc
%{_libdir}/pkgconfig/ncursesw.pc
%{_libdir}/pkgconfig/panel.pc
%{_libdir}/pkgconfig/panelw.pc
%{_libdir}/pkgconfig/tic.pc
%{_libdir}/pkgconfig/ticw.pc
%{_mandir}/man3/*
%doc doc/html/hackguide.html
%doc doc/html/ncurses-intro.html
%doc c++/README*
%doc README ANNOUNCE doc/html/announce.html

%files terminfo
%defattr(-,root,root)
%dir %{_datadir}/terminfo
%{_datadir}/terminfo/*

%changelog
* Mon Nov 25 2019 Silvan Calarco <silvan.calarco@mambasoft.it> 6.1.20190728-2mamba
- rebuilt with --with-termlib to generate libtinfo

* Fri Aug 02 2019 Silvan Calarco <silvan.calarco@mambasoft.it> 6.1.20190728-1mamba
- update to 6.1.20190728

* Wed Feb 01 2017 Silvan Calarco <silvan.calarco@mambasoft.it> 6.0.20170121-3mamba
- provide all terminfo in ncurses-terminfo package required by libncurses; obsolete ncurses-terminfo-extras

* Wed Feb 01 2017 Silvan Calarco <silvan.calarco@mambasoft.it> 6.0.20170121-2mamba
- add xterm-256color to default installed terminfos as required by recent konsole

* Fri Jan 27 2017 Silvan Calarco <silvan.calarco@mambasoft.it> 6.0.20170121-1mamba
- update to 6.0.20170121

* Fri Jan 27 2017 Silvan Calarco <silvan.calarco@mambasoft.it> 6.0.20160910-1mamba
- update to 6.0.20160910

* Sat Feb 20 2016 Silvan Calarco <silvan.calarco@mambasoft.it> 6.0.20160213-1mamba
- update to 6.0.20160213

* Wed Nov 25 2015 Silvan Calarco <silvan.calarco@mambasoft.it> 6.0-1mamba
- update to 6.0

* Mon May 27 2013 Silvan Calarco <silvan.calarco@mambasoft.it> 5.9.20130525-1mamba
- update to 5.9.20130525

* Sat Apr 28 2012 Silvan Calarco <silvan.calarco@mambasoft.it> 5.9.20110702-3mamba
- add screen to the list of default terminfos

* Mon Oct 17 2011 Silvan Calarco <silvan.calarco@mambasoft.it> 5.9.20110702-2mamba
- package most terminfo files apart

* Sat Jul 16 2011 Automatic Build System <autodist@mambasoft.it> 5.9.20110702-1mamba
- update to 5.9.20110702

* Fri Mar 11 2011 Silvan Calarco <silvan.calarco@mambasoft.it> 5.8.20110307-1mamba
- update to 5.8.20110307

* Fri Mar 04 2011 Automatic Build System <autodist@mambasoft.it> 5.8-1mamba
- update to 5.8

* Fri Aug 20 2010 Silvan Calarco <silvan.calarco@mambasoft.it> 5.7.20100814-1mamba
- update to 5.7.20100814
- added patches from dickey.his.com
- moved terminfo to libncurses package and removed requirement for ncurses

* Thu Nov 13 2008 Silvan Calarco <silvan.calarco@mambasoft.it> 5.7-1mamba
- automatic update to 5.7 by autodist

* Tue Jun 03 2008 Silvan Calarco <silvan.calarco@mambasoft.it> 5.6-1mamba
- update to 5.6

* Mon Nov 28 2005 Davide Madrisan <davide.madrisan@qilinux.it> 5.5-1qilnx
- update to version 5.5 by autospec

* Fri Apr 15 2005 Davide Madrisan <davide.madrisan@qilinux.it> 5.4-3qilnx
- enabled wide-char/UTF-8 code (support required by aspell)
- added patches from ftp://dickey.his.com/ncurses/5.4/

* Thu Jan 27 2005 Davide Madrisan <davide.madrisan@qilinux.it> 5.4-2qilnx
- enabled support for libgpm
- added missing %%post and %%postun scriptlets

* Mon Mar 22 2004 Davide Madrisan <davide.madrisan@qilinux.it> 5.4-1qilnx
- new version rebuild
- specfile updates

* Wed Jul 30 2003 Silvan Calarco <silvan.calarco@qinet.it> 5.3-5qilnx
- symlinked xterm-xfree86 to xterm and renamed xterm to xterm-original

* Wed Apr 23 2003 Silvan Calarco <silvan.calarco@qinet.it> 5.3-4qilnx
- added inclusion of terminfo dir

* Tue Apr 22 2003 Silvan Calarco <silvan.calarco@qinet.it> 5.3-3qilnx
- added inclusion of symlinks created after install

* Mon Apr 14 2003 Luca Tinelli <luca.tinelli@qinet.it> 5.3-2qilnx
- RPM Modified included files list

* Mon Apr 14 2003 Alessandro Ramazzina <alessandro.ramazzina@qinet.it> 5.3-1qilnx
- creation of ncurses package
