## START: Set by rpmautospec
## (rpmautospec version 0.7.2)
## RPMAUTOSPEC: autorelease, autochangelog
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
    release_number = 17;
    base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
    print(release_number + base_release_number - 1);
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
## END: Set by rpmautospec

# generated by cabal-rpm-2.2.1
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Haskell/

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

%ifarch armv7hl
%undefine with_ghc_prof
%endif

# testsuite missing deps: tasty-golden

Name:           %{pkg_name}
Version:        1.3.4
Release:        %autorelease
Summary:        Functional Programming Language with Dependent Types

License:        BSD-3-Clause
Url:            https://hackage.haskell.org/package/%{name}
# Begin cabal-rpm sources:
Source0:        https://hackage.haskell.org/package/%{pkgver}/%{pkgver}.tar.gz
# End cabal-rpm sources
Patch0:         https://patch-diff.githubusercontent.com/raw/idris-lang/Idris-dev/pull/4920.patch
Patch1:         https://patch-diff.githubusercontent.com/raw/idris-lang/Idris-dev/pull/4921.patch
Patch2:         https://patch-diff.githubusercontent.com/raw/idris-lang/Idris-dev/pull/4922.patch
Patch3:         https://patch-diff.githubusercontent.com/raw/idris-lang/Idris-dev/pull/4925.patch
Patch4:         https://patch-diff.githubusercontent.com/raw/idris-lang/Idris-dev/pull/4926.patch

# Begin cabal-rpm deps:
BuildRequires:  ghc-Cabal-devel
BuildRequires:  ghc-rpm-macros
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-base-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-parser-combinators-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-devel
BuildRequires:  ghc-vector-binary-instances-devel
BuildRequires:  ghc-zip-archive-devel
%if %{with ghc_prof}
BuildRequires:  ghc-aeson-prof
BuildRequires:  ghc-annotated-wl-pprint-prof
BuildRequires:  ghc-ansi-terminal-prof
BuildRequires:  ghc-ansi-wl-pprint-prof
BuildRequires:  ghc-array-prof
BuildRequires:  ghc-async-prof
BuildRequires:  ghc-base-prof
BuildRequires:  ghc-base64-bytestring-prof
BuildRequires:  ghc-binary-prof
BuildRequires:  ghc-blaze-html-prof
BuildRequires:  ghc-blaze-markup-prof
BuildRequires:  ghc-bytestring-prof
BuildRequires:  ghc-cheapskate-prof
BuildRequires:  ghc-code-page-prof
BuildRequires:  ghc-containers-prof
BuildRequires:  ghc-deepseq-prof
BuildRequires:  ghc-directory-prof
BuildRequires:  ghc-filepath-prof
BuildRequires:  ghc-fingertree-prof
BuildRequires:  ghc-fsnotify-prof
BuildRequires:  ghc-haskeline-prof
BuildRequires:  ghc-ieee754-prof
BuildRequires:  ghc-libffi-prof
BuildRequires:  ghc-megaparsec-prof
BuildRequires:  ghc-mtl-prof
BuildRequires:  ghc-network-prof
BuildRequires:  ghc-optparse-applicative-prof
BuildRequires:  ghc-parser-combinators-prof
BuildRequires:  ghc-pretty-prof
BuildRequires:  ghc-process-prof
BuildRequires:  ghc-regex-tdfa-prof
BuildRequires:  ghc-safe-prof
BuildRequires:  ghc-split-prof
BuildRequires:  ghc-terminal-size-prof
BuildRequires:  ghc-text-prof
BuildRequires:  ghc-time-prof
BuildRequires:  ghc-transformers-prof
BuildRequires:  ghc-uniplate-prof
BuildRequires:  ghc-unix-prof
BuildRequires:  ghc-unordered-containers-prof
BuildRequires:  ghc-utf8-string-prof
BuildRequires:  ghc-vector-prof
BuildRequires:  ghc-vector-binary-instances-prof
BuildRequires:  ghc-zip-archive-prof
%endif
BuildRequires:  gmp-devel
BuildRequires:  help2man
Requires:       %{name}-common = %{version}-%{release}
# End cabal-rpm deps
BuildRequires:  gc-devel
# needs sphinx-build
BuildRequires:  python3-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
Requires:       %{name}-static = %{version}-%{release}

