%define pkg_name haskell-platform %define year_version 2015 %define pkg_version 7.10.3 %define pkg_release 3%{?_dist_release} %define ghc_version 7.10.3 %define alex_version 3.1.4 %define happy_version 1.19.5 %ifarch %{ix86} %define rpmarch i386 %endif %ifarch x86_64 %define rpmarch x86_64 %endif Summary: An advanced purely-functional programming language Name: %{pkg_name} Version: %{year_version}.%{pkg_version} Release: %{pkg_release} License: BSD-like Group: Applications/Languages Source0: %{name}-%{pkg_version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{pkg_version}-root BuildRequires: ghc BuildRequires: gmp-devel zlib-devel freeglut-devel BuildRequires: libffi-devel BuildRequires: docbook-utils docbook-utils-pdf docbook-style-xsl BuildRequires: hscolour Requires: haskell-platform-base = %{version} Requires: alex Requires: happy Requires: cabal-install Requires: hscolour Vendor: Project Vine Distribution: Vine Linux Packager: ara_t %description Haskell is a computer programming language. In particular, it is a polymorphically statically typed, lazy, purely functional language, quite different from most other programming languages. The language is named for Haskell Brooks Curry, whose work in mathematical logic serves as a foundation for functional languages. This is a meta package for installing haskell-platform, alex, happy and cabal-install. %package base Version: %{version} Summary: base package of haskell-platform Summary(ja): haskell-platformの基本パッケージ License: BSD-like Group: Applications/Languages Requires: ghc = %{ghc_version} Requires: freeglut Requires: gmp-devel %description base Base package for haskell-platform without alex, cabal, happy and HsColour. %package -n alex Version: %{alex_version} Summary: lexical analyser generator for Haskell Summary(ja): Haskell用の構文解析器生成器 License: BSD3 Group: Applications/Text %description -n alex Alex is a tool for generating lexical analysers in Haskell, given a description of the tokens to be recognised in the form of regular expressions. It is similar to the tool lex or flex for C/C++. %description -l ja -n alex AlexはHaskellで字句解析器を生成するツールで、 トークン群の記述を正規表現の形式で認識します。 C/C++用のlexやflexといったツールに似ています。 %package -n happy Version: %{happy_version} Summary: a parser generator system for Haskell Summary(ja): Haskell 用の構文解析器生成器 License: BSD3 Group: Applications/Text %description -n happy Happy is a parser generator system for Haskell, similar to the tool 'yacc' for C. Like 'yacc', it takes a file containing an annotated BNF specification of a grammar and produces a Haskell module containing a parser for the grammar. %description -l ja -n happy HappyはHaskell用の構文解析器生成器のシステムで、C用ツールの'yacc'に似ています。 'yacc'の様に注釈付きのBNF形式の文法の仕様を含んだファイルを受け取って、 その文法の構文解析器を含んだHaskellモジュールを生成します。 %prep %{__rm} -rf ${RPM_BUILD_ROOT} %setup -q -n %{name}-%{pkg_version} %{__cat} etc/build.packages | \ %{__sed} -e /hscolour/d | \ %{__sed} -e /cabal-install/d > build.packages %build PKGCONFDIR=${RPM_BUILD_ROOT}%{_libdir}/ghc-%{ghc_version}/package.conf.d/%{name} %{__mkdir_p} ${PKGCONFDIR} export PATH=${RPM_BUILD_ROOT}%{_bindir}:${PATH} export LANG=en_US.utf8 # build and install cd packages for pkg in `cat ../build.packages`; do cd ${pkg} ghc --make Setup if [ ${pkg} = "alex-%{alex_version}" ] || \ [ ${pkg} = "happy-%{happy_version}" ] then ./Setup configure \ --user \ --prefix=%{_prefix} \ --datadir=%{_datadir}/${pkg} \ --datasubdir= \ --docdir=%{_docdir}/${pkg} else ./Setup configure \ --user \ --prefix=%{_prefix} \ --libdir=%{_libdir}/%{name}/${pkg} \ --libsubdir= \ --datadir=%{_datadir}/%{name}/${pkg} \ --datasubdir= \ --docdir=%{_docdir}/%{name}-%{year_version}.%{pkg_version}/${pkg} fi ./Setup build ./Setup haddock || : ./Setup copy --destdir=${RPM_BUILD_ROOT} ./Setup register --inplace ./Setup register --gen-pkg-config=${PKGCONFDIR}/${pkg} cd .. done %install # copy document files each directory %{__cp} LICENSE README \ ${RPM_BUILD_ROOT}%{_docdir}/%{name}-%{year_version}.%{pkg_version} %{__cp} packages/alex-%{alex_version}/{ANNOUNCE,README,TODO} \ ${RPM_BUILD_ROOT}%{_docdir}/alex-%{alex_version}/ %{__cp} packages/happy-%{happy_version}/{ANNOUNCE,CHANGES,README,TODO} \ ${RPM_BUILD_ROOT}%{_docdir}/happy-%{happy_version}/ %clean %{__rm} -rf ${RPM_BUILD_ROOT} %post base cd %{_libdir}/ghc-%{ghc_version}/package.conf.d/%{name} for conf in * do ghc-pkg register --verbose=0 --force $conf 2> /dev/null done %preun base cd %{_libdir}/ghc-%{ghc_version}/package.conf.d/%{name} for conf in * do ghc-pkg unregister --verbose=0 --force $conf 2> /dev/null done %files %files base %defattr(-, root, root) %{_libdir}/ghc-%{ghc_version}/package.conf.d/%{name} %{_libdir}/%{name}/ %{_datadir}/%{name}/ %{_docdir}/%{name}-%{year_version}.%{pkg_version}/ %files -n alex %{_bindir}/alex %{_datadir}/alex-%{alex_version}/ %{_docdir}/alex-%{alex_version}/ %files -n happy %{_bindir}/happy %{_datadir}/happy-%{happy_version}/ %{_docdir}/happy-%{happy_version}/ %changelog * Tue May 03 2016 Toshiaki Ara 7.10.3-3 - modify SPEC file without usage of cabal-install * Mon Apr 11 2016 Toshiaki Ara 7.10.3-2 - correct SPEC file * Fri Feb 19 2016 Toshiaki Ara 7.10.3-1 - update to 7.10.3 * Mon Feb 15 2016 Toshiaki Ara 2013.2.0.0-4 - delete subpackage cabal-install - delete %{cabal_version} from Requires: cabal-install-%{cabal_version} - add BuildRequires: libffi-devel * Thu Feb 11 2016 Toshiaki Ara 2013.2.0.0-3 - correct Requires * Thu Feb 11 2016 Toshiaki Ara 2013.2.0.0-2 - install Haskell libraries into %{_libdir}/ghc-lib - add BuildRequires: hscolour - devide insto subpackages * Thu Feb 04 2016 Toshiaki Ara 2013.2.0.0-1 - new package