Blob Blame History Raw
# generated by cabal-rpm-0.12.4
# https://fedoraproject.org/wiki/Packaging:Haskell

%global pkg_name idris
%global pkgver %{pkg_name}-%{version}

%bcond_with tests

%ifarch armv7hl
%global without_prof 1
%endif

Name:           %{pkg_name}
Version:        1.3.0
Release:        3%{?dist}
Summary:        Functional Programming Language with Dependent Types

License:        BSD
Url:            https://hackage.haskell.org/package/%{name}
Source0:        https://hackage.haskell.org/package/%{pkgver}/%{pkgver}.tar.gz

BuildRequires:  ghc-Cabal-devel
BuildRequires:  ghc-rpm-macros
# Begin cabal-rpm deps:
BuildRequires:  chrpath
BuildRequires:  ghc-aeson-devel
BuildRequires:  ghc-annotated-wl-pprint-devel
BuildRequires:  ghc-ansi-terminal-devel
BuildRequires:  ghc-ansi-wl-pprint-devel
BuildRequires:  ghc-array-devel
BuildRequires:  ghc-async-devel
BuildRequires:  ghc-base64-bytestring-devel
BuildRequires:  ghc-binary-devel
BuildRequires:  ghc-blaze-html-devel
BuildRequires:  ghc-blaze-markup-devel
BuildRequires:  ghc-bytestring-devel
BuildRequires:  ghc-cheapskate-devel
BuildRequires:  ghc-code-page-devel
BuildRequires:  ghc-containers-devel
BuildRequires:  ghc-deepseq-devel
BuildRequires:  ghc-directory-devel
BuildRequires:  ghc-filepath-devel
BuildRequires:  ghc-fingertree-devel
BuildRequires:  ghc-fsnotify-devel
BuildRequires:  ghc-haskeline-devel
BuildRequires:  ghc-ieee754-devel
BuildRequires:  ghc-libffi-devel
BuildRequires:  ghc-megaparsec-devel
BuildRequires:  ghc-mtl-devel
BuildRequires:  ghc-network-devel
BuildRequires:  ghc-optparse-applicative-devel
BuildRequires:  ghc-pretty-devel
BuildRequires:  ghc-process-devel
BuildRequires:  ghc-regex-tdfa-devel
BuildRequires:  ghc-safe-devel
BuildRequires:  ghc-split-devel
BuildRequires:  ghc-terminal-size-devel
BuildRequires:  ghc-text-devel
BuildRequires:  ghc-time-devel
BuildRequires:  ghc-transformers-devel
BuildRequires:  ghc-uniplate-devel
BuildRequires:  ghc-unix-devel
BuildRequires:  ghc-unordered-containers-devel
BuildRequires:  ghc-utf8-string-devel
BuildRequires:  ghc-vector-binary-instances-devel
BuildRequires:  ghc-vector-devel
BuildRequires:  ghc-zip-archive-devel
BuildRequires:  gmp-devel
%if %{with tests}
BuildRequires:  ghc-tagged-devel
BuildRequires:  ghc-tasty-devel
BuildRequires:  ghc-tasty-golden-devel
BuildRequires:  ghc-tasty-rerun-devel
%endif
# End cabal-rpm deps
BuildRequires:  gc-devel
BuildRequires:  python-sphinx
## idris compiles to C and then uses gcc linking to the static rts library
## to generate executables (so devel files are included in the main package)
Requires:       gcc
Requires:       gmp-devel

%description
Idris is a general purpose language with full dependent types. It is compiled,
with eager evaluation. Dependent types allow types to be predicated on values,
meaning that some aspects of a program's behaviour can be specified precisely
in the type. The language is closely related to Epigram and Agda.
There is a tutorial at <http://www.idris-lang.org/documentation>.
Features include:

* Full, first class, dependent types with dependent pattern matching
* where clauses, with rule, case expressions, pattern matching let and
  lambda bindings
* Interfaces (similar to type classes), monad comprehensions
* do notation, idiom brackets, syntactic conveniences for lists, tuples,
  dependent pairs
* Totality checking
* Coinductive types
* Indentation significant syntax, extensible syntax
* Cumulative universes
* Simple foreign function interface (to C)
* Hugs style interactive environment.


%package libs
Summary:        Idris libraries
BuildArch:      noarch

%description libs
This package provides the Idris library and RTS.


%package -n ghc-%{name}
Summary:        Haskell %{name} library
Requires:       idris-libs = %{version}-%{release}

%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}
Provides:       ghc-%{name}-doc = %{version}-%{release}
%if %{defined ghc_version}
Requires:       ghc-compiler = %{ghc_version}
Requires(post): ghc-compiler = %{ghc_version}
Requires(postun): ghc-compiler = %{ghc_version}
%endif
Requires:       ghc-%{name}%{?_isa} = %{version}-%{release}

