diff --git a/cabal.project b/cabal.project index 18dac5ea0e..a0ddebf871 100644 --- a/cabal.project +++ b/cabal.project @@ -79,11 +79,6 @@ source-repository-package location: https://github.com/kim/hs-collectd tag: 885da222be2375f78c7be36127620ed772b677c9 -source-repository-package - type: git - location: https://github.com/kim/snappy-framing - tag: d99f702c0086729efd6848dea8a01e5266c3a61c - source-repository-package type: git location: https://github.com/vincenthz/hs-certificate @@ -149,11 +144,6 @@ source-repository-package location: https://github.com/wireapp/saml2-web-sso tag: 4227e38be5c0810012dc472fc6931f6087fbce68 -source-repository-package - type: git - location: https://github.com/wireapp/snappy - tag: b0e5c08af48911caecffa4fa6a3e74872018b258 - source-repository-package type: git location: https://gitlab.com/axeman/swagger diff --git a/changelog.d/5-internal/bonanza-snappy b/changelog.d/5-internal/bonanza-snappy new file mode 100644 index 0000000000..c1d1fd2d46 --- /dev/null +++ b/changelog.d/5-internal/bonanza-snappy @@ -0,0 +1 @@ +Drop snappy support from bonanza diff --git a/stack.yaml b/stack.yaml index edf9c21d9a..974fdc6db4 100644 --- a/stack.yaml +++ b/stack.yaml @@ -92,9 +92,6 @@ extra-deps: - git: https://github.com/kim/hs-collectd commit: 885da222be2375f78c7be36127620ed772b677c9 -- git: https://github.com/kim/snappy-framing - commit: d99f702c0086729efd6848dea8a01e5266c3a61c - - git: https://gitlab.com/twittner/wai-routing commit: 7e996a93fec5901767f845a50316b3c18e51a61d @@ -241,10 +238,6 @@ extra-deps: - git: https://github.com/wireapp/http2 commit: aa3501ad58e1abbd196781fac25a84f41ec2a787 # avoid-empty-data branch -# Fix in PR: https://github.com/bos/snappy/pull/7 -- git: https://github.com/wireapp/snappy - commit: b0e5c08af48911caecffa4fa6a3e74872018b258 # master (Sep 03, 2021) - # Error handling fix: https://github.com/vincenthz/hs-certificate/pull/125 - git: https://github.com/vincenthz/hs-certificate commit: a899bda3d7666d25143be7be8f3105fc076703d9 # master (Sep 29, 2021) diff --git a/stack.yaml.lock b/stack.yaml.lock index f5e4323c8a..3bcc5f92c0 100644 --- a/stack.yaml.lock +++ b/stack.yaml.lock @@ -46,17 +46,6 @@ packages: original: git: https://github.com/kim/hs-collectd commit: 885da222be2375f78c7be36127620ed772b677c9 -- completed: - name: snappy-framing - version: 0.1.1 - git: https://github.com/kim/snappy-framing - pantry-tree: - size: 651 - sha256: 91a2ac7e0dd161fd82eee3007a6b488e53ad14a5d4e640ffdeba23f4741fbf64 - commit: d99f702c0086729efd6848dea8a01e5266c3a61c - original: - git: https://github.com/kim/snappy-framing - commit: d99f702c0086729efd6848dea8a01e5266c3a61c - completed: name: wai-routing version: 0.13.0 @@ -803,17 +792,6 @@ packages: original: git: https://github.com/wireapp/http2 commit: aa3501ad58e1abbd196781fac25a84f41ec2a787 -- completed: - name: snappy - version: 0.2.0.2 - git: https://github.com/wireapp/snappy - pantry-tree: - size: 989 - sha256: ae7fdf1988910fa026279052e85ade0a99962a3e7812ace104797e12ead0cd1d - commit: b0e5c08af48911caecffa4fa6a3e74872018b258 - original: - git: https://github.com/wireapp/snappy - commit: b0e5c08af48911caecffa4fa6a3e74872018b258 - completed: subdir: x509-store name: x509-store diff --git a/tools/bonanza/bonanza.cabal b/tools/bonanza/bonanza.cabal index 1fc4c6e1ea..d1d4440776 100644 --- a/tools/bonanza/bonanza.cabal +++ b/tools/bonanza/bonanza.cabal @@ -4,7 +4,7 @@ cabal-version: 1.12 -- -- see: https://github.com/sol/hpack -- --- hash: ffc381288ee6d06f96874ae5e486cc962dfb84f417859c96f4b3f60531aeb634 +-- hash: 69f8e076592d4a3cea6af611bba2106000127e011bce90b73813a629885867bf name: bonanza version: 3.6.0 @@ -38,7 +38,6 @@ library Bonanza.Streaming.Kibana Bonanza.Streaming.Parser Bonanza.Streaming.Protobuf - Bonanza.Streaming.Snappy Bonanza.Types other-modules: Paths_bonanza @@ -109,8 +108,6 @@ library , protobuf >=0.2.1.1 , safe , scientific - , snappy - , snappy-framing , text , time >=1.5 , unordered-containers diff --git a/tools/bonanza/package.yaml b/tools/bonanza/package.yaml index ad29f4439d..5ce2d74e1d 100644 --- a/tools/bonanza/package.yaml +++ b/tools/bonanza/package.yaml @@ -40,8 +40,6 @@ library: - protobuf >=0.2.1.1 - scientific - safe - - snappy - - snappy-framing - time >=1.5 - unordered-containers - vector diff --git a/tools/bonanza/src/Bonanza/App.hs b/tools/bonanza/src/Bonanza/App.hs index 58ddd44537..0582839262 100644 --- a/tools/bonanza/src/Bonanza/App.hs +++ b/tools/bonanza/src/Bonanza/App.hs @@ -29,7 +29,6 @@ import Bonanza.Geo import Bonanza.Metrics import qualified Bonanza.Streaming.Kibana as Kibana import qualified Bonanza.Streaming.Parser as Parser -import qualified Bonanza.Streaming.Snappy as Snappy import qualified Data.Aeson as Aeson import qualified Data.ByteString as BS import qualified Data.ByteString.Lazy as BL @@ -48,16 +47,14 @@ import System.CPUTime data Opts = Opts CommonOpts Command deriving (Show) -data Compression = GZip | Snappy +data Compression = GZip instance Read Compression where readsPrec _ ('g' : 'z' : 'i' : 'p' : xs) = [(GZip, xs)] - readsPrec _ ('s' : 'n' : 'a' : 'p' : 'p' : 'y' : xs) = [(Snappy, xs)] readsPrec _ _ = [] instance Show Compression where show GZip = "gzip" - show Snappy = "snappy" data CommonOpts = CommonOpts { parser :: !String, @@ -250,9 +247,7 @@ runBonanza = runDecompress :: Maybe Compression -> ConduitM ByteString ByteString IO () runDecompress Nothing = Conduit.map id runDecompress (Just GZip) = Conduit.ungzip - runDecompress (Just Snappy) = Snappy.decode .| Snappy.bytes runCompress :: Maybe Compression -> ConduitM ByteString ByteString IO () runCompress Nothing = Conduit.map id runCompress (Just GZip) = Conduit.gzip - runCompress (Just Snappy) = Snappy.encode .| Snappy.bytes readWith p = Parser.stream (Parser.byName p) diff --git a/tools/bonanza/src/Bonanza/Streaming/Snappy.hs b/tools/bonanza/src/Bonanza/Streaming/Snappy.hs deleted file mode 100644 index f197f5dea1..0000000000 --- a/tools/bonanza/src/Bonanza/Streaming/Snappy.hs +++ /dev/null @@ -1,70 +0,0 @@ -{-# LANGUAGE DeriveDataTypeable #-} -{-# LANGUAGE ViewPatterns #-} - --- This file is part of the Wire Server implementation. --- --- Copyright (C) 2022 Wire Swiss GmbH --- --- This program is free software: you can redistribute it and/or modify it under --- the terms of the GNU Affero General Public License as published by the Free --- Software Foundation, either version 3 of the License, or (at your option) any --- later version. --- --- This program is distributed in the hope that it will be useful, but WITHOUT --- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS --- FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more --- details. --- --- You should have received a copy of the GNU Affero General Public License along --- with this program. If not, see . - -module Bonanza.Streaming.Snappy - ( Chunk (..), - ParseError (..), - SnappyError (..), - encode, - decode, - bytes, - ) -where - -import Bonanza.Streaming.Binary (ParseError (..)) -import qualified Bonanza.Streaming.Binary as SB -import qualified Codec.Compression.Snappy as Snappy -import Codec.Compression.Snappy.Framing (Chunk (..)) -import qualified Codec.Compression.Snappy.Framing as Framing -import Control.Monad.Catch -import Data.Binary (get) -import Data.Bitraversable -import Data.Conduit -import Imports - -data SnappyError - = ChecksumMismatch Chunk - | UnskippableEncountered Chunk - deriving (Show, Typeable) - -instance Exception SnappyError - -encode :: Monad m => ConduitT ByteString Chunk m () -encode = yield Framing.StreamIdentifier *> awaitForever go - where - go = void . bitraverse yield (maybe (pure ()) leftover) . Framing.encode' - -decode :: MonadThrow m => ConduitT ByteString Chunk m () -decode = SB.decode get - -bytes :: MonadThrow m => ConduitT Chunk ByteString m () -bytes = loop - where - loop = await >>= maybe (return ()) go - go c@(Uncompressed chk bs) - | chk == checksum bs = yield bs *> loop - | otherwise = throwM $ ChecksumMismatch c - go c@(Compressed chk (Snappy.decompress -> bs)) - | chk == checksum bs = yield bs *> loop - | otherwise = throwM $ ChecksumMismatch c - go c@Unskippable {} = throwM $ UnskippableEncountered c - go StreamIdentifier = loop - go Skippable {} = loop - checksum = Framing.checksum