Summary:        Libraries for terminal handling of character screens
Name:           ncurses
Version:        6.0
Release:        8%{?dist}
License:        MIT
URL:            http://invisible-island.net/ncurses/
Group:          Applications/System
Vendor:         VMware, Inc.
Distribution:   Photon
%global ncursessubversion 20171125
Source0:    ftp://ftp.invisible-island.net/ncurses/current/%{name}-%{version}-20171125.tgz
%define sha1    ncurses=179d79d707ac5040499294e3206fd558d52b604a
Provides:       libncurses.so.6()(64bit)
%description
The Ncurses package contains libraries for terminal-independent
handling of character screens.

%package compat
Summary: Ncurses compatibility libraries
Group: System Environment/Libraries
Provides: libncurses.so.5()(64bit)

%description compat
This package contains the ABI version 5 of the ncurses libraries for
compatibility.

%package    devel
Summary:    Header and development files for ncurses
Requires:   %{name} = %{version}-%{release}
Provides:   pkgconfig(ncurses)
%description    devel
It contains the libraries and header files to create applications 
%prep
%setup -q -n %{name}-%{version}-%{ncursessubversion}

%build
mkdir v6
pushd v6
ln -s ../configure .
./configure \
    --prefix=%{_prefix} \
    --mandir=%{_mandir} \
    --with-shared \
    --without-debug \
    --enable-pc-files \
    --enable-widec \
    --disable-lp64 \
    --with-chtype='long' \
    --with-mmask-t='long' \
    --disable-silent-rules
make %{?_smp_mflags}
popd
mkdir v5
pushd v5
ln -s ../configure .
./configure \
    --prefix=%{_prefix} \
    --mandir=%{_mandir} \
    --with-shared \
    --without-debug \
    --enable-pc-files \
    --enable-widec \
    --disable-lp64 \
    --with-chtype='long' \
    --with-mmask-t='long' \
    --disable-silent-rules \
    --with-abi-version=5
make %{?_smp_mflags}
popd
%install
make -C v5 DESTDIR=%{buildroot} install.libs
make -C v6 DESTDIR=%{buildroot} install
install -vdm 755 %{buildroot}/%{_lib}
ln -sfv ../..%{_lib}/$(readlink %{buildroot}%{_libdir}/libncursesw.so) %{buildroot}%{_libdir}/libncursesw.so
for lib in ncurses form panel menu ; do \
    rm -vf %{buildroot}%{_libdir}/lib${lib}.so ; \
    echo "INPUT(-l${lib}w)" > %{buildroot}%{_libdir}/lib${lib}.so ; \
    ln -sfv lib${lib}w.a %{buildroot}%{_libdir}/lib${lib}.a ; \
    ln -sfv /lib/pkgconfig/${lib}w.pc %{buildroot}/lib/pkgconfig/${lib}.pc