%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 <https://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 common
Summary:        Idris libraries
BuildArch:      noarch

%description common
This package provides the Idris libraries development files.


%package static
Summary:        Idris RTS

%description static
This package provides the Idris RTS.


%package -n ghc-%{name}
Summary:        Haskell %{name} library
Requires:       %{name}-common = %{version}-%{release}
Requires:       %{name}-static = %{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}-static%{?_isa} = %{version}-%{release}
%if %{defined ghc_version}
Requires:       ghc-compiler = %{ghc_version}
%endif
Requires:       ghc-%{name}%{?_isa} = %{version}-%{release}
# Begin cabal-rpm deps:
Requires:       gmp-devel%{?_isa}
# End cabal-rpm deps

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


%package docs
Summary:        Idris library docs
BuildArch:      noarch

%description docs
This package provides the library docs for the Idris programming language.


%package manual
Summary:        The Idris manual
BuildArch:      noarch

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


%if %{with haddock}
%package -n ghc-%{name}-doc
Summary:        Haskell %{name} library documentation
BuildArch:      noarch
Requires:       ghc-filesystem

%description -n ghc-%{name}-doc
This package provides the Haskell %{name} library documentation.
%endif


%if %{with ghc_prof}
%package -n ghc-%{name}-prof
Summary:        Haskell %{name} profiling library
Requires:       ghc-%{name}-devel%{?_isa} = %{version}-%{release}
Supplements:    (ghc-%{name}-devel and ghc-prof)

%description -n ghc-%{name}-prof
This package provides the Haskell %{name} profiling library.
%endif


%prep
# Begin cabal-rpm setup:
%setup -q
%autopatch -p1
# End cabal-rpm setup
cabal-tweak-dep-ver optparse-applicative '< 0.18' '< 0.19'
cabal-tweak-flag FFI True
cabal-tweak-flag GMP True
cabal-tweak-dep-ver ansi-wl-pprint '< 0.7' '< 1.1'


%build
export LD_LIBRARY_PATH=$PWD/dist/build
# Begin cabal-rpm build:
%ghc_lib_build
# End cabal-rpm build


%install
export LD_LIBRARY_PATH=$PWD/dist/build
# Begin cabal-rpm install
%ghc_lib_install
mv %{buildroot}%{_ghcdocdir}{,-common}

set noclobber
mkdir -p %{buildroot}%{bash_completions_dir}
%{buildroot}%{_bindir}/%{name} --bash-completion-script %{name} | sed s/filenames/default/ > %{buildroot}%{bash_completions_dir}/%{name}
%{buildroot}%{_bindir}/idris-codegen-c --bash-completion-script idris-codegen-c | sed s/filenames/default/ > %{buildroot}%{bash_completions_dir}/idris-codegen-c
%{buildroot}%{_bindir}/idris-codegen-javascript --bash-completion-script idris-codegen-javascript | sed s/filenames/default/ > %{buildroot}%{bash_completions_dir}/idris-codegen-javascript
%{buildroot}%{_bindir}/idris-codegen-node --bash-completion-script idris-codegen-node | sed s/filenames/default/ > %{buildroot}%{bash_completions_dir}/idris-codegen-node

mkdir -p %{buildroot}%{_mandir}/man1/
help2man --no-info %{buildroot}%{_bindir}/%{name} > %{buildroot}%{_mandir}/man1/%{name}.1
help2man --no-info %{buildroot}%{_bindir}/idris-codegen-c > %{buildroot}%{_mandir}/man1/idris-codegen-c.1
help2man --no-info %{buildroot}%{_bindir}/idris-codegen-javascript > %{buildroot}%{_mandir}/man1/idris-codegen-javascript.1
help2man --no-info %{buildroot}%{_bindir}/idris-codegen-node > %{buildroot}%{_mandir}/man1/idris-codegen-node.1
# End cabal-rpm install

# 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

mkdir -p %{buildroot}%{_docdir}/idris-manual
cp -p idris-tutorial.pdf %{buildroot}%{_docdir}/idris-manual/


