From 91c9283c4abf73358befb1ac22ba873ed3368a69 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 19 Dec 2014 16:53:25 -0400 Subject: Fix build with -f-S3. --- Remote/Helper/AWS.hs | 17 ++--------------- Remote/S3.hs | 17 +++++++++++++++-- debian/changelog | 1 + doc/bugs/Build_error_when_S3_is_disabled.mdwn | 2 ++ 4 files changed, 20 insertions(+), 17 deletions(-) diff --git a/Remote/Helper/AWS.hs b/Remote/Helper/AWS.hs index d27f2aad1..17e1a2921 100644 --- a/Remote/Helper/AWS.hs +++ b/Remote/Helper/AWS.hs @@ -5,21 +5,19 @@ - Licensed under the GNU GPL version 3 or higher. -} -{-# LANGUAGE OverloadedStrings, TupleSections #-} +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE TupleSections #-} module Remote.Helper.AWS where import Common.Annex import Creds -import qualified Aws -import qualified Aws.S3 as S3 import qualified Data.Map as M import qualified Data.ByteString as B import qualified Data.Text as T import Data.Text.Encoding (encodeUtf8) import Data.Text (Text) -import Data.IORef creds :: UUID -> CredPairStorage creds u = CredPairStorage @@ -28,13 +26,6 @@ creds u = CredPairStorage , credPairRemoteKey = Just "s3creds" } -genCredentials :: CredPair -> IO Aws.Credentials -genCredentials (keyid, secret) = Aws.Credentials - <$> pure (encodeUtf8 (T.pack keyid)) - <*> pure (encodeUtf8 (T.pack secret)) - <*> newIORef [] - <*> pure Nothing - data Service = S3 | Glacier deriving (Eq) @@ -82,7 +73,3 @@ s3HostName r = encodeUtf8 $ T.concat ["s3-", r, ".amazonaws.com"] s3DefaultHost :: String s3DefaultHost = "s3.amazonaws.com" - -mkLocationConstraint :: Region -> S3.LocationConstraint -mkLocationConstraint "US" = S3.locationUsClassic -mkLocationConstraint r = r diff --git a/Remote/S3.hs b/Remote/S3.hs index f2ee8842d..1a6e41094 100644 --- a/Remote/S3.hs +++ b/Remote/S3.hs @@ -6,6 +6,7 @@ -} {-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE CPP #-} module Remote.S3 (remote, iaHost, configIA, iaItemUrl) where @@ -26,6 +27,7 @@ import Network.HTTP.Types import Control.Monad.Trans.Resource import Control.Monad.Catch import Data.Conduit +import Data.IORef import Common.Annex import Types.Remote @@ -308,7 +310,7 @@ genBucket c u = do showAction $ "creating bucket in " ++ datacenter void $ sendS3Handle h $ S3.PutBucket (bucket $ hinfo h) Nothing $ - AWS.mkLocationConstraint $ + mkLocationConstraint $ T.pack datacenter writeUUIDFile c u h @@ -391,7 +393,7 @@ sendS3Handle' h = AWS.pureAws (hawscfg h) (hs3cfg h) (hmanager h) withS3Handle :: RemoteConfig -> UUID -> S3Info -> (S3Handle -> Annex a) -> Annex a withS3Handle c u info a = do creds <- getRemoteCredPairFor "S3" c (AWS.creds u) - awscreds <- liftIO $ AWS.genCredentials $ fromMaybe nocreds creds + awscreds <- liftIO $ genCredentials $ fromMaybe nocreds creds let awscfg = AWS.Configuration AWS.Timestamp awscreds (AWS.defaultLog AWS.Error) bracketIO (newManager httpcfg) closeManager $ \mgr -> a $ S3Handle mgr awscfg s3cfg info @@ -505,3 +507,14 @@ iaKeyUrl :: Remote -> Key -> URLString iaKeyUrl r k = "http://archive.org/download/" ++ b ++ "/" ++ getBucketObject (config r) k where b = fromMaybe "" $ getBucketName $ config r + +genCredentials :: CredPair -> IO AWS.Credentials +genCredentials (keyid, secret) = AWS.Credentials + <$> pure (T.encodeUtf8 (T.pack keyid)) + <*> pure (T.encodeUtf8 (T.pack secret)) + <*> newIORef [] + <*> pure Nothing + +mkLocationConstraint :: AWS.Region -> S3.LocationConstraint +mkLocationConstraint "US" = S3.locationUsClassic +mkLocationConstraint r = r diff --git a/debian/changelog b/debian/changelog index ff421aec7..3f7db394c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -17,6 +17,7 @@ git-annex (5.20141204) UNRELEASED; urgency=medium * When possible, build with the haskell torrent library for parsing torrent files. As a fallback, can instead use btshowmetainfo from bittornado | bittorrent. + * Fix build with -f-S3. -- Joey Hess Fri, 05 Dec 2014 13:42:08 -0400 diff --git a/doc/bugs/Build_error_when_S3_is_disabled.mdwn b/doc/bugs/Build_error_when_S3_is_disabled.mdwn index 9b72afe07..2ae38659d 100644 --- a/doc/bugs/Build_error_when_S3_is_disabled.mdwn +++ b/doc/bugs/Build_error_when_S3_is_disabled.mdwn @@ -35,3 +35,5 @@ I'm installing dependencies with cabal but have disabled S3 support cabal configure "${_features[@]}" make + +> [[fixed|done]] --[[Joey]] -- cgit v1.2.3