"Manuel M. T. Chakravarty" <[EMAIL PROTECTED]> wrote, > I am just building rpms as we speak and have attached the > revised .spec file below (which also evades the two > mentioned bugs). The file still had a bug (more precisely, something else changed in the GHC's makefiles, which I had not taken into account). The corrected spec file is attached. Manuel
# RPM spec file for GHC # # Copyright [1998..2000] Manuel M. T. Chakravarty <[EMAIL PROTECTED]> # Thanks to Zoltan Vorosbaranyi <[EMAIL PROTECTED]> for suggestions in # earlier versions and Pixel <[EMAIL PROTECTED]> for coding tips. # # This file is subject to the same free software license as GHC. # Values for 5.00 are set by the `configure' script. # SNAP releases are CVS snapshots. Official releases should replace SNAP by # an appropriate release numbers (they are usually numbered starting from 1). %define version 5.00 %define release 1 %define prefix /usr Summary: Glasgow Haskell Compilation system Name: ghc Version: %{version} Release: %{release} Copyright: BSD style w/o adv. clause Group: Development/Languages Source: http://haskell.org/ghc/dist/%{version}/ghc-%{version}-src.tar.bz2 URL: http://haskell.org/ghc/ BuildRoot: /var/tmp/ghc-%{version}-%{release}-root Requires: gmp-devel Provides: haskell BuildRequires: happy >= 1.9, ghc, stylesheets %description Haskell is a standard lazy functional programming language; the current language version is Haskell 98, agreed in December 1998. GHC is a state-of-the-art programming suite for Haskell. Included is an optimising compiler generating good code for a variety of platforms, together with an interactive system for convenient, quick development. The distribution includes space and time profiling facilities, a large collection of libraries, and support for various language extensions, including concurrency, exceptions, and foreign language interfaces (C, C++, whatever). A wide variety of Haskell related resources (tutorials, libraries, specifications, documentation, compilers, interpreters, references, contact information, links to research groups) are available from the Haskell home page at <http://www.haskell.org/>. %package prof Summary: Profiling libraries for GHC Group: Development/Libraries Requires: ghc = %{PACKAGE_VERSION} %description prof Profiling libraries for Glorious Glasgow Haskell Compilation System (GHC). They should be installed when GHC's profiling subsystem is needed. %changelog * Mon Apr 16 2001 Manuel Chakravarty - revised for 5.00 - also runs autoconf automagically if no ./configure found * Thu Jun 22 2000 Sven Panne - removed explicit usage of hslibs/docs, it belongs to ghc/docs/set * Sun Apr 23 2000 Manuel Chakravarty - revised for ghc 4.07; added suggestions from Pixel <[EMAIL PROTECTED]> - added profiling package * Tue Dec 7 1999 Manuel Chakravarty - version for use from CVS * Thu Sep 16 1999 Manuel Chakravarty - modified for GHC 4.04, patchlevel 1 (no more 62 tuple stuff); minimises use of patch files - instead emits a build.mk on-the-fly * Sat Jul 31 1999 Manuel Chakravarty - modified for GHC 4.04 * Wed Jun 30 1999 Manuel Chakravarty - some more improvements from vbzoli * Fri Feb 26 1999 Manuel Chakravarty - modified for GHC 4.02 * Thu Dec 24 1998 Zoltan Vorosbaranyi - added BuildRoot - files located in /usr/local/bin, /usr/local/lib moved to /usr/bin, /usr/lib * Tue Jul 28 1998 Manuel Chakravarty - original version %prep %setup # generate our own `build.mk' # # * this is a kludge (is it still needed?) # cat >mk/build.mk <<END GhcLibWays = p SRC_HAPPY_OPTS += -agc GhcWithInterpreter=NO #GhcWithInterpreter=YES END # run autoconf if necessary # [ ! -x configure ] && autoconf && cd ghc && autoconf %build ./configure --prefix=%{prefix} make boot make -C glafp-utils sgmlverb make all make -C docs ps html make -C ghc/docs ps html %install # compress the non-html docs # for j in docs ghc/docs; do dir=`pwd` cd $j for i in ps dvi sgml verb idx; do find . -name '*.'$i -exec gzip -9 '{}' ';' -print done cd $dir done rm -rf $RPM_BUILD_ROOT # FIXME: this is necessary due to brokenness in ghc-5.00/mk/target.mk make prefix=$RPM_BUILD_ROOT%{prefix} install-dirs make prefix=$RPM_BUILD_ROOT%{prefix} install # generate the file list for lib/ _excluding_ all files needed for profiling # only # # * generating file lists in a BUILD_ROOT spec is a bit tricky: the file list # has to contain complete paths, _but_ without the BUILD_ROOT, we also do # _not_ want have directory names in the list; furthermore, we have to make # sure that any leading / is removed from %{prefix}/lib, as find has to # interpret the argument as a relative path; however, we have to include the # leading / again in the final file list (otherwise, rpm complains) # * isn't there an easier way to do all this? # dir=`pwd` cd $RPM_BUILD_ROOT libdir=`echo %{prefix}/lib | sed 's|^/||'` find $libdir ! -type d ! -name '*.p_hi' ! -name '*_p.a' -print | sed 's|^|/|'\ >$dir/rpm-noprof-lib-files cd $dir %clean rm -rf $RPM_BUILD_ROOT %files -f rpm-noprof-lib-files %doc docs/ %doc ghc/ANNOUNCE ghc/README ghc/docs/ %{prefix}/bin/* %files prof %{prefix}/lib/ghc-%{version}/imports/*/*.p_hi %{prefix}/lib/ghc-%{version}/libHS*_p.a