%files
# Begin cabal-rpm files:
%{_bindir}/%{name}
%{_bindir}/idris-codegen-c
%{_bindir}/idris-codegen-javascript
%{_bindir}/idris-codegen-node
%{bash_completions_dir}/%{name}
%{bash_completions_dir}/idris-codegen-c
%{bash_completions_dir}/idris-codegen-javascript
%{bash_completions_dir}/idris-codegen-node
%{_mandir}/man1/%{name}.1*
%{_mandir}/man1/idris-codegen-c.1*
%{_mandir}/man1/idris-codegen-javascript.1*
%{_mandir}/man1/idris-codegen-node.1*
# End cabal-rpm files
%{_mandir}/man1/idris.1*


%files common
# Begin cabal-rpm files:
%license LICENSE
%doc CHANGELOG.md CONTRIBUTING.md CONTRIBUTORS README.md
%{_datadir}/%{pkgver}
# End cabal-rpm files
%exclude %{_datadir}/%{pkgver}/docs


%files docs
%dir %{_datadir}/%{pkgver}
%{_datadir}/%{pkgver}/docs


%files manual
%{_docdir}/idris-manual


%files static
%attr(644, -, -) %{_libdir}/libidris_rts.a


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


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


%if %{with haddock}
%files -n ghc-%{name}-doc -f ghc-%{name}-doc.files
%license LICENSE
%endif


%if %{with ghc_prof}
%files -n ghc-%{name}-prof -f ghc-%{name}-prof.files
%endif


%changelog
## START: Generated by rpmautospec
* Fri Aug 02 2024 Jens Petersen <petersen@redhat.com> - 1.3.4-17
- update mtl and bounds with upstream patches

* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.4-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild

* Tue Jul 16 2024 Jens Petersen <petersen@redhat.com> - 1.3.4-15
- refresh to cabal-rpm-2.2.1

* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.4-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Sat Jan 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.4-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Wed Jul 26 2023 Jens Petersen <petersen@redhat.com> - 1.3.4-12
- bump upper bounds

* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.4-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild

* Fri Feb 17 2023 Jens Petersen <petersen@redhat.com> - 1.3.4-6
- refresh to cabal-rpm-2.1.0 with SPDX migration

* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.4-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

* Fri Jun 17 2022 Jens Petersen <petersen@redhat.com> - 1.3.4-4
- rebuild

* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

* Sat Jan 08 2022 Miro Hrončok <mhroncok@redhat.com> - 1.3.4-2
- Rebuilt for https://fedoraproject.org/wiki/Changes/LIBFFI34

* Mon Oct 25 2021 Jens Petersen <petersen@redhat.com> - 1.3.4-1
- update to new stable release
- https://hackage.haskell.org/package/idris-1.3.4/changelog

* Sun Aug 22 2021 Jens Petersen <petersen@redhat.com> - 1.3.3-6.20210626git2ef8238d0
- update to latest git, which builds with ghc-8.10 (#1991878)

* Fri Aug 06 2021 Jens Petersen <petersen@redhat.com> - 1.3.3-5
- rebuild

* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

* Mon Aug 10 2020 Jens Petersen <petersen@redhat.com> - 1.3.3-2
- setup bash completion

* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Wed Jun 10 2020 Jens Petersen <petersen@redhat.com> - 1.3.3-1
- update to 1.3.3

* Thu Feb 20 2020 Jens Petersen <petersen@redhat.com> - 1.3.2-3
- refresh to cabal-rpm-2.0.2

* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

* Thu Jul 25 2019 Jens Petersen <petersen@redhat.com> - 1.3.2-1
- update to 1.3.2

* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

* Sun Mar 17 2019 Jens Petersen <petersen@redhat.com> - 1.3.1-2
- use python3-sphinx

* Thu Feb 21 2019 Jens Petersen <petersen@redhat.com> - 1.3.1-1
- update to 1.3.1

* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

* Wed Oct 24 2018 Jens Petersen <petersen@redhat.com> - 1.3.0-6
- rebuild for static executable
- move library html docs to subpackage

* Sat Jul 28 2018 Jens Petersen <petersen@redhat.com> - 1.3.0-5
- rebuild

* Sat Jun 30 2018 Jens Petersen <petersen@redhat.com> - 1.3.0-4
- BR python2-sphinx for sphinx-build (#1594765)
- install the manual in the buildroot

* 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

## END: Generated by rpmautospec