diff options
25 files changed, 195 insertions, 103 deletions
@@ -1,3 +1,29 @@ +debug-me (1.20221231) unstable; urgency=medium + + * Support ghc 9.2. + Thanks, Tony Zorman + + -- Joey Hess <id@joeyh.name> Sat, 31 Dec 2022 14:23:22 -0400 + +debug-me (1.20220324) unstable; urgency=medium + + * Support ghc 8.8. + Thanks, Tony Zorman + * Support aeson 2.0. + Thanks, Tony Zorman + * Update to lts-19.0. + + -- Joey Hess <id@joeyh.name> Thu, 24 Mar 2022 11:39:51 -0400 + +debug-me (1.20200820) unstable; urgency=medium + + * debug-me.service: Remove /etc from InaccessiblePaths, + as that prevents the server sending email using eg postfix, + which needs to read its config files. + * Update to lts-14.27, support websockets 0.12.7. + + -- Joey Hess <id@joeyh.name> Thu, 20 Aug 2020 14:04:40 -0400 + debug-me (1.20190926) unstable; urgency=medium * Avoid a crash when run without a controlling tty, which may happen @@ -3,6 +3,7 @@ - Licensed under the GNU AGPL version 3 or higher. -} +{-# LANGUAGE CPP #-} {-# LANGUAGE DeriveGeneric #-} -- | Gpg web of trust checking, using wotsap's JSON output @@ -15,8 +16,13 @@ import JSON import Network.HTTP.Client import Network.HTTP.Client.TLS import Data.List -import qualified Data.HashMap.Strict as M import qualified Data.Text as T +#if MIN_VERSION_aeson(2, 0, 0) +import qualified Data.Aeson.KeyMap as AM +import qualified Data.Aeson.Key as AK +#else +import qualified Data.HashMap.Strict as M +#endif data WotStats = WotStats { key :: Node @@ -43,9 +49,14 @@ data Node = Node -- | wotsap's json has some upper-case fields; lowercase field for parsing jsonLower :: Value -> Value +#if MIN_VERSION_aeson(2, 0, 0) +jsonLower (Object o) = Object . AM.mapKeyVal lowerKey id $ o + where lowerKey = AK.fromText . T.toLower . AK.toText +#else jsonLower (Object o) = Object . M.fromList . map lowerPair . M.toList $ o where lowerPair (k, v) = (T.toLower k, v) +#endif jsonLower x = x instance FromJSON WotStats where @@ -16,7 +16,6 @@ import Log import Network.Wai import Network.Wai.Handler.Warp import Network.Wai.Handler.WebSockets -import Network.WebSockets hiding (Message, serverPort) import qualified Network.WebSockets as WS import Network.HTTP.Types import Control.Concurrent @@ -124,7 +123,7 @@ websocketApp :: ServerOpts -> TVar ServerState -> WS.ServerApp websocketApp o ssv pending_conn = do conn <- WS.acceptRequest pending_conn _v <- negotiateWireVersion conn - r <- receiveData conn + r <- WS.receiveData conn case r of SelectMode ClientSends (InitMode email) -> user email o ssv conn SelectMode ClientSends (ConnectMode t) -> @@ -136,7 +135,7 @@ websocketApp o ssv pending_conn = do user :: EmailAddress -> ServerOpts -> TVar ServerState -> WS.Connection -> IO () user email o ssv conn = do sid <- withSessionID (serverDirectory o) $ \(loghv, sid) -> do - sendBinaryData conn (Ready ServerSends sid) + WS.sendBinaryData conn (Ready ServerSends sid) bracket (setup sid loghv) (cleanup sid) go return sid doneSessionLog email o sid @@ -173,7 +172,7 @@ user email o ssv conn = do case v of Just (Broadcast l _from) -> case loggedMessage l of Developer m -> do - sendBinaryData conn (AnyMessage (Developer m)) + WS.sendBinaryData conn (AnyMessage (Developer m)) relaytouser userchan User _ -> relaytouser userchan Nothing -> return () @@ -188,12 +187,12 @@ developer o ssv sid conn = bracket setup cleanup go sessionLogFile (serverDirectory o) sid if exists then do - sendBinaryData conn (Ready ServerSends sid) + WS.sendBinaryData conn (Ready ServerSends sid) replayBacklog o sid conn - sendBinaryData conn Done + WS.sendBinaryData conn Done else protocolError conn "Unknown session ID" go (Just session) = do - sendBinaryData conn (Ready ServerSends sid) + WS.sendBinaryData conn (Ready ServerSends sid) devchan <- replayBacklogAndListen o sid session conn mytid <- mkWeakThreadId =<< myThreadId _ <- relayfromdeveloper mytid session @@ -216,7 +215,7 @@ developer o ssv sid conn = bracket setup cleanup go v <- atomically $ readTMChan devchan case v of Just (Broadcast l from) -> do - let sendit = sendBinaryData conn + let sendit = WS.sendBinaryData conn (AnyMessage $ loggedMessage l) case loggedMessage l of User _ -> sendit @@ -231,7 +230,7 @@ developer o ssv sid conn = bracket setup cleanup go else sendit relaytodeveloper mytid devchan Nothing -> do - sendBinaryData conn Done + WS.sendBinaryData conn Done return () -- | Replay the log of what's happened in the session so far, @@ -253,7 +252,7 @@ replayBacklog :: ServerOpts -> SessionID -> WS.Connection -> IO () replayBacklog o sid conn = do ls <- streamLog (sessionLogFile (serverDirectory o) sid) forM_ ls $ \l -> case loggedMessage <$> l of - Right m -> sendBinaryData conn (AnyMessage m) + Right m -> WS.sendBinaryData conn (AnyMessage m) Left _ -> return () doneSessionLog :: EmailAddress -> ServerOpts -> SessionID -> IO () @@ -9,8 +9,8 @@ module Val where import Memory import JSON +import qualified GHC.Generics as G -import GHC.Generics (Generic) import Data.Aeson.Types import qualified Codec.Binary.Base64 as B64 import qualified Data.Text as T @@ -20,7 +20,7 @@ import qualified Data.Semigroup as Sem -- | Newtype of ByteString so we can have JSON instances without orphans. newtype Val = Val { val :: B.ByteString } - deriving (Show, Generic, Eq, Sem.Semigroup, Monoid) + deriving (Show, G.Generic, Eq, Sem.Semigroup, Monoid) instance DataSize Val where dataSize (Val b) = fromIntegral (B.length b) diff --git a/WebSockets.hs b/WebSockets.hs index 7a53c8c..8aec057 100644 --- a/WebSockets.hs +++ b/WebSockets.hs @@ -164,16 +164,16 @@ clientApp -> (AnyMessage -> Maybe received) -> (TMChan sent -> TMChan (MissingHashes received) -> SessionID -> IO a) -> ClientApp a -clientApp mode mksent filterreceived a conn = do +clientApp mode mksent filterreceived a conn = -- Ping every 30 seconds to avoid timeouts caused by proxies etc. - forkPingThread conn 30 - _v <- negotiateWireVersion conn - sendBinaryData conn (SelectMode ClientSends mode) - r <- receiveData conn - case r of - Ready ServerSends sid -> bracket setup cleanup (go sid) - WireProtocolError e -> error e - _ -> protocolError conn "Did not get expected Ready message from server" + withPingThread conn 30 (return ()) $ do + _v <- negotiateWireVersion conn + sendBinaryData conn (SelectMode ClientSends mode) + r <- receiveData conn + case r of + Ready ServerSends sid -> bracket setup cleanup (go sid) + WireProtocolError e -> error e + _ -> protocolError conn "Did not get expected Ready message from server" where setup = do schan <- newTMChanIO diff --git a/debian/changelog b/debian/changelog index a75ace6..2c08b91 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,11 +1,38 @@ -debug-me (1.20190926-2) UNRELEASED; urgency=medium +debug-me (1.20221231-2) unstable; urgency=medium + + * Disable link time optimisation on ppc64el (Closes: #1052313). + Thanks to Heinrich Schuchardt for the patch. + * Bump Aeson dependency bounds to allow 2.1 (Closes: #1054930). + + -- Sean Whitton <spwhitton@spwhitton.name> Fri, 03 Nov 2023 10:21:15 +0000 + +debug-me (1.20221231-1) unstable; urgency=medium + + * New upstream release. + + -- Sean Whitton <spwhitton@spwhitton.name> Tue, 04 Jul 2023 16:38:00 +0100 + +debug-me (1.20220324-1) unstable; urgency=medium + + * New upstream release. + * Update build-dep bounds for libghc-aeson-dev and libghc-websockets-dev. + + -- Sean Whitton <spwhitton@spwhitton.name> Sun, 22 May 2022 14:58:59 -0700 + +debug-me (1.20200820-1) unstable; urgency=medium + + * New upstream release (Closes: #968717). + + -- Sean Whitton <spwhitton@spwhitton.name> Sat, 22 Aug 2020 07:46:36 -0700 + +debug-me (1.20190926-2) unstable; urgency=medium * Fix build (Closes: #963862): - Patch Val.hs for recent ghc: replace type constraint Monad -> MonadFail - Patch Server.hs for recent Network.WebSockets: hide import of Network.WebSockets.serverPort. - -- Sean Whitton <spwhitton@spwhitton.name> Tue, 14 Jul 2020 19:31:26 -0700 + -- Sean Whitton <spwhitton@spwhitton.name> Tue, 14 Jul 2020 19:44:25 -0700 debug-me (1.20190926-1) unstable; urgency=medium diff --git a/debian/control b/debian/control index f03d8d1..78d92cb 100644 --- a/debian/control +++ b/debian/control @@ -6,7 +6,7 @@ Build-Depends: debhelper (>= 10), dh-exec, ghc (>= 8.4.3), libghc-aeson-dev (>= 0.11), - libghc-aeson-dev (<< 1.5), + libghc-aeson-dev (<< 2.2), libghc-async-dev (>= 2.1), libghc-cereal-dev (>= 0.5), libghc-cryptonite-dev (>= 0.20), @@ -33,7 +33,7 @@ Build-Depends: debhelper (>= 10), libghc-wai-dev (>= 3.2), libghc-wai-websockets-dev (>= 3.0), libghc-warp-dev (>= 3.2), - libghc-websockets-dev (>= 0.9), + libghc-websockets-dev (>= 0.12.6.0), Standards-Version: 4.0.1 Homepage: https://debug-me.branchable.com/ Vcs-Git: https://git.spwhitton.name/debug-me diff --git a/debian/patches/debian-changes b/debian/patches/debian-changes index 192a4e6..4f17f2a 100644 --- a/debian/patches/debian-changes +++ b/debian/patches/debian-changes @@ -15,41 +15,19 @@ upload of upstream version 1.2.3, you could use: clone`.) A single combined diff, containing all the changes, follows. ---- debug-me-1.20190926.orig/Server.hs -+++ debug-me-1.20190926/Server.hs -@@ -16,7 +16,7 @@ import Log - import Network.Wai - import Network.Wai.Handler.Warp - import Network.Wai.Handler.WebSockets --import Network.WebSockets hiding (Message) -+import Network.WebSockets hiding (Message, serverPort) - import qualified Network.WebSockets as WS - import Network.HTTP.Types - import Control.Concurrent ---- debug-me-1.20190926.orig/Val.hs -+++ debug-me-1.20190926/Val.hs -@@ -42,7 +42,7 @@ instance FromJSON Val where - b64 :: B.ByteString -> T.Text - b64 = T.decodeUtf8 . B64.encode - --unb64 :: Monad m => T.Text -> m B.ByteString -+unb64 :: MonadFail m => T.Text -> m B.ByteString - unb64 t = either - (\_ -> fail "bad base64 data") - return ---- debug-me-1.20190926.orig/debug-me.cabal -+++ debug-me-1.20190926/debug-me.cabal -@@ -50,7 +50,7 @@ custom-setup - - Executable debug-me - Main-Is: debug-me.hs -- GHC-Options: -threaded -Wall -fno-warn-tabs -O2 -+ GHC-Options: -threaded -Wall -fno-warn-tabs -O2 -XNoMonadFailDesugaring - Build-Depends: - base (>= 4.9 && < 5.0) - , network (>= 2.6) ---- debug-me-1.20190926.orig/debug-me.init -+++ debug-me-1.20190926/debug-me.init +--- debug-me-1.20221231.orig/debug-me.cabal ++++ debug-me-1.20221231/debug-me.cabal +@@ -64,7 +64,7 @@ Executable debug-me + , stm-chans (>= 3.0) + , posix-pty (>= 0.2.1) + , terminal-size (>= 0.3) +- , aeson (>= 0.11 && < 2.1) ++ , aeson (>= 0.11 && < 2.2) + , sandi (>= 0.4) + , text (>= 1.2.2) + , optparse-applicative (>= 0.12) +--- debug-me-1.20221231.orig/debug-me.init ++++ debug-me-1.20221231/debug-me.init @@ -33,7 +33,7 @@ case "$1" in start-stop-daemon --start --quiet --oknodo \ --background --no-close \ @@ -59,11 +37,11 @@ A single combined diff, containing all the changes, follows. --exec "$DAEMON" -- $DAEMON_PARAMS \ > /var/log/debug-me.log log_end_msg $? ---- debug-me-1.20190926.orig/debug-me.service -+++ debug-me-1.20190926/debug-me.service +--- debug-me-1.20221231.orig/debug-me.service ++++ debug-me-1.20221231/debug-me.service @@ -8,8 +8,8 @@ EnvironmentFile=-/etc/default/debug-me ExecStart=/usr/bin/debug-me $DAEMON_PARAMS - InaccessiblePaths=/home /etc + InaccessiblePaths=/home ReadWritePaths=/var/log/debug-me -User=debug-me -Group=debug-me diff --git a/debian/rules b/debian/rules index 191cb01..b017b3c 100755 --- a/debian/rules +++ b/debian/rules @@ -1,9 +1,18 @@ #!/usr/bin/make -f +DPKG_EXPORT_BUILDFLAGS := 1 +include /usr/share/dpkg/architecture.mk + # Debian's ghc cannot compile anything with -fPIC at present, so we # have to disable PIE hardening to avoid build failures on archs like # amd64. See discussion on debian-haskell@lists.debian.org -export DEB_BUILD_MAINT_OPTIONS = hardening=+all,-pie +DEB_BUILD_MAINT_OPTIONS = hardening=+all,-pie + +# Building with LTO failed on ppc64el (LP: #2033639) +ifeq ("$(DEB_BUILD_ARCH)", "ppc64el") + DEB_BUILD_MAINT_OPTIONS += optimize=-lto +endif +export DEB_BUILD_MAINT_OPTIONS # cabal likes to write to $HOME, so use Setup.hs directly export BUILDER = ./Setup diff --git a/debug-me.cabal b/debug-me.cabal index 94af103..befaf98 100644 --- a/debug-me.cabal +++ b/debug-me.cabal @@ -1,6 +1,6 @@ Name: debug-me -Version: 1.20190926 -Cabal-Version: >= 1.8 +Version: 1.20221231 +Cabal-Version: >= 1.10 Maintainer: Joey Hess <joey@kitenet.net> Author: Joey Hess Stability: Experimental @@ -50,11 +50,12 @@ custom-setup Executable debug-me Main-Is: debug-me.hs - GHC-Options: -threaded -Wall -fno-warn-tabs -O2 -XNoMonadFailDesugaring + GHC-Options: -threaded -Wall -fno-warn-tabs -O2 + Default-Language: Haskell98 Build-Depends: base (>= 4.9 && < 5.0) , network (>= 2.6) - , bytestring == 0.10.* + , bytestring < 0.12 , cryptonite (>= 0.20) , unix (>= 2.7) , process (>= 1.4) @@ -63,7 +64,7 @@ Executable debug-me , stm-chans (>= 3.0) , posix-pty (>= 0.2.1) , terminal-size (>= 0.3) - , aeson (>= 0.11 && < 1.5) + , aeson (>= 0.11 && < 2.2) , sandi (>= 0.4) , text (>= 1.2.2) , optparse-applicative (>= 0.12) @@ -80,7 +81,7 @@ Executable debug-me , http-types (>= 0.9) , http-client (>= 0.4) , http-client-tls (>= 0.2) - , websockets (>= 0.9) + , websockets (>= 0.12.6.0) , wai-websockets (>= 3.0) , uuid (>= 1.3) , protobuf (>= 0.2) diff --git a/debug-me.service b/debug-me.service index 03a8917..a046da5 100644 --- a/debug-me.service +++ b/debug-me.service @@ -6,7 +6,7 @@ Documentation=https://debug-me.branchable.com/ Environment='DAEMON_PARAMS=--server /var/log/debug-me/ --delete-old-logs' EnvironmentFile=-/etc/default/debug-me ExecStart=/usr/bin/debug-me $DAEMON_PARAMS -InaccessiblePaths=/home /etc +InaccessiblePaths=/home ReadWritePaths=/var/log/debug-me User=_debug-me Group=_debug-me diff --git a/doc/bugs/logs_not_being_mailed.mdwn b/doc/bugs/logs_not_being_mailed.mdwn new file mode 100644 index 0000000..a833d48 --- /dev/null +++ b/doc/bugs/logs_not_being_mailed.mdwn @@ -0,0 +1,7 @@ +I just ran a test session `http://debug-me.joeyh.name:8081/75e73467-e2bb-4d0e-809b-5b1991228710`. + +It seemed to work ok, except that no logs were mailed afterwards. I checked the logs on the MX, and didn't see any connects. + +Seperately, but possibly related I reported a [debian bug](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=968717) about trying to get emailing logs working on my own server. + +> [[fixed|done]] --[[Joey]] diff --git a/doc/bugs/logs_not_being_mailed/comment_1_94104cd2832c9a4e0fcdadc9f286a6f6._comment b/doc/bugs/logs_not_being_mailed/comment_1_94104cd2832c9a4e0fcdadc9f286a6f6._comment new file mode 100644 index 0000000..541144f --- /dev/null +++ b/doc/bugs/logs_not_being_mailed/comment_1_94104cd2832c9a4e0fcdadc9f286a6f6._comment @@ -0,0 +1,11 @@ +[[!comment format=mdwn + username="joey" + subject="""comment 1""" + date="2020-08-20T17:08:03Z" + content=""" +This is caused by debug-me.service containing + + InaccessiblePaths=/home /etc + +I've fixed the server and will release a new debug-me version fixing it. +"""]] diff --git a/doc/bugs/pgp.cs.uu.nl_is_dead.mdwn b/doc/bugs/pgp.cs.uu.nl_is_dead.mdwn new file mode 100644 index 0000000..eeb82af --- /dev/null +++ b/doc/bugs/pgp.cs.uu.nl_is_dead.mdwn @@ -0,0 +1,2 @@ +Visiting the page in a browser, I see "this page is no longer maintained". That probably explains why the debug-me web-of-trust +check always fails. diff --git a/doc/forum/configure_defaultServerUrl.mdwn b/doc/forum/configure_defaultServerUrl.mdwn new file mode 100644 index 0000000..95b64d6 --- /dev/null +++ b/doc/forum/configure_defaultServerUrl.mdwn @@ -0,0 +1 @@ +I'm thinking about using debug-me for a course, and in that setting I'd like to default to a server at the same university. It would be nice if there was some way (environment variable, e.g.) to configure the default server URL. As it is I guess I will make a shell script wrapper. diff --git a/doc/forum/support_for_https_proxy__63__.mdwn b/doc/forum/support_for_https_proxy__63__.mdwn new file mode 100644 index 0000000..da89550 --- /dev/null +++ b/doc/forum/support_for_https_proxy__63__.mdwn @@ -0,0 +1,16 @@ +I tried a simple nginx port forward +[[!format text """ +location /debug-me/ { + proxy_set_header Host $http_host; + proxy_set_header X-Forwarded-Proto https; + proxy_redirect off; + proxy_pass https://127.0.0.1:8081; + proxy_http_version 1.1; +} +"""]] + +I'm not sure if I botched the proxy configuration, or if debug-me needs something added to support proxying? + +[[!format text """ +Connecting to debug-me server...debug-me: MalformedResponse (ResponseHead {responseCode = 301, responseMessage = "Moved Permanently", responseHeaders = [("Server","nginx/1.14.2"),("Date","Wed, 19 Aug 2020 15:02:36 GMT"),("Content-Type","text/html"),("Content-Length","185"),("Location","http://pivot.cs.unb.ca/debug-me/"),("Connection","keep-alive")]}) "Wrong response status or message." +"""]] diff --git a/doc/forum/support_for_https_proxy__63__/comment_1_e09730934629688660cc71df5bb464cd._comment b/doc/forum/support_for_https_proxy__63__/comment_1_e09730934629688660cc71df5bb464cd._comment new file mode 100644 index 0000000..399f072 --- /dev/null +++ b/doc/forum/support_for_https_proxy__63__/comment_1_e09730934629688660cc71df5bb464cd._comment @@ -0,0 +1,14 @@ +[[!comment format=mdwn + username="joey" + subject="""comment 1""" + date="2020-08-20T17:25:45Z" + content=""" +Well, debug-me does not follow redirects, and it seems that the http proxy +is adding one for some reason. + +It looks like Network.Websockets.Client.runClientWith +is where that is coming from, and the websockets library does not currently +support redirs. Actually, that library implements https itself, +which is a surprise to me. It seems it would need some work to support +redirs. +"""]] diff --git a/doc/install.mdwn b/doc/install.mdwn index f6b1dc7..c48e6d9 100644 --- a/doc/install.mdwn +++ b/doc/install.mdwn @@ -5,7 +5,7 @@ To use: tar xf debug-me-standalone-amd64.tar.gz - debug-me/debug-me + debug-me/runshell debug-me/bin/debug-me ## Distributions diff --git a/doc/news/version_1.20170505.mdwn b/doc/news/version_1.20170505.mdwn deleted file mode 100644 index 221b369..0000000 --- a/doc/news/version_1.20170505.mdwn +++ /dev/null @@ -1,3 +0,0 @@ -debug-me 1.20170505 released with [[!toggle text="these changes"]] -[[!toggleable text=""" - * First release of debug-me."""]]
\ No newline at end of file diff --git a/doc/news/version_1.20170509.mdwn b/doc/news/version_1.20170509.mdwn deleted file mode 100644 index 7ec6d4b..0000000 --- a/doc/news/version_1.20170509.mdwn +++ /dev/null @@ -1,11 +0,0 @@ -debug-me 1.20170509 released with [[!toggle text="these changes"]] -[[!toggleable text=""" - * Server: Use "postmaster" as default --from-email address - rather than "unknown@server". - * Server: DEBUG\_ME\_FROM\_EMAIL can be used to specify the --from-email. - This is used in debug-me.default to encourage configuring it. - Thanks, Sean Whitton. - * Avoid crash when --use-server is given an url that does not - include a path. - * Fix bug that prevented creating ~/.debug-me/log/remote/ - when ~/.debug-me/ didn't already exist."""]]
\ No newline at end of file diff --git a/doc/news/version_1.20170520.mdwn b/doc/news/version_1.20170520.mdwn deleted file mode 100644 index 094f328..0000000 --- a/doc/news/version_1.20170520.mdwn +++ /dev/null @@ -1,13 +0,0 @@ -debug-me 1.20170520 released with [[!toggle text="these changes"]] -[[!toggleable text=""" - * debug-me is available in Debian unstable. - * gpg keyrings in /usr/share/debug-me/ will be checked - to see if a connecting person is a known developer of software - installed on the system, and so implicitly trusted already. - Software packages/projects can install keyrings to that location. - (Thanks to Sean Whitton for the idea.) - * make install installs /usr/share/debug-me/a\_debug-me\_developer.gpg, - which contains the key of Joey Hess. (stack and cabal installs don't - include this file because they typically don't install system-wide) - * debug-me.cabal: Added dependency on time. - * stack.yaml: Update to new posix-pty version."""]]
\ No newline at end of file diff --git a/doc/news/version_1.20190926.mdwn b/doc/news/version_1.20190926.mdwn new file mode 100644 index 0000000..b7f929f --- /dev/null +++ b/doc/news/version_1.20190926.mdwn @@ -0,0 +1,5 @@ +debug-me 1.20190926 released with [[!toggle text="these changes"]] +[[!toggleable text=""" + * Avoid a crash when run without a controlling tty, which may happen + in some container environments. + * Update to lts-13.29, support ghc 8.6.5, and aeson 1.4."""]]
\ No newline at end of file diff --git a/doc/news/version_1.20200820.mdwn b/doc/news/version_1.20200820.mdwn new file mode 100644 index 0000000..b72c3f9 --- /dev/null +++ b/doc/news/version_1.20200820.mdwn @@ -0,0 +1,6 @@ +debug-me 1.20200820 released with [[!toggle text="these changes"]] +[[!toggleable text=""" + * debug-me.service: Remove /etc from InaccessiblePaths, + as that prevents the server sending email using eg postfix, + which needs to read its config files. + * Update to lts-14.27, support websockets 0.12.7."""]]
\ No newline at end of file diff --git a/doc/news/version_1.20220324.mdwn b/doc/news/version_1.20220324.mdwn new file mode 100644 index 0000000..8056232 --- /dev/null +++ b/doc/news/version_1.20220324.mdwn @@ -0,0 +1,6 @@ +debug-me 1.20220324 released with [[!toggle text="these changes"]] +[[!toggleable text=""" * Support ghc 8.8. + Thanks, Tony Zorman + * Support aeson 2.0. + Thanks, Tony Zorman + * Update to lts-19.0."""]]
\ No newline at end of file @@ -1,8 +1,8 @@ packages: - '.' -resolver: lts-13.29 +resolver: lts-19.0 extra-deps: -- graphviz-2999.20.0.3 -- posix-pty-0.2.1.1 +- graphviz-2999.20.1.0 +- posix-pty-0.2.2 - sandi-0.5 explicit-setup-deps: |