%description -n ghc-%{name}-devel
This package provides the Haskell %{name} library development files.


%package manual
Summary:        The Idris manual
BuildArch:      noarch

%description manual
This package provides the manual for the idris programming language.


%prep
%setup -q
cabal-tweak-flag FFI True
cabal-tweak-flag GMP True


%build
export LD_LIBRARY_PATH=$PWD/dist/build
%ghc_lib_build
make user_doc_html


%install
export LD_LIBRARY_PATH=$PWD/dist/build
%ghc_lib_install
%ghc_fix_rpath %{pkgver}
mv %{buildroot}%{_ghclicensedir}/%{name}{,-libs}
# https://github.com/idris-lang/Idris-dev/issues/4495
mv %{buildroot}%{_datadir}/%{pkgver}/rts/libidris_rts.a %{buildroot}%{_libdir}

# https://github.com/idris-lang/Idris-dev/issues/4497
chmod +r -R %{buildroot}%{_datadir}/%{pkgver}/docs


%check
%cabal_test


%post -n ghc-%{name}-devel
%ghc_pkg_recache


%postun -n ghc-%{name}-devel
%ghc_pkg_recache


%files
%doc CHANGELOG.md CONTRIBUTORS README.md
%{_bindir}/%{name}
%{_bindir}/idris-codegen-c
%{_bindir}/idris-codegen-javascript
%{_bindir}/idris-codegen-node
%{_mandir}/man1/idris.1*


%files libs
%license LICENSE
%{_datadir}/%{pkgver}


%files -n ghc-%{name} -f ghc-%{name}.files
%attr(644, -, -) %{_libdir}/libidris_rts.a


%files -n ghc-%{name}-devel -f ghc-%{name}-devel.files


%files manual
%doc docs/_build/html


%changelog
* Tue Jun 26 2018 Jens Petersen <petersen@redhat.com> - 1.3.0-3
- build with libffi and gmp
- build the manual with python-sphinx
- noarch subpackages for manual and libs
- make lib docs readable
- install libidris_rts.a in libdir

* Tue Jun 26 2018 Jens Petersen <petersen@redhat.com> - 1.3.0-2
- builds on armv7hl without prof lib

* Mon Jun 25 2018 Jens Petersen <petersen@redhat.com> - 1.3.0-1
- update to 1.3.0

* Thu Jul 28 2016 Jens Petersen <petersen@redhat.com> - 0.9.9.1-8
- require gmp-devel (#1360168)

* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.9.1-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.9.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Mon Apr  6 2015 Jens Petersen <petersen@redhat.com> - 0.9.9.1-5
- rebuild

* Wed Jan 28 2015 Jens Petersen <petersen@redhat.com> - 0.9.9.1-4
- cblrpm refresh
- fix build with ghc78
- temporarily exclude armv7hl until RTS issues resolved (#1190261)

* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.9.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild

* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.9.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Sat Oct  5 2013 Jens Petersen <petersen@redhat.com> - 0.9.9.1-1
- update to 0.9.9.1
- depends on ansi-terminal and time

* Fri Oct  4 2013 Jens Petersen <petersen@redhat.com> - 0.9.9-1
- update to 0.9.9
  http://www.idris-lang.org/idris-0-9-9-released/
- disable LLVM backend for now
- depends on vector-binary-instances
- buildrequires gc-devel

* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.8-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild

* Tue Jul  9 2013 Jens Petersen <petersen@redhat.com> - 0.9.8-3
- use cabal_configure_extra_options to set datadir (#947819)
- add a comment about the devel files in the main package (#947819)

* Mon Jul  8 2013 Jens Petersen <petersen@redhat.com> - 0.9.8-2
- install idris devel data files under libdir (#947819)

* Mon Jul  1 2013 Jens Petersen <petersen@redhat.com> - 0.9.8-1
- update to 0.9.8
- http://idris-lang.org/archives/272

* Sat Apr  6 2013 Jens Petersen <petersen@redhat.com> - 0.9.7-2
- requires gcc

* Wed Apr  3 2013 Jens Petersen <petersen@redhat.com> - 0.9.7-1
- spec file regenerated with cabal-rpm-0.8.0

* Sat Feb 25 2012 Jens Petersen <petersen@redhat.com> - 0.9.1-1
- update to 0.9.1

* Fri Jan 27 2012 Jens Petersen <petersen@redhat.com> - 0.9.0-1
- BSD license

* Fri Jan 27 2012 Fedora Haskell SIG <haskell-devel@lists.fedoraproject.org>
- spec file template generated by cabal2spec-0.25.4