A WhatsApp (Web) transport for XMPP.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

996 lines
29KB

  1. { depot ? import <depot> {}, pkgs ? import <nixpkgs> {} }:
  2. with depot.nix;
  3. with depot.third_party.lisp;
  4. let
  5. lispPkgs = rec {
  6. event-emitter = let
  7. src = depot.third_party.fetchFromGitHub {
  8. owner = "fukamachi";
  9. repo = "event-emitter";
  10. rev = "cb0e15f9de4c617cef3f5d5a22a41e28f9613d0b";
  11. sha256 = "1i18xzfr6334db9dzj0lsl7wxw1r1l0ixvn883mjbyqw0czp21h6";
  12. };
  13. in buildLisp.library {
  14. name = "event-emitter";
  15. deps = [ (buildLisp.bundled "asdf") ];
  16. srcs = map (f: src + ("/" + f)) [
  17. "src/event-emitter.lisp"
  18. ];
  19. };
  20. metabang-bind = let
  21. src = depot.third_party.fetchFromGitHub {
  22. owner = "gwkkwg";
  23. repo = "metabang-bind";
  24. rev = "9ab6e64a30261df109549d21ee7940df87db66bb";
  25. sha256 = "0681lp2j084w3dx02ah1vm5pk83cp5k090anwdlrjaxd1j4kbpbr";
  26. };
  27. in buildLisp.library {
  28. name = "metabang-bind";
  29. deps = [];
  30. srcs = map (f: src + ("/dev/" + f)) [
  31. "packages.lisp"
  32. "macros.lisp"
  33. "bind.lisp"
  34. "binding-forms.lisp"
  35. ];
  36. };
  37. qbase64 = let
  38. src = depot.third_party.fetchFromGitHub {
  39. owner = "chaitanyagupta";
  40. repo = "qbase64";
  41. rev = "6374899aec189600e6b7b77c89009d0835154b93";
  42. sha256 = "1dir0s70ca3hagxv9x15zq4p4ajgl7jrcgqsza2n2y7iqbxh0dwi";
  43. };
  44. in buildLisp.library {
  45. name = "qbase64";
  46. deps = [ trivial-gray-streams metabang-bind ];
  47. srcs = map (f: src + ("/" + f)) [
  48. "package.lisp"
  49. "utils.lisp"
  50. "stream-utils.lisp"
  51. "qbase64.lisp"
  52. ];
  53. };
  54. com-google-base = let
  55. src = depot.third_party.fetchFromGitHub {
  56. owner = "brown";
  57. repo = "base";
  58. rev = "498fd7224748a1cceaa6127edcedab6e3563aa84";
  59. sha256 = "0af9gz2rnw4wbdgx3v6bpyfjn04700irdvcp0s41jdp8djpip8f7";
  60. };
  61. in buildLisp.library {
  62. name = "com.google.base";
  63. deps = [];
  64. srcs = map (f: src + ("/" + f)) [
  65. "package.lisp"
  66. "optimize.lisp"
  67. "syntax.lisp"
  68. "error.lisp"
  69. "type.lisp"
  70. "octet.lisp"
  71. "sequence.lisp"
  72. ];
  73. };
  74. protobuf-src = depot.third_party.fetchFromGitHub {
  75. owner = "brown";
  76. repo = "protobuf";
  77. rev = "f55c6f51848ff1f9d523fb293fbe99c076a34a95";
  78. sha256 = "1frm5s7wsi4nh1adc7qkph5r1cf24fgvbg0xvsyv7cmgg5r3bibi";
  79. };
  80. varint = buildLisp.library {
  81. name = "varint";
  82. deps = [ com-google-base nibbles ];
  83. srcs = map (f: protobuf-src + ("/varint/" + f)) [
  84. "package.lisp"
  85. "varint.lisp"
  86. ];
  87. };
  88. protobuf = buildLisp.library {
  89. name = "protobuf";
  90. deps = [ com-google-base varint ];
  91. srcs = map (f: protobuf-src + ("/" + f)) [
  92. "package.lisp"
  93. "protocol-buffer.lisp"
  94. "wire-format.lisp"
  95. ];
  96. };
  97. trivial-utf-8 = let
  98. src = builtins.fetchTarball {
  99. url = "https://gitlab.common-lisp.net/trivial-utf-8/trivial-utf-8/-/archive/4d427cfbb1c452436a0efb71c3205c9da67f718f/trivial-utf-8-4d427cfbb1c452436a0efb71c3205c9da67f718f.tar.gz";
  100. sha256 = "1jz27gz8gvqdmvp3k9bxschs6d5b3qgk94qp2bj6nv1d0jc3m1l1";
  101. };
  102. in buildLisp.library {
  103. name = "trivial-utf-8";
  104. deps = [ (buildLisp.bundled "asdf") ];
  105. srcs = map (f: src + ("/" + f)) [
  106. "trivial-utf-8.lisp"
  107. ];
  108. };
  109. salza2 = let
  110. src = builtins.fetchTarball {
  111. url = "https://www.xach.com/lisp/salza2.tgz";
  112. sha256 = "0p38rj4gq7j5k807php7hrz7l2zyyfshv8i9yms7i8lkgg3433ki";
  113. };
  114. in buildLisp.library {
  115. name = "salza2";
  116. deps = [];
  117. srcs = map (f: src + ("/" + f)) [
  118. "package.lisp"
  119. "reset.lisp"
  120. "specials.lisp"
  121. "types.lisp"
  122. "checksum.lisp"
  123. "adler32.lisp"
  124. "crc32.lisp"
  125. "chains.lisp"
  126. "bitstream.lisp"
  127. "matches.lisp"
  128. "compress.lisp"
  129. "huffman.lisp"
  130. "closures.lisp"
  131. "compressor.lisp"
  132. "utilities.lisp"
  133. "zlib.lisp"
  134. "gzip.lisp"
  135. "user.lisp"
  136. ];
  137. };
  138. zpng = let
  139. src = builtins.fetchTarball {
  140. url = "https://www.xach.com/lisp/zpng.tgz";
  141. sha256 = "0b3ag3jhl3z7kdls3ahdsdxsfhhw5qrizk769984f4wkxhb69rcm";
  142. };
  143. in buildLisp.library {
  144. name = "zpng";
  145. deps = [ salza2 ];
  146. srcs = map (f: src + ("/" + f)) [
  147. "package.lisp"
  148. "specials.lisp"
  149. "utils.lisp"
  150. "chunk.lisp"
  151. "conditions.lisp"
  152. "png.lisp"
  153. ];
  154. };
  155. zpb-exif = let
  156. src = builtins.fetchTarball {
  157. url = "https://www.xach.com/lisp/zpb-exif.tgz";
  158. sha256 = "15s227jhby55cisz14xafb0p1ws2jmrg2rrbbd00lrb97im84hy6";
  159. };
  160. in buildLisp.library {
  161. name = "zpb-exif";
  162. deps = [ salza2 ];
  163. srcs = map (f: src + ("/" + f)) [
  164. "exif.lisp"
  165. ];
  166. };
  167. skippy = let
  168. src = builtins.fetchTarball {
  169. url = "https://www.xach.com/lisp/skippy.tgz";
  170. sha256 = "1n8925qz19w00qc67z3hc97fpmfhi0r54dd50fzqm24vhyb7qwc2";
  171. };
  172. in buildLisp.library {
  173. name = "skippy";
  174. deps = [ salza2 ];
  175. srcs = map (f: src + ("/" + f)) [
  176. "package.lisp"
  177. "conditions.lisp"
  178. "types.lisp"
  179. "bitstream.lisp"
  180. "lzw.lisp"
  181. "color-table.lisp"
  182. "canvas.lisp"
  183. "data-stream.lisp"
  184. "image.lisp"
  185. "gif89a.lisp"
  186. "load-gif.lisp"
  187. ];
  188. };
  189. puri = let
  190. src = builtins.fetchTarball {
  191. url = "http://files.kpe.io/puri/puri-1.5.7.tar.gz";
  192. sha256 = "0bdjcjr2wmwxhv4sr20hh6dhakjdal5hiwzpmvbwzgl394byk100";
  193. };
  194. in buildLisp.library {
  195. name = "puri";
  196. deps = [];
  197. srcs = map (f: src + ("/" + f)) [
  198. "src.lisp"
  199. ];
  200. };
  201. cl-utilities = let
  202. src = builtins.fetchTarball {
  203. url = "https://common-lisp.net/project/cl-utilities/cl-utilities-latest.tar.gz";
  204. sha256 = "1dmbkdr8xm2jw5yx1makqbf1ypqbm0hpkd7zyknxv3cblvz0a87w";
  205. };
  206. in buildLisp.library {
  207. name = "cl-utilities";
  208. deps = [];
  209. srcs = map (f: src + ("/" + f)) [
  210. "package.lisp"
  211. "with-unique-names.lisp"
  212. "once-only.lisp"
  213. "compose.lisp"
  214. "split-sequence.lisp"
  215. "extremum.lisp"
  216. "read-delimited.lisp"
  217. "expt-mod.lisp"
  218. "collecting.lisp"
  219. "rotate-byte.lisp"
  220. "copy-array.lisp"
  221. ];
  222. };
  223. trivial-timers = let
  224. src = builtins.fetchTarball {
  225. url = "http://releases.unknownlamer.org/trivial-timers/trivial-timers_latest.tar.gz";
  226. sha256 = "0nxr0wb9n2jh6k3cj9ddx2hvgvr4bqb8k587cmj6pjsaa62344mb";
  227. };
  228. in buildLisp.library {
  229. name = "trivial-timers";
  230. deps = [];
  231. srcs = map (f: src + ("/" + f)) [
  232. "packages.lisp"
  233. "timers-sbcl.lisp"
  234. ];
  235. };
  236. quri = let
  237. src = depot.third_party.fetchFromGitHub {
  238. owner = "fukamachi";
  239. repo = "quri";
  240. rev = "b39ec54a07062334cfa37b31d14e39115921ffe0";
  241. sha256 = "1nw0m5fm84x9x8mx5pp6l2bhmpzmmgy4rwj3bkkg4qsp7h6a1ak7";
  242. };
  243. etld-nix = import ./nix/etld.nix { tld-names = src + "/data/effective_tld_names.dat"; };
  244. in buildLisp.library {
  245. name = "quri";
  246. deps = [ (buildLisp.bundled "sb-cltl2") (buildLisp.bundled "asdf") babel alexandria split-sequence cl-utilities ];
  247. srcs = map (f: src + ("/src/" + f)) [
  248. "../quri.asd"
  249. "port.lisp"
  250. "util.lisp"
  251. ] ++ [
  252. etld-nix
  253. ] ++ map (f: src + ("/src/" + f)) [
  254. "error.lisp"
  255. "encode.lisp"
  256. "decode.lisp"
  257. "parser.lisp"
  258. "uri.lisp"
  259. "uri/ftp.lisp"
  260. "uri/http.lisp"
  261. "uri/ldap.lisp"
  262. "uri/file.lisp"
  263. "domain.lisp"
  264. "quri.lisp"
  265. ];
  266. };
  267. trivial-mimes = let
  268. mime-types = ./nix/mime.types;
  269. mime-types-lisp = import ./nix/trivial-mimes.nix { mime-types = mime-types; };
  270. in buildLisp.library {
  271. name = "trivial-mimes";
  272. deps = [ (buildLisp.bundled "uiop") ];
  273. native = [];
  274. srcs = [ mime-types-lisp ];
  275. };
  276. cl-sqlite = let
  277. src = depot.third_party.fetchFromGitHub {
  278. owner = "TeMPOraL";
  279. repo = "cl-sqlite";
  280. rev = "be2fcc193f98e3d5bdc85958a806d612cc48740c";
  281. sha256 = "08iv7b4m0hh7qx2cvq4f510nrgdld0vicnvmqsh9w0fgrcgmyg4k";
  282. };
  283. in buildLisp.library {
  284. name = "cl-sqlite";
  285. deps = [ iterate cffi ];
  286. native = [ pkgs.sqlite ];
  287. srcs = map (f: src + ("/" + f)) [
  288. "sqlite-ffi.lisp"
  289. "cache.lisp"
  290. "sqlite.lisp"
  291. ];
  292. };
  293. fast-websocket = let
  294. src = depot.third_party.fetchFromGitHub {
  295. owner = "fukamachi";
  296. repo = "fast-websocket";
  297. rev = "7087d9cf4c3f7da4c68a275ad79eda853ac6f1b9";
  298. sha256 = "0hmp9mzz7svl0csh9n2954ddpcbngl87jfv32il2q8kkawiycij7";
  299. };
  300. in buildLisp.library {
  301. name = "fast-websocket";
  302. deps = [ fast-io trivial-utf-8 alexandria ];
  303. srcs = map (f: src + ("/src/" + f)) [
  304. "ws.lisp"
  305. "payload.lisp"
  306. "constants.lisp"
  307. "error.lisp"
  308. "compose.lisp"
  309. "parser.lisp"
  310. "fast-websocket.lisp"
  311. ];
  312. };
  313. fast-io = let
  314. src = depot.third_party.fetchFromGitHub {
  315. owner = "rpav";
  316. repo = "fast-io";
  317. rev = "603f4903dd74fb221859da7058ae6ca3853fe64b";
  318. sha256 = "00agvc0xx4w715i6ach05p995zpcpghn04xc06zyci06q677vw3n";
  319. };
  320. in buildLisp.library {
  321. name = "fast-io";
  322. deps = [ alexandria trivial-gray-streams ];
  323. srcs = map (f: src + ("/src/" + f)) [
  324. "package.lisp"
  325. "types.lisp"
  326. "io.lisp"
  327. "gray.lisp"
  328. ];
  329. };
  330. proc-parse = let
  331. src = depot.third_party.fetchFromGitHub {
  332. owner = "fukamachi";
  333. repo = "proc-parse";
  334. rev = "3afe2b76f42f481f44a0a495256f7abeb69cef27";
  335. sha256 = "07vbj26bfq4ywlcmamsqyac29rsdsa8lamjqx1ycla1bcvgmi4w2";
  336. };
  337. in buildLisp.library {
  338. name = "proc-parse";
  339. deps = [ alexandria babel (buildLisp.bundled "sb-cltl2") ];
  340. srcs = map (f: src + ("/src/" + f)) [
  341. "proc-parse.lisp"
  342. ];
  343. };
  344. xsubseq = let
  345. src = depot.third_party.fetchFromGitHub {
  346. owner = "fukamachi";
  347. repo = "xsubseq";
  348. rev = "5ce430b3da5cda3a73b9cf5cee4df2843034422b";
  349. sha256 = "1xz79q0p2mclf3sqjiwf6izdpb6xrsr350bv4mlmdlm6rg5r99px";
  350. };
  351. in buildLisp.library {
  352. name = "xsubseq";
  353. deps = [ (buildLisp.bundled "sb-cltl2") ];
  354. srcs = map (f: src + ("/src/" + f)) [
  355. "xsubseq.lisp"
  356. ];
  357. };
  358. uuid = let
  359. src = depot.third_party.fetchFromGitHub {
  360. owner = "dardoria";
  361. repo = "uuid";
  362. rev = "f0052f34a006ec995086aa3b2e42182a178fe228";
  363. sha256 = "1ncwhyw0zggwpkzjsw7d4pkrlldi34xvb69c0bzxmyz2krg8rpx0";
  364. };
  365. in buildLisp.library {
  366. name = "uuid";
  367. deps = [ ironclad trivial-utf-8 ];
  368. srcs = map (f: src + ("/" + f)) [
  369. "uuid.lisp"
  370. ];
  371. };
  372. smart-buffer = let
  373. src = depot.third_party.fetchFromGitHub {
  374. owner = "fukamachi";
  375. repo = "smart-buffer";
  376. rev = "09b9a9a0b3abaa37abe9a730f5aac2643dca4e62";
  377. sha256 = "0qz1zzxx0wm5ff7gpgsq550a59p0qj594zfmm2rglj97dahj54l7";
  378. };
  379. in buildLisp.library {
  380. name = "smart-buffer";
  381. deps = [ xsubseq flexi-streams (buildLisp.bundled "uiop") ];
  382. srcs = map (f: src + ("/src/" + f)) [
  383. "smart-buffer.lisp"
  384. ];
  385. };
  386. fast-http = let
  387. src = depot.third_party.fetchFromGitHub {
  388. owner = "fukamachi";
  389. repo = "fast-http";
  390. rev = "502a37715dcb8544cc8528b78143a942de662c5a";
  391. sha256 = "0al2g7g219jjljsf7b23pbilpgacxy5as5gs2nqf76b5qni396mi";
  392. };
  393. in buildLisp.library {
  394. name = "fast-http";
  395. deps = [ alexandria cl-utilities proc-parse babel xsubseq smart-buffer ];
  396. srcs = map (f: src + ("/src/" + f)) [
  397. "http.lisp"
  398. "byte-vector.lisp"
  399. "error.lisp"
  400. "util.lisp"
  401. "parser.lisp"
  402. "multipart-parser.lisp"
  403. "fast-http.lisp"
  404. ];
  405. };
  406. wsd-src = depot.third_party.fetchFromGitHub {
  407. owner = "eeeeeta";
  408. repo = "websocket-driver";
  409. rev = "03fdb0684c50fe77cf186d208c671bd9a1575985";
  410. sha256 = "06plrbk7sbz456hkxsd97ib7xvjp484d18l0r11pqjd1659smjb3";
  411. };
  412. wsd-base = buildLisp.library {
  413. name = "websocket-driver-base";
  414. deps = [ fast-websocket fast-io event-emitter ironclad cl-base64 split-sequence bordeaux-threads ];
  415. srcs = map (f: wsd-src + ("/src/" + f)) [
  416. "util.lisp"
  417. "ws/base.lisp"
  418. "driver.lisp"
  419. ];
  420. };
  421. wsd-client = buildLisp.library {
  422. name = "websocket-driver-client";
  423. deps = [ wsd-base usocket cl-plus-ssl fast-io fast-websocket cl-base64 trivial-utf-8 ironclad quri fast-http ];
  424. srcs = map (f: wsd-src + ("/src/" + f)) [
  425. "ws/client.lisp"
  426. "client.lisp"
  427. ];
  428. };
  429. closure-common = let
  430. src = depot.third_party.fetchFromGitHub {
  431. owner = "sharplispers";
  432. repo = "closure-common";
  433. rev = "e3c5f5f454b72b01b89115e581c3c52a7e201e5c";
  434. sha256 = "0k5r2qxn122pxi301ijir3nayi9sg4d7yiy276l36qmzwhp4mg5n";
  435. };
  436. enable-character-runes = pkgs.writeText "character-runes.lisp" "(push :rune-is-character *features*)";
  437. in buildLisp.library {
  438. name = "closure-common";
  439. deps = [ trivial-gray-streams babel ];
  440. srcs = [
  441. enable-character-runes
  442. ] ++ map (f: src + ("/" + f)) [
  443. "package.lisp"
  444. "definline.lisp"
  445. "characters.lisp"
  446. "syntax.lisp"
  447. "encodings.lisp"
  448. "encodings-data.lisp"
  449. "xstream.lisp"
  450. "ystream.lisp"
  451. "hax.lisp"
  452. ];
  453. };
  454. cxml = let
  455. src = depot.third_party.fetchFromGitHub {
  456. owner = "sharplispers";
  457. repo = "cxml";
  458. rev = "8701da08ba4aac30891b8d2005edb018c1d3d796";
  459. sha256 = "18fls3bx7vmnxfa6qara8fxp316d8kb3izar0kysvqg6l0a45a51";
  460. };
  461. in buildLisp.library {
  462. name = "cxml";
  463. deps = [ (buildLisp.bundled "asdf") closure-common puri trivial-gray-streams ];
  464. srcs = [
  465. (src + "/cxml.asd")
  466. ] ++ map (f: src + ("/xml/" + f)) [
  467. "package.lisp"
  468. "util.lisp"
  469. "sax-handler.lisp"
  470. "xml-name-rune-p.lisp"
  471. "split-sequence.lisp"
  472. "xml-parse.lisp"
  473. "unparse.lisp"
  474. "xmls-compat.lisp"
  475. "recoder.lisp"
  476. "xmlns-normalizer.lisp"
  477. "space-normalizer.lisp"
  478. # "catalog.lisp"
  479. "sax-proxy.lisp"
  480. "atdoc-configuration.lisp"
  481. ] ++ map (f: src + ("/dom/" + f)) [
  482. "package.lisp"
  483. "dom-impl.lisp"
  484. "dom-builder.lisp"
  485. "dom-sax.lisp"
  486. ] ++ map (f: src + ("/klacks/" + f)) [
  487. "package.lisp"
  488. "klacks.lisp"
  489. "klacks-impl.lisp"
  490. "tap-source.lisp"
  491. ];
  492. };
  493. cl-qrencode = let
  494. src = depot.third_party.fetchFromGitHub {
  495. owner = "jnjcc";
  496. repo = "cl-qrencode";
  497. rev = "0de2d8a3877b499a9a0bbb0a9e1247056ae4311e";
  498. sha256 = "1l5k131dchbf6cj8a8xqa731790p01p3qa1kdy2wa9dawy3ymkxr";
  499. };
  500. in buildLisp.library {
  501. name = "cl-qrencode";
  502. deps = [ zpng ];
  503. srcs = map (f: src + ("/" + f)) [
  504. "packages.lisp"
  505. "utils/util.lisp"
  506. "rs-ecc/galois.lisp"
  507. "rs-ecc/bch-ecc.lisp"
  508. "rs-ecc/rs-ecc.lisp"
  509. "qrencode/modes.lisp"
  510. "qrencode/qrspec.lisp"
  511. "qrencode/input.lisp"
  512. "qrencode/bstream.lisp"
  513. "qrencode/codeword.lisp"
  514. "qrencode/matrix.lisp"
  515. "qrencode/mask.lisp"
  516. "qrencode/encode.lisp"
  517. "image/png.lisp"
  518. ];
  519. };
  520. vom = let
  521. src = depot.third_party.fetchFromGitHub {
  522. owner = "orthecreedence";
  523. repo = "vom";
  524. rev = "1aeafeb5b74c53741b79497e0ef4acf85c92ff24";
  525. sha256 = "0536kppj76ax4lrxhv42npkfjsmx45km2g439vf9jmw3apinz9cy";
  526. };
  527. in buildLisp.library {
  528. name = "vom";
  529. deps = [];
  530. srcs = map (f: src + ("/" + f)) [
  531. "vom.lisp"
  532. ];
  533. };
  534. blackbird = let
  535. src = depot.third_party.fetchFromGitHub {
  536. owner = "orthecreedence";
  537. repo = "blackbird";
  538. rev = "d361f81c1411dec07f6c2dcb11c78f7aea9aaca8";
  539. sha256 = "0xfds5yaya64arzr7w1x38karyz11swzbhxx1afldpradj9dh19c";
  540. };
  541. in buildLisp.library {
  542. name = "blackbird";
  543. deps = [ vom ];
  544. srcs = map (f: src + ("/" + f)) [
  545. "package.lisp"
  546. "syntax.lisp"
  547. "promise.lisp"
  548. "util.lisp"
  549. ];
  550. };
  551. com-gigamonkeys-binary-data = let
  552. src = depot.third_party.fetchFromGitHub {
  553. owner = "gigamonkey";
  554. repo = "monkeylib-binary-data";
  555. rev = "22e908976d7f3e2318b7168909f911b4a00963ee";
  556. sha256 = "072v417vmcnvmyh8ddq9vmwwrizm7zwz9dpzi14qy9nsw8q649zw";
  557. };
  558. in buildLisp.library {
  559. name = "com.gigamonkeys.binary-data";
  560. deps = [ alexandria ];
  561. srcs = map (f: src + ("/" + f)) [
  562. "packages.lisp"
  563. "binary-data.lisp"
  564. "common-datatypes.lisp"
  565. ];
  566. };
  567. ieee-floats = let
  568. src = depot.third_party.fetchFromGitHub {
  569. owner = "marijnh";
  570. repo = "ieee-floats";
  571. rev = "566b51a005e81ff618554b9b2f0b795d3b29398d";
  572. sha256 = "1xyj49j9x3lc84cv3dhbf9ja34ywjk1c46dklx425fxw9mkwm83m";
  573. };
  574. in buildLisp.library {
  575. name = "ieee-floats";
  576. deps = [];
  577. srcs = map (f: src + ("/" + f)) [
  578. "ieee-floats.lisp"
  579. ];
  580. };
  581. cl-jpeg = let
  582. src = depot.third_party.fetchFromGitHub {
  583. owner = "sharplispers";
  584. repo = "cl-jpeg";
  585. rev = "ec557038128df6895fbfb743bfe8faf8ec2534af";
  586. sha256 = "1bkkiqz8fqldlj1wbmrccjsvxcwj98h6s4b6gslr3cg2wmdv5xmy";
  587. };
  588. in buildLisp.library {
  589. name = "cl-jpeg";
  590. deps = [];
  591. srcs = map (f: src + ("/" + f)) [
  592. "package.lisp"
  593. "jpeg.lisp"
  594. "io.lisp"
  595. ];
  596. };
  597. deflate = let
  598. src = depot.third_party.fetchFromGitHub {
  599. owner = "pmai";
  600. repo = "deflate";
  601. rev = "fb940e63b89a6c4d168153dbf046552e106eb8a5";
  602. sha256 = "1jpdjnxh6cw2d8hk70r2sxn92is52s9b855irvwkdd777fdciids";
  603. };
  604. in buildLisp.library {
  605. name = "deflate";
  606. deps = [];
  607. srcs = map (f: src + ("/" + f)) [
  608. "deflate.lisp"
  609. ];
  610. };
  611. trivial-features = let
  612. src = depot.third_party.fetchFromGitHub {
  613. owner = "trivial-features";
  614. repo = "trivial-features";
  615. rev = "e7bb968d1e0b00aaf06e0671a866a81dbfe99bee";
  616. sha256 = "1iczrsl561fz9f71dzals16749fccznm4jn8nmxnqas1qk7b331k";
  617. };
  618. in buildLisp.library {
  619. name = "trivial-features";
  620. deps = [];
  621. srcs = map (f: src + ("/src/" + f)) [
  622. "tf-sbcl.lisp"
  623. ];
  624. };
  625. opticl-core = let
  626. src = depot.third_party.fetchFromGitHub {
  627. owner = "slyrus";
  628. repo = "opticl-core";
  629. rev = "b7cd13d26df6b824b216fbc360dc27bfadf04999";
  630. sha256 = "0458bllabcdjghfrqx6aki49c9qmvfmkk8jl75cfpi7q0i12kh95";
  631. };
  632. in buildLisp.library {
  633. name = "opticl-core";
  634. deps = [ alexandria ];
  635. srcs = map (f: src + ("/" + f)) [
  636. "package.lisp"
  637. "opticl-core.lisp"
  638. ];
  639. };
  640. retrospectiff = let
  641. src = depot.third_party.fetchFromGitHub {
  642. owner = "slyrus";
  643. repo = "retrospectiff";
  644. rev = "c2a69d77d5010f8cdd9045b3e36a08a73da5d321";
  645. sha256 = "0qsn9hpd8j2kp43dk05j8dczz9zppdff5rrclbp45n3ksk9inw8i";
  646. };
  647. in buildLisp.library {
  648. name = "retrospectiff";
  649. deps = [ com-gigamonkeys-binary-data flexi-streams ieee-floats cl-jpeg deflate opticl-core ];
  650. srcs = map (f: src + ("/" + f)) [
  651. "package.lisp"
  652. "constants.lisp"
  653. "globals.lisp"
  654. "util.lisp"
  655. "bit-array.lisp"
  656. "lzw.lisp"
  657. "jpeg.lisp"
  658. "deflate.lisp"
  659. "packbits.lisp"
  660. "compression.lisp"
  661. "binary-types.lisp"
  662. "ifd.lisp"
  663. "tiff-image.lisp"
  664. "retrospectiff.lisp"
  665. "retrospectiff2.lisp"
  666. ];
  667. };
  668. cl-tga = let
  669. src = depot.third_party.fetchFromGitHub {
  670. owner = "fisxoj";
  671. repo = "cl-tga";
  672. rev = "4dc2f7b8a259b9360862306640a07a23d4afaacc";
  673. sha256 = "03k3npmn0xd3fd2m7vwxph82av2xrfb150imqrinlzqmzvz1v1br";
  674. };
  675. in buildLisp.library {
  676. name = "cl-tga";
  677. deps = [];
  678. srcs = map (f: src + ("/" + f)) [
  679. "package.lisp"
  680. "cl-tga.lisp"
  681. ];
  682. };
  683. mmap = let
  684. src = depot.third_party.fetchFromGitHub {
  685. owner = "Shinmera";
  686. repo = "mmap";
  687. rev = "ba2e98c67e25f0fb8ff838238561120a23903ce7";
  688. sha256 = "0qd0xp20i1pcfn12kkapv9pirb6hd4ns7kz4zf1mmjwykpsln96q";
  689. };
  690. in buildLisp.library {
  691. name = "mmap";
  692. deps = [ cffi ];
  693. srcs = map (f: src + ("/" + f)) [
  694. "package.lisp"
  695. "generic.lisp"
  696. "posix.lisp"
  697. ];
  698. };
  699. static-vectors = let
  700. src = depot.third_party.fetchFromGitHub {
  701. owner = "sionescu";
  702. repo = "static-vectors";
  703. rev = "67f2ed0da2244f3c2a69d3440eddcc14a3ad33f0";
  704. sha256 = "0prdwkyggr9wqwr7blhrb3hprsvbcgwn7144f7v4iy7i8621d8pq";
  705. };
  706. in buildLisp.library {
  707. name = "static-vectors";
  708. deps = [ alexandria cffi ];
  709. srcs = map (f: src + ("/src/" + f)) [
  710. "pkgdcl.lisp"
  711. "constantp.lisp"
  712. "impl-sbcl.lisp"
  713. "constructor.lisp"
  714. "cffi-type-translator.lisp"
  715. ];
  716. };
  717. swap-bytes = let
  718. src = depot.third_party.fetchFromGitHub {
  719. owner = "sionescu";
  720. repo = "swap-bytes";
  721. rev = "253ab928b91b8a1c3cea0434e87b8da5ce3c6014";
  722. sha256 = "1rs1166rabdlws4pyvsrwl32x476dh2yw15p56097mp8ixmcb0ap";
  723. };
  724. in buildLisp.library {
  725. name = "swap-bytes";
  726. deps = [ trivial-features ];
  727. srcs = map (f: src + ("/" + f)) [
  728. "package.lisp"
  729. "sbcl-defknowns.lisp"
  730. "sbcl-vops.lisp"
  731. "sbcl.lisp"
  732. "network.lisp"
  733. "endianness.lisp"
  734. ];
  735. };
  736. threebz = let
  737. src = depot.third_party.fetchFromGitHub {
  738. owner = "3b";
  739. repo = "3bz";
  740. rev = "d6119083b5e0b0a6dd3abc2877936c51f3f3deed";
  741. sha256 = "0fyxzyf2b6sc0w8d9g4nlva861565z6f3xszj0lw29x526dd9rhj";
  742. };
  743. in buildLisp.library {
  744. name = "3bz";
  745. deps = [ alexandria cffi mmap trivial-features nibbles babel ];
  746. srcs = map (f: src + ("/" + f)) [
  747. "package.lisp"
  748. "tuning.lisp"
  749. "util.lisp"
  750. "constants.lisp"
  751. "types.lisp"
  752. "huffman-tree.lisp"
  753. "ht-constants.lisp"
  754. "io-common.lisp"
  755. "io-mmap.lisp"
  756. "io.lisp"
  757. "deflate.lisp"
  758. "checksums.lisp"
  759. "zlib.lisp"
  760. "gzip.lisp"
  761. "api.lisp"
  762. ];
  763. };
  764. pngload = let
  765. src = depot.third_party.fetchFromGitHub {
  766. owner = "bufferswap";
  767. repo = "pngload";
  768. rev = "b2e56733dd5d86a56b20c665676b86e566b4e223";
  769. sha256 = "15dkm3ba7byxk8qs6d3xnd58ybvjl6cjz75392z5fq5cqygbgfq5";
  770. };
  771. in buildLisp.library {
  772. name = "pngload";
  773. deps = [ threebz alexandria cffi mmap parse-float static-vectors swap-bytes (buildLisp.bundled "uiop") zpb-exif ];
  774. srcs = map (f: src + ("/src/" + f)) [
  775. "package.lisp"
  776. "common.lisp" # aha!
  777. "source.lisp"
  778. "source-ffi.lisp"
  779. "properties.lisp"
  780. "chunk.lisp"
  781. "chunk-types.lisp"
  782. "conditions.lisp"
  783. "datastream.lisp"
  784. "deinterlace.lisp"
  785. "decode.lisp"
  786. "metadata.lisp"
  787. "png.lisp"
  788. "png-mmap.lisp"
  789. ];
  790. };
  791. opticl = let
  792. src = depot.third_party.fetchFromGitHub {
  793. owner = "slyrus";
  794. repo = "opticl";
  795. rev = "438881ae779fa4b113308a3c5c96783fd9618e02";
  796. sha256 = "13sv7n1ry8yp3fawvpf3y3kf7abbqxqmk8zpx349k3wh063i7l1l";
  797. };
  798. in buildLisp.library {
  799. name = "opticl";
  800. deps = [ alexandria retrospectiff zpng pngload cl-jpeg skippy opticl-core cl-tga ];
  801. srcs = map (f: src + ("/" + f)) [
  802. "package.lisp"
  803. "coerce.lisp"
  804. # "colors.lisp"
  805. "imageops.lisp"
  806. "invert.lisp"
  807. "transform.lisp"
  808. "convolve.lisp"
  809. "morphology.lisp"
  810. "gamma.lisp"
  811. "shapes.lisp"
  812. "tiff.lisp"
  813. "jpeg.lisp"
  814. "png.lisp"
  815. "pngload.lisp"
  816. "pnm.lisp"
  817. "gif.lisp"
  818. "tga.lisp"
  819. "io.lisp"
  820. "cluster.lisp"
  821. "thresholding.lisp"
  822. ];
  823. };
  824. nibbles = let
  825. src = depot.third_party.fetchFromGitHub {
  826. owner = "sharplispers";
  827. repo = "nibbles";
  828. rev = "2b99f103f84f0a6dcbc8212f7763d6b08b13e3fa";
  829. sha256 = "06ckb4hjl4kca9dwldqrz6gxmfic47makahq3p3ysv71zncr9zgm";
  830. };
  831. in buildLisp.library {
  832. name = "nibbles";
  833. deps = [ trivial-gray-streams metabang-bind ];
  834. srcs = map (f: src + ("/" + f)) [
  835. "package.lisp"
  836. "types.lisp"
  837. "macro-utils.lisp"
  838. "vectors.lisp"
  839. "streams.lisp"
  840. "sbcl-opt/fndb.lisp"
  841. "sbcl-opt/nib-tran.lisp"
  842. "sbcl-opt/x86-vm.lisp"
  843. "sbcl-opt/x86-64-vm.lisp"
  844. ];
  845. };
  846. ironclad = let
  847. src = depot.third_party.fetchFromGitHub {
  848. owner = "sharplispers";
  849. repo = "ironclad";
  850. rev = "c3aa33080621abc10fdb0f34acc4655cc4e982a6";
  851. sha256 = "0k4bib9mbrzalbl9ivkw4a7g4c7bbad1l5jw4pzkifqszy2swkr5";
  852. };
  853. in buildLisp.library {
  854. name = "ironclad";
  855. deps = [ (buildLisp.bundled "sb-posix") (buildLisp.bundled "sb-rotate-byte") bordeaux-threads ];
  856. srcs = map (f: src + ("/src/" + f)) [
  857. "package.lisp"
  858. "macro-utils.lisp"
  859. "generic.lisp"
  860. "conditions.lisp"
  861. "util.lisp"
  862. ] ++ map (f: src + ("/src/prng/" + f)) [
  863. "prng.lisp"
  864. "generator.lisp"
  865. "os-prng.lisp"
  866. "fortuna.lisp"
  867. ] ++ map (f: src + ("/src/opt/" + f)) [
  868. "sbcl/fndb.lisp"
  869. "sbcl/x86oid-vm.lisp"
  870. "sbcl/cpu-features.lisp"
  871. ] ++ map (f: src + ("/src/" + f)) [
  872. "common.lisp" # aha!
  873. ] ++ map (f: src + ("/src/ciphers/" + f)) [
  874. "cipher.lisp"
  875. "padding.lisp"
  876. "modes.lisp"
  877. "salsa20.lisp"
  878. "aes.lisp"
  879. "arcfour.lisp"
  880. "aria.lisp"
  881. "blowfish.lisp"
  882. "camellia.lisp"
  883. "cast5.lisp"
  884. "chacha.lisp"
  885. "des.lisp"
  886. "idea.lisp"
  887. "keystream.lisp"
  888. "kalyna.lisp"
  889. "kuznyechik.lisp"
  890. "make-cipher.lisp"
  891. "misty1.lisp"
  892. "rc2.lisp"
  893. "rc5.lisp"
  894. "rc6.lisp"
  895. "seed.lisp"
  896. "serpent.lisp"
  897. "sm4.lisp"
  898. "sosemanuk.lisp"
  899. "square.lisp"
  900. "tea.lisp"
  901. "threefish.lisp"
  902. "twofish.lisp"
  903. "xchacha.lisp"
  904. "xor.lisp"
  905. "xsalsa20.lisp"
  906. "xtea.lisp"
  907. ] ++ map (f: src + ("/src/digests/" + f)) [
  908. "digest.lisp"
  909. "adler32.lisp"
  910. "blake2.lisp"
  911. "blake2s.lisp"
  912. "crc24.lisp"
  913. "crc32.lisp"
  914. "groestl.lisp"
  915. "jh.lisp"
  916. "kupyna.lisp"
  917. "md2.lisp"
  918. "md4.lisp"
  919. "md5.lisp"
  920. "md5-lispworks-int32.lisp"
  921. "ripemd-128.lisp"
  922. "ripemd-160.lisp"
  923. "sha1.lisp"
  924. "sha256.lisp"
  925. "sha3.lisp"
  926. "sha512.lisp"
  927. "skein.lisp"
  928. "sm3.lisp"
  929. "streebog.lisp"
  930. "tiger.lisp"
  931. "tree-hash.lisp"
  932. "whirlpool.lisp"
  933. ] ++ map (f: src + ("/src/public-key/" + f)) [
  934. "public-key.lisp"
  935. "curve25519.lisp"
  936. "curve448.lisp"
  937. "dsa.lisp"
  938. "ed25519.lisp"
  939. "ed448.lisp"
  940. "elgamal.lisp"
  941. "pkcs1.lisp"
  942. "rsa.lisp"
  943. ] ++ map (f: src + ("/src/macs/" + f)) [
  944. "mac.lisp"
  945. "blake2-mac.lisp"
  946. "blake2s-mac.lisp"
  947. "cmac.lisp"
  948. "hmac.lisp"
  949. "gmac.lisp"
  950. "poly1305.lisp"
  951. "siphash.lisp"
  952. "skein-mac.lisp"
  953. ] ++ map (f: src + ("/src/kdf/" + f)) [
  954. "kdf-common.lisp"
  955. "hmac.lisp"
  956. "pkcs5.lisp"
  957. "argon2.lisp"
  958. "password-hash.lisp"
  959. "scrypt.lisp"
  960. ] ++ map (f: src + ("/src/aead/" + f)) [
  961. "aead.lisp"
  962. "eax.lisp"
  963. "etm.lisp"
  964. "gcm.lisp"
  965. ] ++ map (f: src + ("/src/" + f)) [
  966. "math.lisp"
  967. "octet-stream.lisp"
  968. ];
  969. };
  970. };
  971. whatscl = import ../whatscl { lispPkgs = lispPkgs; };
  972. in
  973. with lispPkgs;
  974. buildLisp.program {
  975. name = "whatsxmpp";
  976. deps = [ whatscl blackbird cxml uuid cl-sqlite trivial-mimes drakma cl-qrencode trivial-backtrace opticl ];
  977. srcs = map (f: ./. + ("/" + f)) [
  978. "packages.lisp"
  979. "utils.lisp"
  980. "namespaces.lisp"
  981. "component.lisp"
  982. "xmpp.lisp"
  983. "xep-0030.lisp"
  984. "xep-0363.lisp"
  985. "xep-0115.lisp"
  986. "xep-0313.lisp"
  987. "sqlite.lisp"
  988. "db.lisp"
  989. "media.lisp"
  990. "message.lisp"
  991. "stuff.lisp"
  992. ];
  993. main = "whatsxmpp::main";
  994. }