michael@682: ## michael@682: ## ncurses.spec -- OpenPKG RPM Package Specification michael@682: ## Copyright (c) 2000-2012 OpenPKG Foundation e.V. michael@682: ## michael@682: ## Permission to use, copy, modify, and distribute this software for michael@682: ## any purpose with or without fee is hereby granted, provided that michael@682: ## the above copyright notice and this permission notice appear in all michael@682: ## copies. michael@682: ## michael@682: ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED michael@682: ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF michael@682: ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. michael@682: ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR michael@682: ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, michael@682: ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT michael@682: ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF michael@682: ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND michael@682: ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, michael@682: ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT michael@682: ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF michael@682: ## SUCH DAMAGE. michael@682: ## michael@682: michael@682: # package versions michael@682: %define V_base 5.9 michael@682: %define V_patch0 20111224 michael@682: %define V_patch1 20111231 michael@682: %define V_patch2 20120107 michael@682: %define V_patch3 20120114 michael@682: %define V_patch4 20120121 michael@682: %define V_patch5 20120128 michael@682: %define V_patch6 20120204 michael@682: %define V_patch7 20120211 michael@682: %define V_patch8 20120218 michael@682: %define V_patch9 20120225 michael@682: %define V_patch10 20120228 michael@682: %define V_patch11 20120303 michael@682: %define V_patch12 20120310 michael@682: %define V_patch13 20120317 michael@682: %define V_patch14 20120324 michael@682: %define V_patch15 20120331 michael@682: %define V_patch16 20120407 michael@682: %define V_patch17 20120414 michael@682: %define V_patch18 20120421 michael@682: %define V_patch19 20120428 michael@682: %define V_patch20 20120505 michael@682: %define V_patch21 20120512 michael@682: %define V_patch22 20120526 michael@682: %define V_patchB %{V_patch0} michael@682: %define V_patchL %{V_patch22} michael@682: %define V_patches 22 michael@682: michael@682: # package information michael@682: Name: ncurses michael@682: Summary: Terminal Capability and Display Library michael@682: URL: http://www.gnu.org/software/ncurses/ michael@682: Vendor: Free Software Foundation michael@682: Packager: OpenPKG Foundation e.V. michael@682: Distribution: OpenPKG Community michael@682: Class: CORE michael@682: Group: Terminal michael@682: License: MIT-style michael@682: Version: %{V_base}.%{V_patchL} michael@683: Release: 20120800 michael@682: michael@682: # list of sources michael@682: Source0: ftp://invisible-island.net/ncurses/ncurses-%{V_base}.tar.gz michael@682: Patch0: ftp://invisible-island.net/ncurses/%{V_base}/ncurses-%{V_base}-%{V_patch0}-patch.sh.bz2 michael@682: Patch1: ftp://invisible-island.net/ncurses/%{V_base}/ncurses-%{V_base}-%{V_patch1}.patch.gz michael@682: Patch2: ftp://invisible-island.net/ncurses/%{V_base}/ncurses-%{V_base}-%{V_patch2}.patch.gz michael@682: Patch3: ftp://invisible-island.net/ncurses/%{V_base}/ncurses-%{V_base}-%{V_patch3}.patch.gz michael@682: Patch4: ftp://invisible-island.net/ncurses/%{V_base}/ncurses-%{V_base}-%{V_patch4}.patch.gz michael@682: Patch5: ftp://invisible-island.net/ncurses/%{V_base}/ncurses-%{V_base}-%{V_patch5}.patch.gz michael@682: Patch6: ftp://invisible-island.net/ncurses/%{V_base}/ncurses-%{V_base}-%{V_patch6}.patch.gz michael@682: Patch7: ftp://invisible-island.net/ncurses/%{V_base}/ncurses-%{V_base}-%{V_patch7}.patch.gz michael@682: Patch8: ftp://invisible-island.net/ncurses/%{V_base}/ncurses-%{V_base}-%{V_patch8}.patch.gz michael@682: Patch9: ftp://invisible-island.net/ncurses/%{V_base}/ncurses-%{V_base}-%{V_patch9}.patch.gz michael@682: Patch10: ftp://invisible-island.net/ncurses/%{V_base}/ncurses-%{V_base}-%{V_patch10}.patch.gz michael@682: Patch11: ftp://invisible-island.net/ncurses/%{V_base}/ncurses-%{V_base}-%{V_patch11}.patch.gz michael@682: Patch12: ftp://invisible-island.net/ncurses/%{V_base}/ncurses-%{V_base}-%{V_patch12}.patch.gz michael@682: Patch13: ftp://invisible-island.net/ncurses/%{V_base}/ncurses-%{V_base}-%{V_patch13}.patch.gz michael@682: Patch14: ftp://invisible-island.net/ncurses/%{V_base}/ncurses-%{V_base}-%{V_patch14}.patch.gz michael@682: Patch15: ftp://invisible-island.net/ncurses/%{V_base}/ncurses-%{V_base}-%{V_patch15}.patch.gz michael@682: Patch16: ftp://invisible-island.net/ncurses/%{V_base}/ncurses-%{V_base}-%{V_patch16}.patch.gz michael@682: Patch17: ftp://invisible-island.net/ncurses/%{V_base}/ncurses-%{V_base}-%{V_patch17}.patch.gz michael@682: Patch18: ftp://invisible-island.net/ncurses/%{V_base}/ncurses-%{V_base}-%{V_patch18}.patch.gz michael@682: Patch19: ftp://invisible-island.net/ncurses/%{V_base}/ncurses-%{V_base}-%{V_patch19}.patch.gz michael@682: Patch20: ftp://invisible-island.net/ncurses/%{V_base}/ncurses-%{V_base}-%{V_patch20}.patch.gz michael@682: Patch21: ftp://invisible-island.net/ncurses/%{V_base}/ncurses-%{V_base}-%{V_patch21}.patch.gz michael@682: Patch22: ftp://invisible-island.net/ncurses/%{V_base}/ncurses-%{V_base}-%{V_patch22}.patch.gz michael@682: Patch100: ncurses.patch michael@682: michael@682: # build information michael@682: BuildPreReq: OpenPKG, openpkg >= 20100101 michael@682: PreReq: OpenPKG, openpkg >= 20100101 michael@682: michael@682: %description michael@682: NCurses is the GNU re-implementation of the popular SVR4 Curses michael@682: terminal screen handling library. Its API is base-level conformant michael@682: with the X/OPEN curses specification XSI Curses. It uses the michael@682: Terminfo database format, supports pads and color and multiple michael@682: highlights and forms characters and function-key mapping, and has michael@682: all the other SVR4-Curses enhancements over original BSD Curses. michael@682: Additionally, it provides full emulations of the SVR4 panels michael@682: (supporting a stack of windows), forms (supporting data collection michael@682: through on-screen forms) and menu (supporting a uniform interface michael@682: for menu programming) companion libraries. michael@682: michael@682: %track michael@682: prog ncurses = { michael@682: version = %{V_base} michael@682: url = ftp://invisible-island.net/ncurses/ michael@682: regex = ncurses-(__VER__)\.tar\.gz michael@682: } michael@682: prog ncurses:patchbase = { michael@682: disabled michael@682: version = %{V_patchB} michael@682: url = ftp://invisible-island.net/ncurses/ michael@682: regex = (\d+\.\d+) michael@682: url = ftp://invisible-island.net/ncurses/__NEWVER__/ michael@682: regex = ncurses-__NEWVER__-(\d+)-patch\.sh\.bz2 michael@682: } michael@682: prog ncurses:patchset = { michael@682: version = %{V_patchL} michael@682: url = ftp://invisible-island.net/ncurses/ michael@682: regex = (\d+\.\d+) michael@682: url = ftp://invisible-island.net/ncurses/__NEWVER__/ michael@682: regex = ncurses-__NEWVER__-(\d+)\.patch\.gz michael@682: } michael@682: michael@682: %prep michael@682: %setup -q -n ncurses-%{V_base} michael@682: for patchfile in \ michael@682: %{expand:%(i=0; while [ $i -le %{V_patches} ]; do %{l_shtool} echo -n " %%{PATCH$i}"; i=`expr $i + 1`; done)} michael@682: do michael@682: case "$patchfile" in michael@682: *-patch.sh.bz2 ) %{l_bzip2} -d -c $patchfile | %{l_patch} -p1 -f || true ;; michael@682: *-patch.sh.gz ) %{l_bzip2} -d -c $patchfile | %{l_patch} -p1 -f || true ;; michael@682: *.sh.bz2 ) %{l_bzip2} -d -c $patchfile | sed -e 's;gzip -dc;%{l_gzip} -dc;' -e 's;patch -p1;%{l_patch} -p1 -f;' | sh - || true ;; michael@682: *.sh.gz ) %{l_gzip} -d -c $patchfile | sed -e 's;gzip -dc;%{l_gzip} -dc;' -e 's;patch -p1;%{l_patch} -p1 -f;' | sh - || true ;; michael@682: *.patch.bz2 ) %{l_bzip2} -d -c $patchfile | %{l_patch} -p1 -f || true ;; michael@682: *.patch.gz ) %{l_gzip} -d -c $patchfile | %{l_patch} -p1 -f || true ;; michael@682: * ) michael@682: echo "Unknown patch format" | %{l_rpmtool} msg -b -t error 1>&2 michael@682: exit 1 michael@682: ;; michael@682: esac michael@682: done michael@682: find . -name "*.orig" -print | xargs rm -f michael@682: %patch -p0 -P 100 michael@682: michael@682: %build michael@682: %{l_shtool} subst \ michael@682: -e 's;SRC_SUBDIRS test;SRC_SUBDIRS;' \ michael@682: configure michael@682: CC="%{l_cc}" \ michael@682: CPPFLAGS="%{l_cppflags}" \ michael@682: CFLAGS="%{l_cflags}" \ michael@682: ./configure \ michael@682: --prefix=%{l_prefix} \ michael@682: --includedir=%{l_prefix}/include/ncurses \ michael@682: --datadir=%{l_prefix}/share/ncurses \ michael@682: --enable-hashmap \ michael@682: --without-debug \ michael@682: --with-manpage-format=normal \ michael@682: --disable-getcap-cache \ michael@682: --without-cxx-binding \ michael@682: --without-cxx \ michael@682: --without-gpm \ michael@682: --enable-termcap \ michael@682: --disable-overwrite michael@682: %{l_make} %{l_mflags} michael@682: michael@682: %install michael@682: %{l_shtool} subst -e "s;ln -s;ln;g" edit_man.sh michael@682: %{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT michael@682: ( cd $RPM_BUILD_ROOT%{l_prefix}/man michael@682: for dir in man1 man3; do michael@682: cd $dir michael@682: for file in *.[13][a-z]*; do michael@682: if [ ".$file" = ".*.[13][a-z]*" ]; then michael@682: break michael@682: fi michael@682: eval `echo "$file" | sed -e 's;^\(.*\.[13]\)[a-z]*$;base=\1;'` michael@682: mv $file ncurses_$base michael@682: done michael@682: cd .. michael@682: done michael@682: ) || exit $? michael@682: strip $RPM_BUILD_ROOT%{l_prefix}/bin/* 2>/dev/null || true michael@682: %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} michael@682: michael@682: %files -f files michael@682: michael@682: %clean michael@682: