cabal-install 1.22.3.0 → 1.22.4.0
raw patch · 6 files changed
+35/−37 lines, 6 files
Files
- Distribution/Client/HttpUtils.hs +6/−6
- Distribution/Client/Install.hs +16/−6
- Distribution/Client/Upload.hs +5/−22
- bootstrap.sh +2/−2
- cabal-install.cabal +1/−1
- changelog +5/−0
Distribution/Client/HttpUtils.hs view
@@ -17,8 +17,8 @@ import Network.URI ( URI (..), URIAuth (..) ) import Network.Browser- ( BrowserAction, browse- , setOutHandler, setErrHandler, setProxy, setAuthorityGen, request)+ ( BrowserAction, browse, setAllowBasicAuth, setAuthorityGen+ , setOutHandler, setErrHandler, setProxy, request) import Network.Stream ( Result, ConnError(..) ) import Control.Monad@@ -80,10 +80,10 @@ -> Maybe String -- ^ Optional etag to check if we already have the latest file. -> IO (Result (Response ByteString)) getHTTP verbosity uri etag = liftM (\(_, resp) -> Right resp) $- cabalBrowse verbosity (return ()) (request (mkRequest uri etag))+ cabalBrowse verbosity Nothing (request (mkRequest uri etag)) cabalBrowse :: Verbosity- -> BrowserAction s ()+ -> Maybe (String, String) -> BrowserAction s a -> IO a cabalBrowse verbosity auth act = do@@ -92,8 +92,8 @@ setProxy p setErrHandler (warn verbosity . ("http error: "++)) setOutHandler (debug verbosity)- auth- setAuthorityGen (\_ _ -> return Nothing)+ setAllowBasicAuth False+ setAuthorityGen (\_ _ -> return auth) act downloadURI :: Verbosity
Distribution/Client/Install.hs view
@@ -31,6 +31,7 @@ import Data.List ( isPrefixOf, unfoldr, nub, sort, (\\) )+import qualified Data.Map as Map import qualified Data.Set as S import Data.Maybe ( isJust, fromMaybe, mapMaybe, maybeToList )@@ -582,7 +583,7 @@ printPlan dryRun verbosity plan sourcePkgDb = case plan of [] -> return () pkgs- | verbosity >= Verbosity.verbose -> notice verbosity $ unlines $+ | verbosity >= Verbosity.verbose -> putStr $ unlines $ ("In order, the following " ++ wouldWill ++ " be installed:") : map showPkgAndReason pkgs | otherwise -> notice verbosity $ unlines $@@ -599,13 +600,14 @@ showPkgAndReason (pkg', pr) = display (packageId pkg') ++ showLatest pkg' ++ showFlagAssignment (nonDefaultFlags pkg') ++- showStanzas (stanzas pkg') ++ " " +++ showStanzas (stanzas pkg') +++ showDep pkg' ++ case pr of- NewPackage -> "(new package)"- NewVersion _ -> "(new version)"- Reinstall _ cs -> "(reinstall)" ++ case cs of+ NewPackage -> " (new package)"+ NewVersion _ -> " (new version)"+ Reinstall _ cs -> " (reinstall)" ++ case cs of [] -> ""- diff -> " changes: " ++ intercalate ", " (map change diff)+ diff -> " (changes: " ++ intercalate ", " (map change diff) ++ ")" showLatest :: ReadyPackage -> String showLatest pkg = case mLatestVersion of@@ -651,6 +653,14 @@ change (InBoth pkgid pkgid') = display pkgid ++ " -> " ++ display (packageVersion pkgid') change (OnlyInRight pkgid') = display pkgid' ++ " added"++ showDep pkg | Just rdeps <- Map.lookup (packageId pkg) revDeps+ = " (via: " ++ unwords (map display rdeps) ++ ")"+ | otherwise = ""++ revDepGraphEdges = [ (rpid,packageId pkg) | (pkg,_) <- plan, rpid <- depends pkg ]++ revDeps = Map.fromListWith (++) (map (fmap (:[])) revDepGraphEdges) -- ------------------------------------------------------------ -- * Post installation stuff
Distribution/Client/Upload.hs view
@@ -18,12 +18,10 @@ import qualified Distribution.Client.BuildReports.Upload as BuildReport import Network.Browser- ( BrowserAction, request- , Authority(..), addAuthority )+ ( request ) import Network.HTTP ( Header(..), HeaderName(..), findHeader , Request(..), RequestMethod(..), Response(..) )-import Network.TCP (HandleStream) import Network.URI (URI(uriPath), parseURI) import Data.Char (intToDigit)@@ -53,12 +51,7 @@ else targetRepoURI{uriPath = uriPath targetRepoURI `FilePath.Posix.combine` "upload"} Username username <- maybe promptUsername return mUsername Password password <- maybe promptPassword return mPassword- let auth = addAuthority AuthBasic {- auRealm = "Hackage",- auUsername = username,- auPassword = password,- auSite = uploadURI- }+ let auth = Just (username, password) flip mapM_ paths $ \path -> do notice verbosity $ "Uploading " ++ path ++ "... " handlePackage verbosity uploadURI auth path@@ -84,17 +77,9 @@ report :: Verbosity -> [Repo] -> Maybe Username -> Maybe Password -> IO () report verbosity repos mUsername mPassword = do- let uploadURI = if isOldHackageURI targetRepoURI- then legacyUploadURI- else targetRepoURI{uriPath = ""} Username username <- maybe promptUsername return mUsername Password password <- maybe promptPassword return mPassword- let auth = addAuthority AuthBasic {- auRealm = "Hackage",- auUsername = username,- auPassword = password,- auSite = uploadURI- }+ let auth = Just (username, password) forM_ repos $ \repo -> case repoKind repo of Left remoteRepo -> do dotCabal <- defaultCabalDir@@ -113,16 +98,14 @@ cabalBrowse verbosity auth $ BuildReport.uploadReports (remoteRepoURI remoteRepo) [(report', Just buildLog)] return () Right{} -> return ()- where- targetRepoURI = remoteRepoURI $ last [ remoteRepo | Left remoteRepo <- map repoKind repos ] --FIXME: better error message when no repos are given check :: Verbosity -> [FilePath] -> IO () check verbosity paths = do flip mapM_ paths $ \path -> do notice verbosity $ "Checking " ++ path ++ "... "- handlePackage verbosity checkURI (return ()) path+ handlePackage verbosity checkURI Nothing path -handlePackage :: Verbosity -> URI -> BrowserAction (HandleStream ByteString) ()+handlePackage :: Verbosity -> URI -> Maybe (String, String) -> FilePath -> IO () handlePackage verbosity uri auth path = do req <- mkRequest uri path
bootstrap.sh view
@@ -70,8 +70,8 @@ # Check the C compiler/linker work. LINK="$(for link in collect2 ld; do- echo 'main;' | ${CC} -v -x c - -o /dev/null -\#\#\# 2>&1 | grep -q $link &&- echo 'main;' | ${CC} -v -x c - -o /dev/null -\#\#\# 2>&1 | grep $link |+ echo 'main;' | ${CC} -v -x c - -o /dev/null -\#\#\# 2>&1 | grep -qw $link &&+ echo 'main;' | ${CC} -v -x c - -o /dev/null -\#\#\# 2>&1 | grep -w $link | sed -e "s|\(.*$link\).*|\1|" -e 's/ //g' -e 's|"||' && break done)"
cabal-install.cabal view
@@ -1,5 +1,5 @@ Name: cabal-install-Version: 1.22.3.0+Version: 1.22.4.0 Synopsis: The command-line interface for Cabal and Hackage. Description: The \'cabal\' command-line program simplifies the process of managing
changelog view
@@ -1,4 +1,9 @@ -*-change-log-*-+1.22.4.0 Ryan Thomas <ryan@ryant.org> May 2015+ * Force cabal upload to always use digest auth and never basic auth.+ * Add dependency-graph information to `printPlan` output+ * bootstrap.sh: fixes linker matching to avoid cases where tested linker names appear unexpectedly in compiler output (fixes #2542)+ 1.22.3.0 Ryan Thomas <ryan@ryant.org> April 2015 * Fix bash completion for sandbox subcommands - Fixes #2513 (Mikhail Glushenkov) * filterConfigureFlags: filter more flags (Mikhail Glushenkov)