summary refs log tree commit diff
path: root/pkgs/development/libraries/agda/agda-categories/default.nix
blob: ff520fb85ef316f8bc09b3f6d461917b0a139172 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
{ lib, mkDerivation, fetchFromGitHub, standard-library }:

mkDerivation rec {
  version = "0.1.7.1a";
  pname = "agda-categories";

  src = fetchFromGitHub {
    owner = "agda";
    repo = "agda-categories";
    rev = "v${version}";
    sha256 = "sha256-VlxRDxXg+unzYlACUU58JQUHXxtg0fI5dEQvlBRxJtU=";
  };

  postPatch = ''
    # Remove this once agda-categories incorporates this fix or once Agda's
    # versioning system gets an overhaul in general. Right now there is no middle
    # ground between "no version constraint" and "exact match down to patch". We
    # do not want to need to change this postPatch directive on each minor
    # version update of the stdlib, so we get rid of the version constraint
    # altogether.
    sed -Ei 's/standard-library-[0-9.]+/standard-library/' agda-categories.agda-lib

    # The Makefile of agda-categories uses git(1) instead of find(1) to
    # determine the list of source files. We cannot use git, as $PWD will not
    # be a valid Git working directory.
    find src -name '*.agda' | sed -e 's|^src/[/]*|import |' -e 's|/|.|g' -e 's/.agda//' -e '/import Everything/d' | LC_COLLATE='C' sort > Everything.agda
  '';

  buildInputs = [ standard-library ];

  meta = with lib; {
    inherit (src.meta) homepage;
    description = "A new Categories library";
    license = licenses.bsd3;
    platforms = platforms.unix;
    maintainers = with maintainers; [ alexarice turion ];
  };
}