done
ln -sfv libncurses++w.a %{buildroot}%{_libdir}/libncurses++.a
rm -vf %{buildroot}%{_libdir}/libcursesw.so
echo "INPUT(-lncursesw)" > %{buildroot}%{_libdir}/libcursesw.so
ln -sfv libncurses.so %{buildroot}%{_libdir}/libcurses.so
ln -sfv libncursesw.a %{buildroot}%{_libdir}/libcursesw.a
ln -sfv libncurses.a %{buildroot}%{_libdir}/libcurses.a
install -vdm 755  %{buildroot}%{_defaultdocdir}/%{name}-%{version}
ln -sv %{_lib}/libncursesw.so.6.0 %{buildroot}%{_libdir}/libncurses.so.6
cp -v -R doc/* %{buildroot}%{_defaultdocdir}/%{name}-%{version}
ln -sv %{_lib}/libncursesw.so.5.9 %{buildroot}%{_libdir}/libncurses.so.5

%post   -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%post compat -p /sbin/ldconfig
%postun compat -p /sbin/ldconfig
%files
%defattr(-,root,root)
%{_bindir}/captoinfo
%{_bindir}/clear
%{_bindir}/tabs
%{_bindir}/tic
%{_bindir}/tset
%{_bindir}/reset
%{_bindir}/infocmp
%{_bindir}/tput
%{_bindir}/infotocap
%{_bindir}/toe
%{_libdir}/lib*.so.6*
%{_datadir}/tabset/*
%{_docdir}/ncurses-6.0/html/*
%{_docdir}/ncurses-6.0/*.doc
%{_mandir}/man7/*
%{_mandir}/man1/*
%{_mandir}/man5/*
%{_mandir}/man3/*
%{_datadir}/terminfo/*
%{_libdir}/terminfo

%files compat
%{_libdir}/lib*.so.5*
%{_bindir}/ncursesw5-config

%files devel
%{_bindir}/ncursesw6-config
%{_includedir}/*.h
%{_libdir}/libncurses.a
%{_libdir}/libformw.a
%{_libdir}/libpanel.a
%{_libdir}/libmenuw.a
/lib/pkgconfig/panelw.pc
/lib/pkgconfig/panel.pc
/lib/pkgconfig/form.pc
/lib/pkgconfig/menu.pc
/lib/pkgconfig/ncursesw.pc
/lib/pkgconfig/ncurses++w.pc
/lib/pkgconfig/menuw.pc
/lib/pkgconfig/formw.pc
/lib/pkgconfig/ncurses.pc
%{_libdir}/libncursesw.a
%{_libdir}/libcursesw.a
%{_libdir}/libncurses++w.a
%{_libdir}/libform.a
%{_libdir}/libcurses.a
%{_libdir}/libpanelw.a
%{_libdir}/libncurses++.a
%{_libdir}/libmenu.a
%{_libdir}/libncursesw.so
%{_libdir}/libpanelw.so
%{_libdir}/libcurses.so
%{_libdir}/libformw.so
%{_libdir}/libmenuw.so
%{_libdir}/libncurses.so
%{_libdir}/libform.so
%{_libdir}/libcursesw.so
%{_libdir}/libpanel.so
%{_libdir}/libmenu.so
%changelog
*   Wed Dec 06 2017 Xiaolin Li <xiaolinl@vmware.com> 6.0-8
-   version bump to 20171125, fix CVE-2017-16879
*   Tue Oct 17 2017 Priyesh Padmavilasom <ppadmavilasom@vmware.com> 6.0-7
-   Update to 6.0-7. Fix CVE-2017-13728
*   Fri Sep 15 2017 Xiaolin Li <xiaolinl@vmware.com> 6.0-6
-   ncurses-devel provides pkgconfig(ncurses)
*   Thu Jul 06 2017 Dheeraj Shetty <dheerajs@vmware.com> 6.0-5
-   Fix for CVE-2017-10684 and CVE-2017-10685
*   Wed Jun 07 2017 Bo Gan <ganb@vmware.com> 6.0-4
-   Remove ncurses /bin/sh dependency
*   Wed Mar 29 2017 Alexey Makhalov <amakhalov@vmware.com> 6.0-3
-   --with-chtype=long --with-mmask-t=long to avoid type clashes (1838226)
*   Tue May 24 2016 Priyesh Padmavilasom <ppadmavilasom@vmware.com> 6.0-2
-   GA - Bump release of all rpms
*   Wed Apr 27 2016 Xiaolin Li <xiaolinl@vmware.com> 6.0-1
-   Update to version 6.0.
*   Wed Nov 18 2015 Mahmoud Bassiouny <mbassiouny@vmware.com> 5.9-4
-   Package provides libncurses.so.5()(64bit)
*   Tue Nov 10 2015 Mahmoud Bassiouny <mbassiouny@vmware.com> 5.9-3
-   Add libncurses.so.5, and minor fix in the devel package
*   Mon May 18 2015 Touseef Liaqat <tliaqat@vmware.com> 5.9-2
-   Update according to UsrMove.
*   Wed Nov 5 2014 Divya Thaluru <dthaluru@vmware.com> 5.9-1
-   Initial build.  First version