Merge remote-tracking branch 'ni/master'

This commit is contained in:
lassulus 2021-11-30 23:09:27 +01:00
commit b79f5ab97d
11 changed files with 116 additions and 9 deletions

View File

@ -80,9 +80,9 @@ let
description = '' description = ''
The zone configuration head which is being used to create the The zone configuration head which is being used to create the
zone files. The string for each key is pre-pended to the zone file. zone files. The string for each key is pre-pended to the zone file.
''; '';
# TODO: configure the default somewhere else, # TODO: configure the default somewhere else,
# maybe use krebs.dns.providers # maybe use krebs.dns.providers
default = { default = {
# github.io -> 192.30.252.154 # github.io -> 192.30.252.154
@ -96,7 +96,7 @@ let
IN A 185.199.110.153 IN A 185.199.110.153
IN A 185.199.111.153 IN A 185.199.111.153
''; '';
}; };
}; };
}; };

View File

@ -151,6 +151,7 @@ in {
"makanek.kmein.r" "makanek.kmein.r"
"grafana.kmein.r" "grafana.kmein.r"
"names.kmein.r" "names.kmein.r"
"graph.r"
]; ];
tinc.pubkey = '' tinc.pubkey = ''
-----BEGIN RSA PUBLIC KEY----- -----BEGIN RSA PUBLIC KEY-----

View File

