tvl-depot/third_party/lisp/mime4cl/default.nix
sterni 1139109063 refactor(3p/lisp/mime4cl): replace babel with flexi-streams
decode-RFC2047 used babel's octets-to-string, but we can replace it with
the function of the same name from flexi-streams. This doesn't make a
difference for the moment, but will be useful in the future:
flexi-streams provides de- and encoding streams that we'll be able to
use to replace and augment some of the stream based MIME part handling
code in mime4cl. babel doesn't have as powerful stream functionality
although it seems to be planned.

Another big upside of flexi-streams is that we'll be able to replace
delimited-input-string using it. This should allow us to slowly work
towards correct and more efficient decoding of MIME bodies.

Change-Id: I17174f1c96c5be7d103d396564e6aa0fe24c80fc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8371
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2023-03-30 16:11:54 +00:00

51 lines
1.1 KiB
Nix

# Copyright (C) 2021 by the TVL Authors
# SPDX-License-Identifier: LGPL-2.1-or-later
{ depot, pkgs, ... }:
depot.nix.buildLisp.library {
name = "mime4cl";
deps = [
depot.third_party.lisp.flexi-streams
depot.third_party.lisp.npg
depot.third_party.lisp.trivial-gray-streams
];
srcs = [
./ex-sclf.lisp
./package.lisp
./endec.lisp
./streams.lisp
./mime.lisp
./address.lisp
];
tests = {
name = "mime4cl-tests";
srcs = [
./test/rt.lisp
./test/package.lisp
(pkgs.writeText "nix-samples.lisp" ''
(in-package :mime4cl-tests)
;; missing from the tarball completely
(defvar *samples-directory* (pathname "/this/does/not/exist"))
;; override auto discovery which doesn't work in store
(defvar *sample1-file* (pathname "${./test/sample1.msg}"))
'')
./test/temp-file.lisp
./test/endec.lisp
./test/address.lisp
./test/mime.lisp
];
expression = "(rtest:do-tests)";
};
# limited by sclf
brokenOn = [
"ccl"
"ecl"
];
}