fork
Configure Feed
Select the types of activity you want to include in your feed.
nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
fork
Configure Feed
Select the types of activity you want to include in your feed.
1{
2 lib,
3 fetchurl,
4 stdenv,
5 bzip2,
6 gdbm,
7 gnum4,
8 gzip,
9 libffi,
10 openssl,
11 readline,
12 sqlite,
13 tcl,
14 xz,
15 zlib,
16}:
17
18stdenv.mkDerivation rec {
19 pname = "snobol4";
20 version = "2.3.3";
21
22 src = fetchurl {
23 urls = [
24 "https://ftp.regressive.org/snobol4/snobol4-${version}.tar.gz"
25 # fallback for when the current version is moved to the old folder
26 "https://ftp.regressive.org/snobol4/old/snobol4-${version}.tar.gz"
27 ];
28 hash = "sha256-v9UwcdaSg3dvWydk94ZdNUuJ03JWmFShiHjln1c4jtI=";
29 };
30
31 outputs = [
32 "out"
33 "man"
34 "doc"
35 ];
36
37 # gzip used by Makefile to compress man pages
38 nativeBuildInputs = [
39 gnum4
40 gzip
41 ];
42 # enable all features (undocumented, based on manual review of configure script)
43 buildInputs = [
44 bzip2
45 libffi
46 openssl
47 readline
48 sqlite
49 tcl
50 xz
51 zlib
52 ]
53 # ndbm compat library
54 ++ lib.optional stdenv.hostPlatform.isLinux gdbm;
55 configureFlags = lib.optional (tcl != null) "--with-tcl=${tcl}/lib/tclConfig.sh";
56
57 # INSTALL says "parallel make will fail"
58 enableParallelBuilding = false;
59
60 patches = [ ./fix-paths.patch ];
61
62 # configure does not support --sbindir and the likes (as introduced by multiple-outputs.sh)
63 # so man, doc outputs must be handled manually
64 preConfigurePhases = [ "prePreConfigurePhase" ];
65 prePreConfigurePhase = ''
66 preConfigureHooks="''${preConfigureHooks//_multioutConfig/}"
67 prependToVar configureFlags --mandir="$man"/share/man
68 '';
69
70 meta = with lib; {
71 description = "Macro Implementation of SNOBOL4 in C";
72 longDescription = ''
73 An open source port of Macro SNOBOL4 (The original Bell Telephone Labs implementation, written in SIL macros) by Phil Budne.
74 Supports full SNOBOL4 language plus SPITBOL, [Blocks](https://www.regressive.org/snobol4/blocks/) and other extensions.
75 '';
76 homepage = "https://www.regressive.org/snobol4/csnobol4/";
77 license = licenses.bsd2;
78 platforms = platforms.all;
79 maintainers = with maintainers; [ xworld21 ];
80 };
81}