Reduced terminfo file
[platform/upstream/ncurses.git] / packaging / ncurses.spec
index 71856fc..45ddf9f 100644 (file)
@@ -18,6 +18,7 @@
 Name:           ncurses
 #!BuildIgnore: terminfo
 BuildRequires:  gcc-c++
+BuildRequires:  pkg-config
 %define terminfo() %{_datadir}/%{0}/%{1}
 %define tabset()   %{_datadir}/%{0}/%{1}
 Version:        5.9
@@ -31,11 +32,11 @@ Source2:        handle.linux
 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
@@ -48,7 +49,7 @@ characters, and panels.
 %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
@@ -66,25 +67,38 @@ tset  -- terminal-initialization utility
 
 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}
@@ -93,27 +107,23 @@ 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
@@ -127,15 +137,11 @@ terminals is already included in the terminfo-base package.
 %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
@@ -143,6 +149,7 @@ to develop applications that require these.
 
 %prep
 %setup -q -n ncurses-%{version}
+cp %{SOURCE1001} .
 rm -vf include/ncurses_dll.h
 rm -vf mkdirs.sh
 rm -vf tar-copy.sh
@@ -260,21 +267,16 @@ rm -vf mk-dlls.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 \
@@ -289,6 +291,7 @@ rm -vf mk-dlls.sh
        --disable-widec         \
        --disable-tic-depends   \
        --with-ticlib=tic
+    #--with-pkg-config-libdir=%{_libdir}/pkgconfig \
     #
     #  The configure line
     #
@@ -339,7 +342,6 @@ export BUILD_TIC=$PWD/../progs/tic
     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).
     #
@@ -356,17 +358,12 @@ export BUILD_TIC=$PWD/../progs/tic
     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}
@@ -378,7 +375,6 @@ export BUILD_TIC=$PWD/../progs/tic
     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).
     #
@@ -394,21 +390,20 @@ export BUILD_TIC=$PWD/../progs/tic
     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}}
@@ -419,30 +414,24 @@ export BUILD_TIC=$PWD/../progs/tic
                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
@@ -457,9 +446,9 @@ export BUILD_TIC=$PWD/../progs/tic
        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}}
@@ -471,15 +460,14 @@ export BUILD_TIC=$PWD/../progs/tic
                    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
@@ -502,19 +490,57 @@ export BUILD_TIC=$PWD/../progs/tic
 %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}
@@ -557,57 +583,71 @@ export BUILD_TIC=$PWD/../progs/tic
        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
@@ -624,18 +664,18 @@ export BUILD_TIC=$PWD/../progs/tic
 %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