%define ghc_version 6.4.2 %define ghcver ghc642 %define mozver 37:1.7.12 %define build_mozembed 1 %define build_cairo 1 Summary: A Haskell GUI library based on the Gtk+ GUI toolkit Name: gtk2hs Version: 0.9.10 Release: 2%{?dist} License: LGPL Group: Development/Libraries Source: http://prdownloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz URL: http://gtk2hs.sourceforge.net/ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: ghc = %{ghc_version} BuildRequires: haddock BuildRequires: gtk2-devel BuildRequires: gtksourceview-devel BuildRequires: libglade2-devel BuildRequires: GConf2-devel %if %{build_mozembed} BuildRequires: mozilla-devel = %{mozver} %endif %if %{build_cairo} BuildRequires: cairo-devel %endif %description A Gtk+ binding for the functional language Haskell featuring automatic memory management, unicode support, and wide coverage of Gtk+ 2 widgets. %package -n ghc-%{name} Summary: A Haskell GUI library based on the Gtk+ GUI toolkit Group: Development/Libraries Requires: ghc = %{ghc_version} Requires: %{ghcver}-%{name} = %{version}-%{release} %description -n ghc-%{name} A Gtk+ binding for the functional language Haskell featuring automatic memory management, unicode support, and wide coverage of Gtk+ 2 widgets. %package -n %{ghcver}-%{name} Summary: A Haskell GUI library based on the Gtk+ GUI toolkit Group: Development/Libraries Requires: %{ghcver} Requires: gtk2-devel Requires: GConf2-devel Requires: libglade2-devel Requires: gtksourceview-devel PreReq: %{_bindir}/ghc-pkg-%{ghc_version} %description -n %{ghcver}-%{name} A Gtk+ binding for the functional language Haskell featuring automatic memory management, unicode support, and wide coverage of Gtk+ 2 widgets. This package also includes the bindings for cairo, gconf, glade, glib, and sourceview, and the mogul wrapper library. The libraries are compiled for ghc-%{ghc_version}. %package doc Summary: Haskell Gtk+ GUI library documentation Group: Development/Libraries %description doc A Gtk+ binding for the functional language Haskell featuring automatic memory management, unicode support, and wide coverage of Gtk+ 2 widgets. This package contains the gtk2hs documentation. %if %{build_mozembed} %package -n %{ghcver}-%{name}-mozembed Summary: Haskell binding for gtkembedmoz Group: Development/Libraries Requires: %{ghcver} Requires: %{ghcver}-%{name} = %{version}-%{release} Requires: mozilla-devel = %{mozver} PreReq: %{_bindir}/ghc-pkg-%{ghc_version} %description -n %{ghcver}-%{name}-mozembed A Haskell binding of GtkEmbedMoz for gtk2hs. %endif # the debuginfo subpackage is currently empty anyway, so don't generate it %define debug_package %{nil} %define __spec_install_post /usr/lib/rpm/brp-compress %define ghclibdir %{_libdir}/ghc/%{ghc_version} %define gtk2hsdir %{ghclibdir}/%{name} %prep %setup -q -n %{name}-%{version} %build %configure \ --with-hc=ghc-%{ghc_version} \ --prefix=%{_prefix} \ --libdir=%{ghclibdir} \ --enable-packager-mode \ --enable-docs \ --enable-libglade \ --enable-gconf \ --enable-sourceview \ %if %{build_mozembed} --enable-mozilla \ %endif %if %{build_cairo} --enable-cairo %endif LANG=C make all %install rm -rf %{buildroot} make DESTDIR=%{buildroot} install # make ghost files for i in gconf glade glib gtk mogul sourceview \ %if %{build_cairo} cairo \ %endif %if %{build_mozembed} mozembed \ %endif ; do touch %{buildroot}%{gtk2hsdir}/HS${i}.o done # remove installed docdir files rm -rf %{buildroot}%{_defaultdocdir}/%{name} %clean rm -rf %{buildroot} %define ghcpkg_inst() ghc-pkg-%{ghc_version} update --auto-ghci-libs %{gtk2hsdir}/%{1}.package.conf &>/dev/null %define ghcpkg_uninst() ghc-pkg-%{ghc_version} unregister %{1} &>/dev/null || : %post -n %{ghcver}-%{name} for i in glib \ %if %{build_cairo} cairo \ %endif gtk \ mogul \ gconf \ glade \ sourceview \ ; do %{ghcpkg_inst $i} done %if %{build_mozembed} %post -n %{ghcver}-%{name}-mozembed %{ghcpkg_inst mozembed} %endif %preun -n %{ghcver}-%{name} if [ "$1" = 0 ]; then for i in \ gconf \ glade \ sourceview \ mogul \ gtk \ %if %{build_cairo} cairo \ %endif glib \ ; do %{ghcpkg_uninst $i} done fi %if %{build_mozembed} %preun -n %{ghcver}-%{name}-mozembed if [ "$1" = 0 ]; then %{ghcpkg_uninst mozembed} fi %endif %files -n ghc-%{name} %defattr(-,root,root) %files -n %{ghcver}-%{name} %defattr(-,root,root) %doc AUTHORS COPYING.LIB %dir %{_libdir}/ghc %dir %{ghclibdir} %dir %{gtk2hsdir} %{gtk2hsdir}/gtk.package.conf %{gtk2hsdir}/libHSgtk.a %ghost %{gtk2hsdir}/HSgtk.o %dir %{gtk2hsdir}/imports %{gtk2hsdir}/imports/gtk %if %{build_cairo} %{gtk2hsdir}/cairo.package.conf %{gtk2hsdir}/libHScairo.a %ghost %{gtk2hsdir}/HScairo.o %dir %{gtk2hsdir}/imports %{gtk2hsdir}/imports/cairo %endif %{gtk2hsdir}/gconf.package.conf %{gtk2hsdir}/libHSgconf.a %ghost %{gtk2hsdir}/HSgconf.o %dir %{gtk2hsdir}/imports %{gtk2hsdir}/imports/gconf %{gtk2hsdir}/glade.package.conf %{gtk2hsdir}/libHSglade.a %ghost %{gtk2hsdir}/HSglade.o %dir %{gtk2hsdir}/imports %{gtk2hsdir}/imports/glade %{gtk2hsdir}/glib.package.conf %{gtk2hsdir}/libHSglib.a %ghost %{gtk2hsdir}/HSglib.o %dir %{gtk2hsdir}/imports %{gtk2hsdir}/imports/glib %dir %{gtk2hsdir}/include %{gtk2hsdir}/include/gtk2hs-config.h %{gtk2hsdir}/mogul.package.conf %{gtk2hsdir}/libHSmogul.a %ghost %{gtk2hsdir}/HSmogul.o %dir %{gtk2hsdir}/imports %{gtk2hsdir}/imports/mogul %{gtk2hsdir}/sourceview.package.conf %{gtk2hsdir}/libHSsourceview.a %ghost %{gtk2hsdir}/HSsourceview.o %dir %{gtk2hsdir}/imports %{gtk2hsdir}/imports/sourceview %files doc %defattr(-,root,root) %doc docs/reference %doc ChangeLog TODO demo %if %{build_mozembed} %files -n %{ghcver}-%{name}-mozembed %{gtk2hsdir}/mozembed.package.conf %{gtk2hsdir}/libHSmozembed.a %ghost %{gtk2hsdir}/HSmozembed.o %dir %{gtk2hsdir}/imports %{gtk2hsdir}/imports/mozembed %endif %changelog * Mon May 1 2006 GĂ©rard Milmeister - 0.9.10-3 - spec file cleanup - ghost the .o files generated at install time - move the docs to a versioned dir and include the demos - make all subpackages own %%{_libdir}/ghc * Tue Apr 25 2006 Jens Petersen - 0.9.10-2 - use module names for the subpackages - subpackage mogul - own the include dir * Sat Apr 22 2006 Jens Petersen - 0.9.10-1 - initial packaging for Fedora Extras - define ghcpkg_inst and ghcpkg_uninst for post and preun scripts and silence ghc-pkg - own include/ * Wed Oct 26 2005 Jens Petersen - 0.9.9.7-0 - rc * Wed Sep 21 2005 Jens Petersen - 0.9.9-2 - build with ghc-6.4.1 * Sat Jul 30 2005 Jens Petersen - 0.9.8-3 - drop old conflicts * Tue Jul 5 2005 Jens Petersen - 0.9.8-2 - use %%configure to configure for arch to avoid gclosure ghci-6.4 linking problems on i386 * Wed Jun 22 2005 Jens Petersen - 0.9.8-1 - update to 0.9.8 - use new --enable-packager-mode and --enable-* configure options * Thu Jun 9 2005 Jens Petersen - 0.9.7.91 - update to rc1 - add build_mozembed macro and use it * Mon May 9 2005 Jens Petersen - 0.9.7-2 - add gtk2hs-0.9.7-ghc64.patch and build with ghc-6.4 (Duncan Coutts) - .pkg files are now .cabal files * Tue Jan 18 2005 Duncan Coutts - cleanup requirements, summaries, descriptions, and configure invocation - update preun scripts * Thu Aug 19 2004 Jens Petersen - use suffix -ghc621 instead of -ghc6.2.1 and conflict with old packages - buildrequire ghc-doc and gtk2hs-doc-ghc621 requires ghc-doc - move docs and demo files to %{_defaultdocdir}/gtk2hs * Mon Aug 16 2004 Jens Petersen - update to 0.9.6 * Thu Jul 22 2004 Jens Petersen - split sourceview and glade into separate subpackages - require -devel packages rather than lib pkg for gtk2, gtksourceview, and libglade2 * Wed Mar 24 2004 Jens Petersen - enable gtksourceview and glade configure options - use mkdir -p instead of mkdirhier - update file locations in %%post and %%preun scripts - buildrequire libglade2-devel * Tue Nov 11 2003 Jens Petersen - use %%c2hs instead of "--with c2hs" to configure c2hs program - clean demo to avoid binary files in docs dir * Mon Nov 3 2003 Jens Petersen - add sourceview package to %%post and %%preun - install gtksourceview haskell.lang language-spec * Thu Jul 31 2003 Jens Petersen - build with ghc-6.0.1 - put demo dir in docs dir rather than individual source files * Thu Jul 10 2003 Jens Petersen - build with ghc-6.0 - name ghc subpackage "ghc%%{ghc_version}" * Wed Jun 18 2003 Jens Petersen - require and buildrequire %{_bindir}/ghc-%%{ghc_version} * Wed May 21 2003 Jens Petersen - add -g option to ghc-pkg -u so that ghci object gets generated - delete them when uninstalling - build and include mogul documentation * Thu May 15 2003 Jens Petersen - use new DESTDIR make variable, so no longer need to fix config files in post - remove buildroot before install - build and include gtk docs * Fri Jan 10 2003 Jens Petersen - made into .spec.in file - let configure set the version - update description - introduce --with-c2hs rpmbuild option - use perl to remove buildroot traces from package conf files - simplify ghc-pkg update commands * Tue Dec 17 2002 Jens Petersen - latest cvs with ghc 5.04.2 * Thu Sep 26 2002 Jens Petersen - build with ghc-5.04.1 * Fri Aug 2 2002 Jens Petersen - only include demo source in doc dir * Fri Jul 26 2002 Jens Petersen - build with ghc-5.04 - cvs update * Wed Jul 10 2002 Jens Petersen - my current branch * Wed May 1 2002 Jens Petersen - patch TreeViewColumn.chs to make it usable * Tue Apr 23 2002 Jens Petersen - 0.9.0 - update gtk2 and mogul ghc-pkg entries on upgrade * Fri Apr 12 2002 Jens Petersen - adapt for gtk2hs - fix mk files for buildroot install - post and postun scriptlets for pkg config * Tue Mar 12 2002 Manuel Chakravarty - require a specific Haskell compiler (namely, the one for which the packages was compiled) * Sat Feb 17 2001 Manuel Chakravarty - derived from C->Haskell's .spec file