1{
2 lib,
3 stdenv,
4 asciidoc,
5 fetchFromGitLab,
6 git,
7 makeWrapper,
8 python3,
9 rcs,
10 asciidoctor,
11}:
12
13stdenv.mkDerivation (finalAttrs: {
14 pname = "src";
15 version = "1.41";
16
17 src = fetchFromGitLab {
18 owner = "esr";
19 repo = "src";
20 tag = finalAttrs.version;
21 hash = "sha256-i5i6+RmQ/70ul2r/NC6xv/8sUP3+8mkQIDgyC1NrSrI=";
22 };
23
24 nativeBuildInputs = [
25 asciidoc
26 asciidoctor
27 makeWrapper
28 ];
29
30 buildInputs = [
31 git
32 python3
33 rcs
34 ];
35
36 strictDeps = true;
37
38 preConfigure = ''
39 patchShebangs .
40 '';
41
42 makeFlags = [
43 "prefix=${placeholder "out"}"
44 ];
45
46 postInstall = ''
47 wrapProgram $out/bin/src \
48 --suffix PATH ":" "${rcs}/bin"
49 '';
50
51 meta = {
52 homepage = "http://www.catb.org/esr/src/";
53 description = "Simple single-file revision control";
54 longDescription = ''
55 SRC, acronym of Simple Revision Control, is RCS/SCCS reloaded with a
56 modern UI, designed to manage single-file solo projects kept more than one
57 to a directory. Use it for FAQs, ~/bin directories, config files, and the
58 like. Features integer sequential revision numbers, a command set that
59 will seem familiar to Subversion/Git/hg users, and no binary blobs
60 anywhere.
61 '';
62 changelog = "https://gitlab.com/esr/src/-/raw/${finalAttrs.version}/NEWS.adoc";
63 license = lib.licenses.bsd2;
64 mainProgram = "src";
65 maintainers = with lib.maintainers; [ ];
66 inherit (python3.meta) platforms;
67 };
68})