@ -221,7 +221,7 @@ in {
"cgit.gum.r" "cgit.gum.r"
"dcpp.gum.r" "dcpp.gum.r"
"dcpp.nextgum.r" "dcpp.nextgum.r"
"graph.r" "graph.makefu.r"
"logs.makefu.r" "logs.makefu.r"
"netdata.makefu.r" "netdata.makefu.r"
"nextgum.r" "nextgum.r"

View File

@ -0,0 +1,34 @@
{ mkDerivation, attoparsec, base, base64-bytestring, bytestring
, case-insensitive, concise, deepseq, fetchgit, hedgehog, lens, lib
, QuickCheck, quickcheck-instances, semigroupoids, semigroups
, stringsearch, tasty, tasty-golden, tasty-hedgehog, tasty-hunit
, tasty-quickcheck, text, time
}:
mkDerivation {
pname = "purebred-email";
version = "0.4.3";
src = fetchgit {
url = "https://github.com/purebred-mua/purebred-email";
sha256 = "06xhccavrdzfsvg65mzdnp0a7b1ilk2rqpnyvkr171ir6mqdpb19";
rev = "769b360643f699c0a8cd6f1c3a3de36cf0479834";
fetchSubmodules = true;
};
patches = [
./untweak-mime-version-header.patch
];
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = [
attoparsec base base64-bytestring bytestring case-insensitive
concise deepseq lens semigroupoids semigroups stringsearch text
time
];
testHaskellDepends = [
attoparsec base bytestring case-insensitive hedgehog lens
QuickCheck quickcheck-instances semigroups tasty tasty-golden
tasty-hedgehog tasty-hunit tasty-quickcheck text time
];
homepage = "https://github.com/purebred-mua/purebred-email";
description = "types and parser for email messages (including MIME)";
license = lib.licenses.agpl3Plus;
}

View File

@ -0,0 +1,65 @@
diff --git a/src/Data/MIME.hs b/src/Data/MIME.hs
index 19af53e..be8cbd4 100644
--- a/src/Data/MIME.hs
+++ b/src/Data/MIME.hs
@@ -810,7 +810,6 @@ multipart takeTillEnd boundary =
-- | Sets the @MIME-Version: 1.0@ header.
--
instance RenderMessage MIME where
- tweakHeaders = set (headers . at "MIME-Version") (Just "1.0")
buildBody h z = Just $ case z of
Part partbody -> Builder.byteString partbody
Encapsulated msg -> buildMessage msg
diff --git a/tests/Generator.hs b/tests/Generator.hs
index 9e1f166..23bd122 100644
--- a/tests/Generator.hs
+++ b/tests/Generator.hs
@@ -64,7 +64,7 @@ exampleMailsParseSuccessfully =
textPlain7bit :: MIMEMessage
textPlain7bit =
let m = createTextPlainMessage "This is a simple mail."
- in over headers (\(Headers xs) -> Headers $ (CI.mk "Subject", "Hello there") : xs) m
+ in over headers (\(Headers xs) -> Headers $ (CI.mk "MIME-Version", "1.0") : (CI.mk "Subject", "Hello there") : xs) m
multiPartMail :: MIMEMessage
multiPartMail =
@@ -72,13 +72,16 @@ multiPartMail =
to' = Single $ Mailbox Nothing (AddrSpec "bar" (DomainDotAtom $ pure "bar.com"))
subject = "Hello there"
p = createTextPlainMessage "This is a simple mail."
+ & set (headers . at "MIME-Version") (Just "1.0")
a = createAttachment
contentTypeApplicationOctetStream
(Just "foo.bin")
"fileContentsASDF"
+ & set (headers . at "MIME-Version") (Just "1.0")
now = UTCTime (ModifiedJulianDay 123) (secondsToDiffTime 123)
in createMultipartMixedMessage "asdf" (fromList [p, a])
- & set (headers . at "From") (Just $ renderMailboxes [from'])
+ & set (headers . at "MIME-Version") (Just "1.0")
+ . set (headers . at "From") (Just $ renderMailboxes [from'])
. set (headers . at "To") (Just $ renderAddresses [to'])
. set (headers . at "Date") (Just $ renderRFC5422Date now)
. set (headers . at "Subject") (Just $ T.encodeUtf8 subject)
diff --git a/tests/Message.hs b/tests/Message.hs
index 6711519..3e40397 100644
--- a/tests/Message.hs
+++ b/tests/Message.hs
@@ -29,7 +29,7 @@ import Data.Char (isPrint)
import Data.Foldable (fold)
import Data.List.NonEmpty (NonEmpty(..), intersperse)
-import Control.Lens (set, view)
+import Control.Lens ((&), at, set, view)
import qualified Data.ByteString as B
import qualified Data.Text as T
@@ -99,7 +99,7 @@ genMessage = Gen.choice [ genTextPlain, genMultipart, encapsulate <$> genMessage
prop_messageRoundTrip :: Property
prop_messageRoundTrip = property $ do
msg <- forAll genMessage
- parse (message mime) (renderMessage msg) === Right msg
+ parse (message mime) (renderMessage $ msg & set (headers . at "MIME-Version") (Just "1.0")) === Right msg
prop_messageFromRoundTrip :: Property
prop_messageFromRoundTrip = property $ do

View File

@ -18,7 +18,7 @@ in {
} }
''; '';
serverAliases = [ serverAliases = [
"graph.r" "graph.makefu.r"
"graph.${hn}" "graph.${hn}.r" "graph.${hn}" "graph.${hn}.r"
]; ];
}; };

@ -1 +1 @@
Subproject commit 05f0d3b5c1d38fbbd53142362a7821cc8bc1150a Subproject commit 13ae434b140035e7e2664bd5a8ef4c475413b2e0

View File

@ -33,5 +33,11 @@ with import <stockholm/lib>;
}; };
networking.wireless.enable = true; networking.wireless.enable = true;
networking.wireless.interfaces = [
"wlp3s0"
];
networking.interfaces.enp4s0f2.useDHCP = true;
networking.interfaces.wlp3s0.useDHCP = true;
networking.useDHCP = false;
} }

View File

@ -1,8 +1,6 @@
with import <stockholm/lib>; with import <stockholm/lib>;
{ config, pkgs, ... }: { { config, pkgs, ... }: {
boot.kernelPackages = mkDefault pkgs.linuxPackages_latest;
boot.tmpOnTmpfs = true; boot.tmpOnTmpfs = true;
krebs.enable = true; krebs.enable = true;

View File

@ -65,6 +65,9 @@ let {
public-repos = mapAttrs make-public-repo ({ public-repos = mapAttrs make-public-repo ({
} // mapAttrs (_: recursiveUpdate { cgit.section = "1. miscellaneous"; }) { } // mapAttrs (_: recursiveUpdate { cgit.section = "1. miscellaneous"; }) {
couchfs = {
cgit.desc = "filesystem (in userspace) on top of CouchDB";
};
crx = { crx = {
cgit.desc = "utilities for working with Chrome extensions"; cgit.desc = "utilities for working with Chrome extensions";
}; };