# https://fedoraproject.org/wiki/Packaging:Haskell %ifarch %{ix86} x86_64 %bcond_without testsuite %endif %global pkg_name shake Name: %{pkg_name} Version: 0.11.4 Release: 2%{?dist} Summary: Make-like build system License: BSD URL: http://hackage.haskell.org/package/%{name} Source0: http://hackage.haskell.org/packages/archive/%{name}/%{version}/%{name}-%{version}.tar.gz BuildRequires: ghc-Cabal-devel BuildRequires: ghc-rpm-macros # Begin cabal-rpm deps: BuildRequires: ghc-binary-devel BuildRequires: ghc-bytestring-devel BuildRequires: ghc-deepseq-devel BuildRequires: ghc-directory-devel BuildRequires: ghc-filepath-devel BuildRequires: ghc-hashable-devel BuildRequires: ghc-old-time-devel BuildRequires: ghc-process-devel BuildRequires: ghc-random-devel BuildRequires: ghc-time-devel BuildRequires: ghc-transformers-devel BuildRequires: ghc-unix-devel BuildRequires: ghc-unordered-containers-devel BuildRequires: ghc-utf8-string-devel # End cabal-rpm deps %if %{with testsuite} BuildRequires: ghc-QuickCheck-devel %endif BuildRequires: dos2unix %description Shake is a Haskell library for writing build systems - designed as a replacement for make. See "Development.Shake" for an introduction, including an example. Further examples are included in the Cabal tarball, under the Examples directory. The homepage contains links to a user manual, an academic paper and further information: This package provides the shake tool which can handle most ninja files faster than ninja and simple makefiles. %package -n ghc-%{name} Summary: Haskell %{name} library %description -n ghc-%{name} This package provides the Haskell %{name} shared library. %package -n ghc-%{name}-devel Summary: Haskell %{name} library development files Provides: ghc-%{name}-static = %{version}-%{release} Requires: ghc-compiler = %{ghc_version} Requires(post): ghc-compiler = %{ghc_version} Requires(postun): ghc-compiler = %{ghc_version} Requires: ghc-%{name}%{?_isa} = %{version}-%{release} %description -n ghc-%{name}-devel This package provides the Haskell %{name} library development files. To use Shake the user writes a Haskell program that imports "Development.Shake", defines some build rules, and calls the 'Development.Shake.shakeArgs' function. Thanks to do notation and infix operators, a simple Shake build system is not too dissimilar from a simple Makefile. However, as build systems get more complex, Shake is able to take advantage of the excellent abstraction facilities offered by Haskell and easily support much larger projects. The Shake library provides all the standard features available in other build systems, including automatic parallelism and minimal rebuilds. Shake also provides more accurate dependency tracking, including seamless support for generated files, and dependencies on system information (e.g. compiler version). %prep %setup -q cd Examples/Ninja for i in test4 test3-win test3-sub test3-inc test5 test3 lint test2 test3-unix; do dos2unix $i.ninja done %build %if %{with testsuite} %define cabal_configure_options --enable-tests %endif %ghc_lib_build %install %ghc_lib_install # remove bundled jquery*.js, report.html, *.js # (this breaks report generation) rm %{buildroot}%{_datadir}/%{name}-%{version}/html/* %check %if %{with testsuite} %cabal test %endif %post -n ghc-%{name}-devel %ghc_pkg_recache %postun -n ghc-%{name}-devel %ghc_pkg_recache %files %doc LICENSE %{_bindir}/%{name} %files -n ghc-%{name} -f ghc-%{name}.files %doc LICENSE %files -n ghc-%{name}-devel -f ghc-%{name}-devel.files %doc Examples %changelog * Mon Mar 31 2014 Jens Petersen - 0.11.4-2 - testsuite uses TemplateHaskell so only run it on Intel archs for now * Mon Mar 31 2014 Jens Petersen - 0.11.4-1 - update to 0.11.4 - bcond enable testsuite * Sun Jan 5 2014 Jens Petersen - 0.11-1 - update to 0.11 * Sat Jan 4 2014 Fedora Haskell SIG - 0.10.10 - spec file generated by cabal-rpm-0.8.7