# https://fedoraproject.org/wiki/Packaging:Haskell %global pkg_name Agda Name: %{pkg_name} Version: 2.4.2.2 Release: 2%{?dist} Summary: A dependently typed functional programming language and proof assistant License: MIT and BSD Url: https://hackage.haskell.org/package/%{name} Source0: https://hackage.haskell.org/package/%{name}-%{version}/%{name}-%{version}.tar.gz Source1: agda-mode-init.el BuildRequires: ghc-Cabal-devel BuildRequires: ghc-rpm-macros # Begin cabal-rpm deps: BuildRequires: alex BuildRequires: chrpath BuildRequires: cpphs BuildRequires: ghc-QuickCheck-devel >= 2.7.5 BuildRequires: ghc-STMonadTrans-devel BuildRequires: ghc-array-devel BuildRequires: ghc-binary-devel BuildRequires: ghc-boxes-devel BuildRequires: ghc-bytestring-devel BuildRequires: ghc-containers-devel BuildRequires: ghc-data-hash-devel BuildRequires: ghc-deepseq-devel BuildRequires: ghc-directory-devel BuildRequires: ghc-equivalence-devel BuildRequires: ghc-filepath-devel BuildRequires: ghc-geniplate-devel BuildRequires: ghc-hashable-devel BuildRequires: ghc-hashtables-devel BuildRequires: ghc-haskeline-devel BuildRequires: ghc-haskell-src-exts-devel BuildRequires: ghc-mtl-devel BuildRequires: ghc-parallel-devel BuildRequires: ghc-pretty-devel BuildRequires: ghc-process-devel BuildRequires: ghc-strict-devel BuildRequires: ghc-template-haskell-devel BuildRequires: ghc-text-devel BuildRequires: ghc-time-devel BuildRequires: ghc-transformers-devel BuildRequires: ghc-unordered-containers-devel BuildRequires: ghc-xhtml-devel BuildRequires: ghc-zlib-devel BuildRequires: happy ExclusiveArch: %{ghc_arches_with_ghci} # End cabal-rpm deps BuildRequires: emacs(bin) # geniplate uses template-haskell ExclusiveArch: %{ghc_arches_with_ghci} # bug 991929 ExcludeArch: %{arm} Requires: ghc-%{name}-devel = %{version}-%{release} Requires: emacs-agda = %{version}-%{release} %description Agda is a dependently typed functional programming language: it has inductive families, which are similar to Haskell's GADTs, but they can be indexed by values and not just types. It also has parameterized modules, mixfix operators, Unicode characters, and an interactive Emacs interface (the type checker can assist in the development of your code). Agda is also a proof assistant: It is an interactive system for writing and checking proofs. Agda is based on intuitionistic type theory, a foundational system for constructive mathematics developed by the Swedish logician Per Martin-Löf. It has many similarities with other proof assistants based on dependent types, such as Coq, Epigram and NuPRL. %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} Obsoletes: Agda < 2.3.1 %description -n ghc-%{name}-devel This package provides the Haskell %{name} library development files. %package -n emacs-agda Summary: Emacs mode for the Agda language Group: Applications/Editors License: MIT Requires: ghc-%{pkg_name}-devel = %{version}-%{release} Requires: emacs(bin) >= %{_emacs_version} %description -n emacs-agda Agda is a dependently typed functional programming language: it has inductive families, which are similar to Haskell's GADTs, but they can be indexed by values and not just types. It also has parameterized modules, mixfix operators, Unicode characters, and an interactive Emacs interface (the type checker can assist in the development of your code). This is the interactive Emacs mode for Agda. %package -n emacs-agda-el Summary: Elisp source files for Agda emacs mode Group: Applications/Editors License: MIT Requires: emacs-agda = %{version}-%{release} %description -n emacs-agda-el Agda is a dependently typed functional programming language: it has inductive families, which are similar to Haskell's GADTs, but they can be indexed by values and not just types. It also has parameterized modules, mixfix operators, Unicode characters, and an interactive Emacs interface (the type checker can assist in the development of your code). This package provides the elisp source files for the Emacs mode. %prep %setup -q # tweak the Agda version in the emacs mode if ! grep -q \"%{version}\" src/data/emacs-mode/agda2-mode.el; then echo "agda2-version in src/data/emacs-mode/agda2-mode.el out of sync!" exit 1 fi %build %define elisp_files eri.el agda-input.el annotation.el agda2-highlight.el agda2-abbrevs.el agda2-queue.el agda2-mode.el agda2.el # check no missing new elisp files cd src/data/emacs-mode for i in *.el; do if ! echo %{elisp_files} | grep -q $i; then echo "$i missing from %%elisp_files - aborting!" exit 1 fi done cd - # cpphs: src/full/Agda/Interaction/BasicOps.hs: hGetContents: invalid argument (invalid byte sequence) LANG=en_US.utf8 %ghc_lib_build # el6 macro does not add "." to load-path %if %{defined el6} %define _emacs_bytecompile /usr/bin/emacs -batch --no-init-file --no-site-file --eval '(progn (setq load-path (cons "." load-path)))' -f batch-byte-compile %endif cd src/data/emacs-mode for i in %elisp_files; do %{_emacs_bytecompile} $i done cd - %install %ghc_lib_install %ghc_fix_dynamic_rpath agda dist/build/agda/agda %{buildroot}%{_datadir}/%{name}-%{version}/lib/prim/Agda/Primitive.agda mkdir -p %{buildroot}%{_emacs_sitelispdir}/agda for i in src/data/emacs-mode/*; do install -p -m 0644 $i %{buildroot}%{_emacs_sitelispdir}/agda done mkdir -p %{buildroot}%{_emacs_sitestartdir} install -p -m 0644 %SOURCE1 %{buildroot}%{_emacs_sitestartdir} rm %{buildroot}%{_bindir}/agda-mode rm -r %{buildroot}%{_datadir}/%{pkg_name}-%{version}/EpicInclude rm -r %{buildroot}%{_datadir}/%{pkg_name}-%{version}/emacs-mode rm %{buildroot}%{_docdir}/%{name}*/LICENSE %post -n ghc-%{name}-devel %ghc_pkg_recache %postun -n ghc-%{name}-devel %ghc_pkg_recache %files %doc README.md %files -n ghc-%{name} -f ghc-%{name}.files %doc LICENSE %{_datadir}/%{name}-%{version} %files -n ghc-%{name}-devel -f ghc-%{name}-devel.files %doc CHANGELOG %{_bindir}/agda %files -n emacs-agda %dir %{_emacs_sitelispdir}/agda %{_emacs_sitelispdir}/agda/*.elc %{_emacs_sitestartdir}/*.el %files -n emacs-agda-el %{_emacs_sitelispdir}/agda/*.el %changelog * Thu Apr 16 2015 Jens Petersen - 2.4.2.2-2 - compile Primitive.agda * Fri Apr 03 2015 Jens Petersen - 2.4.2.2-1 - update to 2.4.2.2 * Fri Feb 6 2015 Jens Petersen - 2.4.2-1 - update to 2.4.2 - needs new deps: STMonadTrans, boxes, data-hash, equivalence, and QuickCheck 2.7.5+ - cblrpm refresh * Fri Aug 15 2014 Fedora Release Engineering - 2.3.2.2-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild * Fri Jun 06 2014 Fedora Release Engineering - 2.3.2.2-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild * Tue Apr 22 2014 Jens Petersen - 2.3.2.2-3 - no _pkgdocdir in EL7 * Wed Jan 22 2014 Jens Petersen - 2.3.2.2-2 - exclude secondary arch's without template-haskell (#1038068) * Thu Oct 31 2013 Jens Petersen - 2.3.2.2-1 - update to 2.3.2.2 * Mon Sep 2 2013 Jens Petersen - 2.3.2.1-5 - drop defattr's * Thu Aug 29 2013 Jens Petersen - 2.3.2.1-4 - emacs agda-mode no longer depends on haskell-mode since 2.3.2 * Thu Aug 29 2013 Jens Petersen - 2.3.2.1-3 - compile agda2-queue.el - check for new elisp files - exclude armv7hl since TemplateHaskell failing to compile (#991929) * Tue Aug 27 2013 Jens Petersen - replace ghc_docdir by _pkgdocdir * Fri Aug 02 2013 Fedora Release Engineering - 2.3.2.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild * Fri Jul 26 2013 Jens Petersen - use ghc_docdir * Tue Jun 11 2013 Jens Petersen - 2.3.2.1-1 - rename src package from ghc-Agda to Agda - update to 2.3.2.1 http://wiki.portal.chalmers.se/agda/pmwiki.php?n=Main.Version-2-3-2 http://wiki.portal.chalmers.se/agda/pmwiki.php?n=Main.Version-2-3-2-1 - update to new simplified Haskell Packaging Guidelines - agda command-line tool in devel subpackage * Fri Jun 07 2013 Jens Petersen - update to new simplified Haskell Packaging Guidelines * Mon Mar 25 2013 Jens Petersen - 2.3.0.1-12 - rebuild * Tue Mar 19 2013 Jens Petersen - 2.3.0.1-11 - allow haskeline-0.7 * Wed Feb 13 2013 Fedora Release Engineering - 2.3.0.1-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild * Wed Dec 12 2012 Jens Petersen - 2.3.0.1-9 - update QuickCheck-2.5 patch following upstream 2.3.2 - for epel6 redefine newer _emacs_bytecompile - own datadir correctly * Fri Nov 9 2012 Jens Petersen - 2.3.0.1-8 - build with QuickCheck 2.5 * Thu Jul 19 2012 Fedora Release Engineering - 2.3.0.1-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild * Mon Jul 16 2012 Jens Petersen - 2.3.0.1-6 - change prof BRs to devel * Wed Jul 11 2012 Jens Petersen - 2.3.0.1-5 - fix agda2-version in agda2-mode.el * Thu Jun 21 2012 Jens Petersen - 2.3.0.1-4 - upstream patch for building with haskell-src-exts-1.13 - use new cabal-tweak-dep-ver script to change mtl and haskell-src-exts bounds * Mon Jun 11 2012 Jens Petersen - 2.3.0.1-3 - allow building with mtl-2.1 * Thu May 31 2012 Jens Petersen - 2.3.0.1-2 - library license is also BSD (#710031) - move release notes to devel subpackage * Tue Apr 10 2012 Jens Petersen - 2.3.0.1-1 - update to 2.3.0.1 for ghc-7.4.1 * Tue Feb 14 2012 Jens Petersen - 2.3.0-1 - update to 2.3.0 - update to cabal2spec-0.25 - new depends on hashtables * Fri Jun 3 2011 Jens Petersen - 2.2.10-2 - also BR alex, happy, and emacs-haskell-mode * Thu Jun 2 2011 Jens Petersen - 2.2.10-1 - MIT license - add deps and description - emacs mode subpackages * Thu Jun 2 2011 Fedora Haskell SIG - 2.2.10-0 - initial packaging for Fedora automatically generated by cabal2spec-0.23