# # spec file for package microlens # # Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %global pkg_name microlens Name: %{pkg_name} Version: 0.4.8.1 Release: 0 Summary: A tiny lens library with no dependencies. If you're writing an app, you probably want microlens-platform, not this License: BSD-3-Clause Group: Development/Libraries/Haskell URL: https://hackage.haskell.org/package/%{name} Source0: https://hackage.haskell.org/package/%{name}-%{version}/%{name}-%{version}.tar.gz BuildRequires: ghc-Cabal-devel BuildRequires: ghc-rpm-macros %description NOTE: If you're writing an app, you probably want – it has the most features. is intended more for library writers who want a tiny lens library (after all, lenses are pretty useful for everything, not just for updating records!). This library is an extract from (with no dependencies). It's not a toy lenses library, unsuitable for “real world”, but merely a small one. It is compatible with lens, and should have same performance. It also has better documentation. There's a longer readme . It has a migration guide for lens users, a description of other packages in the family, a discussion of other lens libraries you could use instead, and so on. Here are some usecases for this library: * You want to define lenses or traversals in your own library, but don't want to depend on lens. Having lenses available often make working with a library more pleasant. * You just want to be able to use lenses to transform data (or even just use 'over _1' to change the first element of a tuple). * You are new to lenses and want a small library to play with. However, don't use this library if: * You need 'Iso's, 'Prism's, indexed traversals, or actually anything else which isn't defined here (tho some indexed functions are available elsewhere – containers and vector provide them for their types, and provides indexed functions for lists). * You want a library with a clean, understandable implementation (in which case you're looking for ). As already mentioned, if you're writing an application which uses lenses more extensively, look at – it combines features of most other microlens packages (, , ). If you want to export getters or folds and don't mind the dependency, please consider using . If you haven't ever used lenses before, read . (It's for lens, but it applies to microlens just as well.) Note that microlens has no dependencies starting from GHC 7.10 (base-4.8). Prior to that, it depends on transformers-0.2 or above. %package -n ghc-%{name} Summary: Haskell %{name} library Group: System/Libraries %description -n ghc-%{name} This package provides the Haskell %{name} shared library. %package -n ghc-%{name}-devel Summary: Haskell %{name} library development files Group: Development/Libraries/Haskell Requires: ghc-%{name} = %{version}-%{release} Requires: ghc-compiler = %{ghc_version} Requires(post): ghc-compiler = %{ghc_version} Requires(postun): ghc-compiler = %{ghc_version} %description -n ghc-%{name}-devel This package provides the Haskell %{name} library development files. %prep %setup -q %build %ghc_lib_build %install %ghc_lib_install %post -n ghc-%{name}-devel %ghc_pkg_recache %postun -n ghc-%{name}-devel %ghc_pkg_recache %files %license LICENSE %doc CHANGELOG.md %files -n ghc-%{name} -f ghc-%{name}.files %license LICENSE %files -n ghc-%{name}-devel -f ghc-%{name}-devel.files %doc CHANGELOG.md %changelog