Reduced terminfo file
[platform/upstream/ncurses.git] / packaging / ncurses.spec
index a5ca215..45ddf9f 100644 (file)
 Name:           ncurses
 #!BuildIgnore: terminfo
 BuildRequires:  gcc-c++
+BuildRequires:  pkg-config
 %define terminfo() %{_datadir}/%{0}/%{1}
 %define tabset()   %{_datadir}/%{0}/%{1}
 Version:        5.9
 Release:        0
 Summary:        New curses Libraries
 License:        MIT
-Group:          System/Base
+Group:          Base/Libraries
 Url:            http://invisible-island.net/ncurses/ncurses.html
 Source0:        ncurses-%{version}.tar.gz
 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
@@ -45,19 +46,10 @@ included in this package. These new libraries support color, special
 characters, and panels.
 
 
-
-Authors:
---------
-    Thomas E. Dickey <dickey@invisible-island.net>
-    Juergen Pfeifer <Juergen.Pfeifer@t-online.de>
-    Eric S. Raymond <esr@thyrsus.com>
-    Zeyd M. Ben-Halim <zmbenhal@netcom.com>
-    Pavel Curtis
-
 %package -n ncurses-utils
 Summary:        Tools using the new curses libraries
 License:        MIT
-Group:          System/Base
+Group:          Base/Utilities
 Provides:       ncurses:%{_bindir}/tput
 
 %description -n ncurses-utils
@@ -75,42 +67,38 @@ tset  -- terminal-initialization utility
 
 reset -- terminal initialization utility
 
-
-
-Authors:
---------
-    Thomas E. Dickey <dickey@invisible-island.net>
-    Eric S. Raymond <esr@thyrsus.com>
-    Zeyd M. Ben-Halim <zmbenhal@netcom.com>
-    Juergen Pfeifer <Juergen.Pfeifer@t-online.de>
-    Pavel Curtis
-
-%package -n terminfo-base
+%package -n terminfo-base-full
 Summary:        A terminal descriptions database
 License:        MIT
-Group:          System/Base
+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.
 
+%package -n terminfo-base-mini
+Summary:        A terminal descriptions database
+License:        MIT
+Group:          Base/Utilities
+Provides:       ncurses:%{_datadir}/tabset
+Provides:              terminfo-base
 
-
-Authors:
---------
-    Thomas E. Dickey <dickey@invisible-island.net>
-    Eric S. Raymond <esr@thyrsus.com>
-
-%if %abi == 5
+%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:          System/Libraries
+Group:          Base/Libraries
 Requires:       terminfo-base
+Recommends:            terminfo-base-full
 Provides:       ncurses = %{version}
 Obsoletes:      ncurses < %{version}
 Recommends:     ncurses-utils = %{version}
@@ -120,46 +108,22 @@ The ncurses library is used by the most curses based terminal
 applications for controling its output and input to the screen.
 
 
-
-Authors:
---------
-    Thomas E. Dickey <dickey@invisible-island.net>
-    Eric S. Raymond <esr@thyrsus.com>
-    Zeyd M. Ben-Halim <zmbenhal@netcom.com>
-    Juergen Pfeifer <Juergen.Pfeifer@t-online.de>
-    Pavel Curtis
-
-%endif
-
 %package -n libncurses6
 Summary:        The New curses Libraries
 License:        MIT
-Group:          System/Libraries
+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.
 
-
-
-Authors:
---------
-    Thomas E. Dickey <dickey@invisible-island.net>
-    Juergen Pfeifer <Juergen.Pfeifer@t-online.de>
-    Eric S. Raymond <esr@thyrsus.com>
-    Zeyd M. Ben-Halim <zmbenhal@netcom.com>
-    Pavel Curtis
-
 %package -n terminfo
 Summary:        A terminal descriptions database
-License:        SUSE-Public-Domain
-Group:          System/Base
+License:        Public-Domain
+Group:          Base/Utilities
 
 %description -n terminfo
 This is the terminfo reference database, maintained in the ncurses
@@ -170,43 +134,22 @@ just use the Linux console, xterm, and VT100, you probably will not
 need this database -- a minimal /usr/share/terminfo tree for these
 terminals is already included in the terminfo-base package.
 
-
-
-Authors:
---------
-    Eric S. Raymond <esr@thyrsus.com>
-    Thomas E. Dickey <dickey@invisible-island.net>
-
 %package -n ncurses-devel
 Summary:        Include Files and Libraries mandatory for Development
 License:        MIT
-Group:          Development/Libraries/C and C++
+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
 to develop applications that require these.
 
-
-
-Authors:
---------
-    Thomas E. Dickey <dickey@invisible-island.net>
-    Juergen Pfeifer <Juergen.Pfeifer@t-online.de>
-    Eric S. Raymond <esr@thyrsus.com>
-    Zeyd M. Ben-Halim <zmbenhal@netcom.com>
-    Pavel Curtis
-
-
 %prep
 %setup -q -n ncurses-%{version}
+cp %{SOURCE1001} .
 rm -vf include/ncurses_dll.h
 rm -vf mkdirs.sh
 rm -vf tar-copy.sh
@@ -324,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 \
@@ -353,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
     #
@@ -403,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).
     #
@@ -420,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}
@@ -442,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).
     #
@@ -458,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}}
@@ -483,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
@@ -521,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}}
@@ -535,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
@@ -566,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}
@@ -621,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
@@ -688,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