ghc-generic-deriving/ghc-generic-deriving.spec

176 lines
5.2 KiB
RPMSpec
Raw Permalink Normal View History

2023-01-22 15:36:06 +00:00
# generated by cabal-rpm-2.1.0
2020-06-04 11:26:25 +00:00
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Haskell/
2017-08-28 23:50:01 +00:00
%global pkg_name generic-deriving
%global pkgver %{pkg_name}-%{version}
2020-02-20 14:18:01 +00:00
%bcond_without tests
2017-08-28 23:50:01 +00:00
Name: ghc-%{pkg_name}
2023-01-22 15:36:06 +00:00
Version: 1.14.2
Release: %autorelease
2017-08-28 23:50:01 +00:00
Summary: Generic programming library for generalised deriving
2023-01-22 15:36:06 +00:00
License: BSD-3-Clause
2017-08-28 23:50:01 +00:00
Url: https://hackage.haskell.org/package/%{pkg_name}
2019-02-17 14:44:43 +00:00
# Begin cabal-rpm sources:
2017-08-28 23:50:01 +00:00
Source0: https://hackage.haskell.org/package/%{pkgver}/%{pkgver}.tar.gz
2019-02-17 14:44:43 +00:00
# End cabal-rpm sources
2017-08-28 23:50:01 +00:00
2019-02-17 14:44:43 +00:00
# Begin cabal-rpm deps:
2017-08-28 23:50:01 +00:00
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-rpm-macros
2023-01-22 15:36:06 +00:00
BuildRequires: ghc-base-devel
BuildRequires: ghc-containers-devel
BuildRequires: ghc-template-haskell-devel
BuildRequires: ghc-th-abstraction-devel
%if %{with ghc_prof}
BuildRequires: ghc-base-prof
BuildRequires: ghc-containers-prof
BuildRequires: ghc-template-haskell-prof
BuildRequires: ghc-th-abstraction-prof
2023-01-22 15:36:06 +00:00
%endif
2017-08-28 23:50:01 +00:00
%if %{with tests}
BuildRequires: ghc-hspec-devel
2020-06-19 08:55:02 +00:00
BuildRequires: ghc-hspec-discover-devel
2017-08-28 23:50:01 +00:00
%endif
# End cabal-rpm deps
%description
This package provides functionality for generalising the deriving mechanism in
Haskell to arbitrary classes. It was first described in the paper:
* /A generic deriving mechanism for Haskell/. Jose Pedro Magalhaes, Atze
Dijkstra, Johan Jeuring, and Andres Loeh. Haskell'10.
The current implementation integrates with the new GHC Generics. See
<http://www.haskell.org/haskellwiki/GHC.Generics> for more information.
Template Haskell code is provided for supporting older GHCs.
2021-08-05 04:12:55 +00:00
This library is organized as follows:
* "Generics.Deriving.Base" defines the core functionality for GHC generics,
including the 'Generic(1)' classes and representation data types. On modern
versions of GHC, this simply re-exports "GHC.Generics" from 'base'. On older
versions of GHC, this module backports parts of "GHC.Generics" that were not
included at the time, including 'Generic(1)' instances.
* "Generics.Deriving.TH" implements Template Haskell functionality for deriving
instances of 'Generic(1)'.
* Educational code: in order to provide examples of how to define and use
"GHC.Generics"-based defaults, this library offers a number of modules which
define examples of type classes along with default implementations for the
classes' methods. Currently, the following modules are provided:
"Generics.Deriving.Copoint", "Generics.Deriving.ConNames",
"Generics.Deriving.Enum", "Generics.Deriving.Eq", "Generics.Deriving.Foldable",
"Generics.Deriving.Functor", "Generics.Deriving.Monoid",
"Generics.Deriving.Semigroup", "Generics.Deriving.Show",
"Generics.Deriving.Traversable", and "Generics.Deriving.Uniplate".
It is worth emphasizing that these modules are primarly intended for
educational purposes. Many of the classes in these modules resemble other
commonly used classes—for example, 'GShow' from "Generics.Deriving.Show"
resembles 'Show' from 'base'—but in general, the classes that
'generic-deriving' defines are not drop-in replacements. Moreover, the generic
defaults that 'generic-deriving' provide often make simplifying assumptions
that may violate expectations of how these classes might work elsewhere.
For example, the generic default for 'GShow' does not behave exactly like
'deriving Show' would.
If you are seeking "GHC.Generics"-based defaults for type classes in 'base',
consider using the '<http://hackage.haskell.org/package/generic-data
generic-data>' library.
* "Generics.Deriving.Default" provides newtypes that allow leveraging the
generic defaults in this library using the 'DerivingVia' GHC language
extension.
* "Generics.Deriving" re-exports "Generics.Deriving.Base",
"Generics.Deriving.Default", and a selection of educational modules.
2017-08-28 23:50:01 +00:00
%package devel
Summary: Haskell %{pkg_name} library development files
Provides: %{name}-static = %{version}-%{release}
Provides: %{name}-static%{?_isa} = %{version}-%{release}
2018-01-24 13:11:09 +00:00
%if %{defined ghc_version}
2017-08-28 23:50:01 +00:00
Requires: ghc-compiler = %{ghc_version}
2018-01-24 13:11:09 +00:00
%endif
2017-08-28 23:50:01 +00:00
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
This package provides the Haskell %{pkg_name} library development
files.
2017-08-28 23:50:01 +00:00
%if %{with haddock}
%package doc
Summary: Haskell %{pkg_name} library documentation
2020-02-08 14:50:15 +00:00
BuildArch: noarch
2021-07-07 16:30:11 +00:00
Requires: ghc-filesystem
2017-08-28 23:50:01 +00:00
%description doc
This package provides the Haskell %{pkg_name} library documentation.
%endif
2017-08-28 23:50:01 +00:00
%if %{with ghc_prof}
%package prof
Summary: Haskell %{pkg_name} profiling library
Requires: %{name}-devel%{?_isa} = %{version}-%{release}
2020-02-08 14:50:15 +00:00
Supplements: (%{name}-devel and ghc-prof)
%description prof
This package provides the Haskell %{pkg_name} profiling library.
%endif
2017-08-28 23:50:01 +00:00
%prep
2019-02-17 14:44:43 +00:00
# Begin cabal-rpm setup:
2017-08-28 23:50:01 +00:00
%setup -q -n %{pkgver}
2019-02-17 14:44:43 +00:00
# End cabal-rpm setup
2017-08-28 23:50:01 +00:00
%build
2019-02-17 14:44:43 +00:00
# Begin cabal-rpm build:
2017-08-28 23:50:01 +00:00
%ghc_lib_build
2019-02-17 14:44:43 +00:00
# End cabal-rpm build
2017-08-28 23:50:01 +00:00
%install
2019-02-17 14:44:43 +00:00
# Begin cabal-rpm install
2017-08-28 23:50:01 +00:00
%ghc_lib_install
2019-02-17 14:44:43 +00:00
# End cabal-rpm install
2017-08-28 23:50:01 +00:00
%check
2021-07-07 16:30:11 +00:00
%if %{with tests}
2017-08-28 23:50:01 +00:00
%cabal_test
2021-07-07 16:30:11 +00:00
%endif
2017-08-28 23:50:01 +00:00
%files -f %{name}.files
2019-02-17 14:44:43 +00:00
# Begin cabal-rpm files:
2017-08-28 23:50:01 +00:00
%license LICENSE
2019-02-17 14:44:43 +00:00
# End cabal-rpm files
2017-08-28 23:50:01 +00:00
%files devel -f %{name}-devel.files
2017-08-28 23:50:01 +00:00
%doc CHANGELOG.md README.md
%if %{with haddock}
%files doc -f %{name}-doc.files
2020-02-08 14:50:15 +00:00
%license LICENSE
%endif
%if %{with ghc_prof}
%files prof -f %{name}-prof.files
2018-09-13 09:46:04 +00:00
%endif
2017-08-28 23:50:01 +00:00
%changelog
%autochangelog