Date: Friday, November 25, 2016 @ 03:44:14 Author: felixonmars Revision: 196809
upgpkg: purescript 0.10.2-1 Added: purescript/trunk/http-client-0.5.patch Modified: purescript/trunk/PKGBUILD -----------------------+ PKGBUILD | 34 +++++++++++------- http-client-0.5.patch | 90 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+), 13 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2016-11-25 03:36:19 UTC (rev 196808) +++ PKGBUILD 2016-11-25 03:44:14 UTC (rev 196809) @@ -3,30 +3,38 @@ # Contributor: Arch Haskell Team <arch-hask...@haskell.org> pkgname=purescript -pkgver=0.10.1 -pkgrel=3 +pkgver=0.10.2 +pkgrel=1 pkgdesc="PureScript Programming Language Compiler" url="http://www.purescript.org/" license=("custom:BSD3") arch=('i686' 'x86_64') depends=('gmp' 'libffi' 'zlib') -makedepends=("ghc=8.0.1" "haskell-aeson" "haskell-aeson-better-errors" "haskell-ansi-terminal" - "haskell-ansi-wl-pprint" "haskell-base-compat" "haskell-bower-json" "haskell-boxes" - "haskell-clock" "haskell-data-ordlist" "haskell-dlist" "haskell-edit-distance" - "haskell-file-embed" "haskell-fsnotify" "haskell-glob" "haskell-http-client" - "haskell-http-types" "haskell-language-javascript" "haskell-lifted-base" +makedepends=("ghc=8.0.1" "haskell-aeson" "haskell-aeson-better-errors" "haskell-aeson-pretty" + "haskell-ansi-terminal" "haskell-ansi-wl-pprint" "haskell-base-compat" + "haskell-bower-json" "haskell-boxes" "haskell-clock" "haskell-data-ordlist" + "haskell-dlist" "haskell-edit-distance" "haskell-file-embed" "haskell-foldl" + "haskell-fsnotify" "haskell-glob" "haskell-http-client" "haskell-http-types" + "haskell-language-javascript" "haskell-lens" "haskell-lifted-base" "haskell-monad-control" "haskell-monad-logger" "haskell-mtl" "haskell-optparse-applicative" "haskell-parallel" "haskell-parsec" "haskell-pattern-arrows" "haskell-pipes" "haskell-pipes-http" "haskell-protolude" "haskell-regex-tdfa" "haskell-safe" "haskell-semigroups" "haskell-sourcemap" - "haskell-spdx" "haskell-split" "haskell-stm" "haskell-syb" "haskell-text" - "haskell-transformers-base" "haskell-transformers-compat" - "haskell-unordered-containers" "haskell-utf8-string" "haskell-vector" "haskell-wai" - "haskell-wai-websockets" "haskell-warp" "haskell-websockets") + "haskell-spdx" "haskell-split" "haskell-stm" "haskell-syb" "haskell-system-filepath" + "haskell-text" "haskell-transformers-base" "haskell-transformers-compat" + "haskell-turtle" "haskell-unordered-containers" "haskell-utf8-string" "haskell-vector" + "haskell-wai" "haskell-wai-websockets" "haskell-warp" "haskell-websockets") optdepends=('pulp: for development environment') -source=("http://hackage.haskell.org/packages/archive/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz") -sha256sums=('954e333a0f7c860941384289de241b683cbdd606c5c71ab300fe7ac7b3573df0') +source=("http://hackage.haskell.org/packages/archive/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz" + http-client-0.5.patch) +sha256sums=('45e60466575afed67fbc5244c4e0d3c7184c5aa009ebe7b81aa92a673d212e14' + 'e8fc3574adca72008a367755648a7029968ac4ab5672ab683a4d4d4b1b819d74') +prepare() { + cd "${srcdir}/${pkgname}-${pkgver}" + patch -p1 -i ../http-client-0.5.patch +} + build() { cd "${srcdir}/${pkgname}-${pkgver}" Added: http-client-0.5.patch =================================================================== --- http-client-0.5.patch (rev 0) +++ http-client-0.5.patch 2016-11-25 03:44:14 UTC (rev 196809) @@ -0,0 +1,90 @@ +From e0527fb7f10721870014d7c08b1a2f8f5bf2edcf Mon Sep 17 00:00:00 2001 +From: Oleg Grenrus <oleg.gren...@iki.fi> +Date: Mon, 22 Aug 2016 17:51:42 +0300 +Subject: [PATCH] Support http-client-0.5 + +--- + purescript.cabal | 2 +- + src/Language/PureScript/Ide/Pursuit.hs | 44 ++++++++++++++++------------------ + stack.yaml | 5 +++- + 3 files changed, 25 insertions(+), 26 deletions(-) + +diff --git a/purescript.cabal b/purescript.cabal +index 71fee5d..505e441 100644 +--- a/purescript.cabal ++++ b/purescript.cabal +@@ -117,7 +117,7 @@ library + fsnotify >= 0.2.1, + Glob >= 0.7 && < 0.8, + haskeline >= 0.7.0.0, +- http-client >= 0.4.30 && <0.5, ++ http-client >= 0.4.30 && <0.6, + http-types -any, + language-javascript == 0.6.*, + lifted-base >= 0.2.3 && < 0.2.4, +diff --git a/src/Language/PureScript/Ide/Pursuit.hs b/src/Language/PureScript/Ide/Pursuit.hs +index 962f573..ae40238 100644 +--- a/src/Language/PureScript/Ide/Pursuit.hs ++++ b/src/Language/PureScript/Ide/Pursuit.hs +@@ -35,41 +35,37 @@ import qualified Pipes.Prelude as P + -- TODO: remove this when the issue is fixed at Pursuit + queryPursuit :: Text -> IO ByteString + queryPursuit q = do +- let qClean = T.dropWhileEnd (== '.') q +- req' <- parseRequest "http://pursuit.purescript.org/search" +- let req = req' +- { queryString= "q=" <> (fromString . T.unpack) qClean +- , requestHeaders=[(hAccept, "application/json")] +- } +- m <- newManager tlsManagerSettings +- withHTTP req m $ \resp -> +- P.fold (<>) "" identity (responseBody resp) +- ++ let qClean = T.dropWhileEnd (== '.') q ++ req' <- parseRequest "http://pursuit.purescript.org/search" ++ let req = req' ++ { queryString= "q=" <> (fromString . T.unpack) qClean ++ , requestHeaders=[(hAccept, "application/json")] ++ } ++ m <- newManager tlsManagerSettings ++ withHTTP req m $ \resp -> ++ P.fold (<>) "" identity (responseBody resp) + + handler :: HttpException -> IO [a] +-handler StatusCodeException{} = pure [] + handler _ = pure [] + + searchPursuitForDeclarations :: Text -> IO [PursuitResponse] +-searchPursuitForDeclarations query = +- (do r <- queryPursuit query +- let results' = decode (fromStrict r) :: Maybe Array +- case results' of +- Nothing -> pure [] +- Just results -> pure (mapMaybe (isDeclarationResponse . fromJSON) (toList results))) `E.catch` +- handler ++searchPursuitForDeclarations query = E.handle handler $ do ++ r <- queryPursuit query ++ let results' = decode (fromStrict r) :: Maybe Array ++ case results' of ++ Nothing -> pure [] ++ Just results -> pure (mapMaybe (isDeclarationResponse . fromJSON) (toList results)) + where + isDeclarationResponse (Success a@DeclarationResponse{}) = Just a + isDeclarationResponse _ = Nothing + + findPackagesForModuleIdent :: Text -> IO [PursuitResponse] +-findPackagesForModuleIdent query = +- (do r <- queryPursuit query +- let results' = decode (fromStrict r) :: Maybe Array +- case results' of ++findPackagesForModuleIdent query = E.handle handler $ do ++ r <- queryPursuit query ++ let results' = decode (fromStrict r) :: Maybe Array ++ case results' of + Nothing -> pure [] +- Just results -> pure (mapMaybe (isModuleResponse . fromJSON) (toList results))) `E.catch` +- handler ++ Just results -> pure (mapMaybe (isModuleResponse . fromJSON) (toList results)) + where + isModuleResponse (Success a@ModuleResponse{}) = Just a + isModuleResponse _ = Nothing