about summary refs log tree commit diff
path: root/third_party/lisp/usocket.nix
blob: 888d5e01a0d5e6162ed11d0b1c099260852dd241 (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
# Usocket is a portable socket library
{ depot, pkgs, ... }:

let
  inherit (depot.nix) buildLisp;

  src = pkgs.fetchFromGitHub {
    owner = "usocket";
    repo = "usocket";
    rev = "fdf4fd1e0051ce83340ccfbbc8a43a462bb19cf2";
    sha256 = "0x746wr2324l6bn7skqzgkzcbj5kd0zp2ck0c8rldrw0rzabg826";
  };
in buildLisp.library {
  name = "usocket";
  deps = with depot.third_party.lisp; [
    (buildLisp.bundled "asdf")
    (buildLisp.bundled "sb-bsd-sockets")
    split-sequence
  ];

  srcs = [
    # usocket also reads its version from ASDF, but there's further
    # shenanigans happening there that I don't intend to support right
    # now. Behold:
    (builtins.toFile "usocket.asd" ''
      (in-package :asdf)
      (defsystem usocket
        :version "0.8.3")
    '')
  ] ++
  # Now for the regularly scheduled programming:
  (map (f: src + ("/" + f)) [
    "package.lisp"
    "usocket.lisp"
    "condition.lisp"
    "backend/sbcl.lisp"
  ]);
}