Name: ncurses
#!BuildIgnore: terminfo
BuildRequires: gcc-c++
+BuildRequires: pkg-config
%define terminfo() %{_datadir}/%{0}/%{1}
%define tabset() %{_datadir}/%{0}/%{1}
Version: 5.9
Source4: ncurses-rpmlintrc
Source6: edit.sed
Source7: baselibs.conf
+Source1001: ncurses.manifest
%global _sysconfdir /etc
%global _miscdir %{_datadir}/misc
%global _incdir %{_includedir}
%global root %{_tmppath}/%{name}-%{version}-store
-%global abi %(ver=%{version}; echo ${ver%.*})
%description
As soon as a text application needs to directly control its output to
%package -n ncurses-utils
Summary: Tools using the new curses libraries
License: MIT
-Group: Base/Tools
+Group: Base/Utilities
Provides: ncurses:%{_bindir}/tput
%description -n ncurses-utils
reset -- terminal initialization utility
-%package -n terminfo-base
+%package -n terminfo-base-full
Summary: A terminal descriptions database
License: MIT
-Group: Base/Tools
+Group: Base/Utilities
Provides: ncurses:%{_datadir}/tabset
+Provides: terminfo-base
-%description -n terminfo-base
+%description -n terminfo-base-full
This is the terminfo basic database, maintained in the ncurses package.
This database is the official successor to the 4.4BSD termcap file and
contains information about any known terminal. The ncurses library
makes use of this database to use terminals correctly.
-%if %abi == 5
+%package -n terminfo-base-mini
+Summary: A terminal descriptions database
+License: MIT
+Group: Base/Utilities
+Provides: ncurses:%{_datadir}/tabset
+Provides: terminfo-base
+
+%description -n terminfo-base-mini
+This is the terminfo basic database, maintained in the ncurses package.
+This database is the official successor to the 4.4BSD termcap file and
+contains information about any known terminal. The ncurses library
+makes use of this database to use terminals correctly.
%package -n libncurses
Summary: The New curses Libraries
License: MIT
Group: Base/Libraries
Requires: terminfo-base
+Recommends: terminfo-base-full
Provides: ncurses = %{version}
Obsoletes: ncurses < %{version}
Recommends: ncurses-utils = %{version}
The ncurses library is used by the most curses based terminal
applications for controling its output and input to the screen.
-%endif
%package -n libncurses6
Summary: The New curses Libraries
License: MIT
Group: Base/Libraries
Requires: terminfo-base
-%if %abi == 5
+Recommends: terminfo-base-full
Provides: ncurses = 6.0
-%else
-Provides: ncurses = %{version}
-%endif
-%description -n libncurses6
+%description -n libncurses6
The ncurses library is used by the most curses based terminal
applications for controling its output and input to the screen.
%package -n terminfo
Summary: A terminal descriptions database
License: Public-Domain
-Group: Base/Tools
+Group: Base/Utilities
%description -n terminfo
This is the terminfo reference database, maintained in the ncurses
%package -n ncurses-devel
Summary: Include Files and Libraries mandatory for Development
License: MIT
-Group: Development/Libraries
+Group: Base/Development
Provides: ncurses:%{_incdir}/ncurses.h
Requires: ncurses = %{version}-%{release}
-%if %abi >= 6
-Requires: libncurses6 = %{version}-%{release}
-%else
Requires: libncurses = %{version}-%{release}
Requires: libncurses6 = %{version}-%{release}
-%endif
%description -n ncurses-devel
This package contains all necessary include files and libraries needed
%prep
%setup -q -n ncurses-%{version}
+cp %{SOURCE1001} .
rm -vf include/ncurses_dll.h
rm -vf mkdirs.sh
rm -vf tar-copy.sh
--enable-no-padding \
--enable-symlinks \
--enable-sigwinch \
+ --enable-pc-files \
+ --with-pkg-config-libdir=%{_libdir}/pkgconfig \
+ --with-pkg-config \
--enable-colorfgbg \
--enable-sp-funcs \
-%if %abi >= 6
- --with-pthread \
- --enable-reentrant \
- --enable-ext-mouse \
- --disable-widec \
- --enable-ext-colors \
-%else
--without-pthread \
--disable-reentrant \
--disable-ext-mouse \
--disable-widec \
--disable-ext-colors \
-%endif
--enable-weak-symbols \
--enable-wgetch-events \
--enable-pthreads-eintr \
--disable-widec \
--disable-tic-depends \
--with-ticlib=tic
+ #--with-pkg-config-libdir=%{_libdir}/pkgconfig \
#
# The configure line
#
make install DESTDIR=%{root} includedir=${inc} libdir=${lib}
ln -sf ${inc##*/}/{curses,ncurses,term,termcap}.h %{root}${inc%%/*}/
sh %{S:6} --cflags "-I${inc}" --libs "-lncurses" --libs "-ltinfo" %{root}%{_bindir}/ncurses5-config
-%if %abi < 6
#
# Now use --with-pthread for reentrant pthread support (abi > 5).
#
pushd man
sh ../edit_man.sh normal installing %{root}%{_mandir} . ncurses6-config.1
popd
-%endif
#
# Now use --enable-widec for UTF8/wide character support.
# The libs with 16 bit wide characters are binary incompatible
# to the normal 8bit wide character libs.
#
-%if %abi >= 6
- eval ./${c#*./} --with-pthread --enable-reentrant --enable-ext-mouse --enable-widec --enable-ext-colors --without-progs
-%else
eval ./${c#*./} --disable-ext-mouse --enable-widec --disable-ext-colors --without-progs
-%endif
find -name fallback.o | xargs -r rm -vf
cp fallback.c.backup ncurses/fallback.c
make %{?_smp_mflags}
pushd man
sh ../edit_man.sh normal installing %{root}%{_mandir} . ncursesw5-config.1
popd
-%if %abi < 6
#
# Do both --enable-widec and --with-pthread (abi > 5).
#
pushd man
sh ../edit_man.sh normal installing %{root}%{_mandir} . ncursesw6-config.1
popd
-%endif
%install
GZIP="-9"
export GZIP
- (cd %{root}/; tar -cpsSf - *)|tar -xpsSf - -C %{buildroot}/
+ (cd %{root}/; tar -cpSf - *)|tar -xpsSf - -C %{buildroot}/
rm -rf %{root}
- mkdir %{buildroot}/%{_lib}
+ #mkdir -p %{buildroot}/%{_lib}
for model in libncurses libncursest libncursesw libncursestw libtinfo
do
- for lib in %{buildroot}%{_libdir}/${model}.so.* ; do
- test -e "${lib}" || continue
- mv "${lib}" %{buildroot}/%{_lib}/ || continue
- done
- for lib in %{buildroot}/%{_lib}/${model}.so.%{abi} ; do
+ #for lib in %{buildroot}%{_libdir}/${model}.so.* ; do
+ # test -e "${lib}" || continue
+ # mv "${lib}" %{buildroot}/%{_lib}/ || continue
+ #done
+ for lib in %{buildroot}/%{_libdir}/${model}.so.5 ; do
test -e "${lib}" || continue
test -L "${lib}" || continue
lib=${lib#%{buildroot}}
echo '/* GNU ld script */' > ${lnk}
echo "INPUT(${lib} AS_NEEDED(-ltinfo))" >> ${lnk}
;;
- *) ln -sf ${lib} %{buildroot}%{_libdir}/${model}.so
+ #*) ln -sf ${lib} %{buildroot}%{_libdir}/${model}.so
esac
done
done
-%if 0
- lnk=%{buildroot}%{_libdir}/libtermcap.so
- echo '/* GNU ld script */' > ${lnk}
- echo "INPUT(AS_NEEDED(-ltinfo))" >> ${lnk}
-%endif
- chmod 0755 %{buildroot}/%{_lib}/lib*.so.*
+ chmod 0755 %{buildroot}/%{_libdir}/lib*.so.*
chmod 0755 %{buildroot}/%{_libdir}/lib*.so.*
chmod a-x %{buildroot}/%{_libdir}/lib*.a
-%if %abi < 6
if test -d %{buildroot}%{_libdir}/ncurses6 ; then
mv %{buildroot}%{_libdir}/ncurses6/*.so.6* %{buildroot}%{_libdir}/
for lib in %{buildroot}%{_libdir}/ncurses6/*.so
do
lnk=$lib
- lib=/%{_lib}/${lib##*/}.6
+ lib=/%{_libdir}/${lib##*/}.6
case "${lib##*/}" in
libncurses*)
rm -f "${lnk}"
echo '/* GNU ld script */' > ${lnk}
- echo "INPUT(${lib} AS_NEEDED(-ltinfo))" >> ${lnk}
+ echo "INPUT(${lib} AS_NEEDED(-ltinfo))" >> ${lnk}
;;
libtinfo*)
test -L "${lnk}" || continue
do
for lib in %{buildroot}%{_libdir}/${model}.so.* ; do
test -e "${lib}" || continue
- mv "${lib}" %{buildroot}/%{_lib}/ || continue
+ #mv "${lib}" %{buildroot}/%{_lib}/ || continue
done
- for lib in %{buildroot}/%{_lib}/${model}.so.6 ; do
+ for lib in %{buildroot}/%{_libdir}/${model}.so.6 ; do
test -e "${lib}" || continue
test -L "${lib}" || continue
lib=${lib#%{buildroot}}
echo 'SEARCH_DIR(%{_libdir}/ncurses6)' >> ${lnk}
echo "INPUT(${lib} AS_NEEDED(-ltinfo))" >> ${lnk}
;;
- *) ln -sf ${lib} %{buildroot}%{_libdir}/ncurses6/${model}.so
+ *) : #ln -sf ${lib} %{buildroot}%{_libdir}/ncurses6/${model}.so
esac
done
done
- chmod 0755 %{buildroot}/%{_lib}/lib*.so.6*
+ chmod 0755 %{buildroot}/%{_libdir}/lib*.so.6*
chmod 0755 %{buildroot}/%{_libdir}/lib*.so.6*
chmod a-x %{buildroot}/%{_libdir}/ncurses6/lib*.a
fi
-%endif
test -n "%{buildroot}" || ldconfig -N
mkdir -p %{buildroot}%{_defaultdocdir}/ncurses
bzip2 -c misc/terminfo.src > misc/terminfo.src.bz2
%else
BUILD_TIC=$PWD/../progs/tic
%endif
+ # termcap.mini
+ $BUILD_TIC -C -r ../misc/terminfo_mini.src | grep -E -v '^#'; } > termcap
+ # Gererate new termcap entries for various linux consoles
+ TERMCAP=termcap \
+ TERMINFO=%{buildroot}%{_datadir}/terminfo \
+ bash %{SOURCE2}
+ install -m 0644 termcap.new %{buildroot}%{_miscdir}/termcap.mini
+
+{ echo "# See annotated version in %{_defaultdocdir}/ncurses/terminfo.src.bz2"
+%if 0%{?_crossbuild}
+ BUILD_TIC=/usr/bin/tic
+%else
+ BUILD_TIC=$PWD/../progs/tic
+%endif
+ # termcap.full
$BUILD_TIC -C -r ../misc/terminfo.src | grep -E -v '^#'; } > termcap
# Gererate new termcap entries for various linux consoles
TERMCAP=termcap \
TERMINFO=%{buildroot}%{_datadir}/terminfo \
bash %{SOURCE2}
- install -m 0644 termcap.new %{buildroot}%{_miscdir}/termcap
+ install -m 0644 termcap.new %{buildroot}%{_miscdir}/termcap.full
+
popd
unset LD_LIBRARY_PATH
if test `%{_bindir}/id -u` = '0' ; then
- chown root:root %{buildroot}%{_miscdir}/termcap
- chmod 0644 %{buildroot}%{_miscdir}/termcap
+ chown root:root %{buildroot}%{_miscdir}/termcap.full
+ chmod 0644 %{buildroot}%{_miscdir}/termcap.full
+
+ chown root:root %{buildroot}%{_miscdir}/termcap.mini
+ chmod 0644 %{buildroot}%{_miscdir}/termcap.mini
fi
+
ln -sf %{_miscdir}/termcap %{buildroot}%{_sysconfdir}/termcap
+
+ (cat > default_mini.list) <<-EOF
+ %{tabset std}
+ %{tabset stdcrt}
+ %{tabset vt100}
+ %{tabset vt300}
+ %{terminfo d/dumb}
+ %{terminfo l/linux}
+ %{terminfo v/vt100}
+ %{terminfo v/vt102}
+ %{terminfo x/xterm}
+ EOF
+ find %{buildroot}%{tabset ""} %{buildroot}%{terminfo ""} \
+ \( -type f -or -type l \) | \
+ sed "s@^%{buildroot}@@g" | \
+ grep -v -F -x -f default_mini.list \
+ > extension_mini.list
+
(cat > default.list) <<-EOF
%{tabset std}
%{tabset stdcrt}
grep -v -F -x -f default.list \
> extension.list
rm -f %{buildroot}%{_prefix}/lib/terminfo
-%if %abi < 6
%post -n libncurses -p /sbin/ldconfig
%postun -n libncurses -p /sbin/ldconfig
-%endif
%post -n libncurses6 -p /sbin/ldconfig
%postun -n libncurses6 -p /sbin/ldconfig
-%files -n terminfo-base -f default.list
+%post -n terminfo-base-mini
+ln -sf %{_miscdir}/termcap.mini %{_miscdir}/termcap
+
+%post -n terminfo-base-full
+ln -sf %{_miscdir}/termcap.full %{_miscdir}/termcap
+
+%files -n terminfo-base-mini -f default_mini.list
+%manifest %{name}.manifest
%defattr(-,root,root)
+%license package/debian/copyright
%{_sysconfdir}/termcap
-%config %{_miscdir}/termcap
+%config %{_miscdir}/termcap.mini
+%dir %{_datadir}/tabset/
+/usr/share/terminfo/d/dumb
+/usr/share/terminfo/l/linux
+/usr/share/terminfo/v/vt100
+/usr/share/terminfo/v/vt102
+/usr/share/terminfo/x/xterm
+
+%files -n terminfo-base-full -f default.list
+%manifest %{name}.manifest
+%defattr(-,root,root)
+%license package/debian/copyright
+%{_sysconfdir}/termcap
+%config %{_miscdir}/termcap.full
%dir %{_datadir}/tabset/
%dir %{_datadir}/terminfo/
%dir %{_datadir}/terminfo/*/
%files -n ncurses-utils
+%manifest %{name}.manifest
%defattr(-,root,root)
+%license package/debian/copyright
%{_bindir}/clear
%{_bindir}/reset
%{_bindir}/tabs
%{_bindir}/toe
%{_bindir}/tput
%{_bindir}/tset
-%doc %{_mandir}/man1/clear.1.gz
-%doc %{_mandir}/man1/reset.1.gz
-%doc %{_mandir}/man1/tabs.1.gz
-%doc %{_mandir}/man1/toe.1.gz
-%doc %{_mandir}/man1/tput.1.gz
-%doc %{_mandir}/man1/tset.1.gz
-%doc %{_mandir}/man5/*.gz
-%if %abi == 5
%files -n libncurses
+%manifest %{name}.manifest
%defattr(-,root,root)
-/%{_lib}/lib*.so.5*
+%license package/debian/copyright
%{_libdir}/lib*.so.5*
-%endif
%files -n libncurses6
+%manifest %{name}.manifest
%defattr(-,root,root)
-/%{_lib}/lib*.so.6*
+%license package/debian/copyright
%{_libdir}/lib*.so.6*
%files -n ncurses-devel
+%manifest %{name}.manifest
%defattr(-,root,root)
-%dir %{_defaultdocdir}/ncurses/
-%doc %{_defaultdocdir}/ncurses/*
+%license package/debian/copyright
%{_bindir}/ncurses*-config
%{_bindir}/captoinfo
%{_bindir}/infocmp
%dir %{_libdir}/ncurses6/
%{_libdir}/lib*.a
%{_libdir}/lib*.so
+%{_libdir}/pkgconfig/*.pc
%{_libdir}/ncurses6/lib*.a
%{_libdir}/ncurses6/lib*.so
-%doc %{_mandir}/man1/*-config.1.gz
-%doc %{_mandir}/man1/captoinfo.1.gz
-%doc %{_mandir}/man1/infocmp.1.gz
-%doc %{_mandir}/man1/infotocap.1.gz
-%doc %{_mandir}/man1/tic.1.gz
-%doc %{_mandir}/man3/*.gz
-%doc %{_mandir}/man7/*.gz
-
%files -f extension.list -n terminfo
+%manifest %{name}.manifest
%defattr(-,root,root)
+%license package/debian/copyright
+
+%docs_package
+%license package/debian/copyright
+%dir %{_defaultdocdir}/ncurses/
+%doc %{_defaultdocdir}/ncurses/*
%changelog