HsOpenSSL 0.11.7.8 → 0.11.7.9
raw patch · 3 files changed
+32/−149 lines, 3 filesdep ~timesetup-changed
Dependency ranges changed: time
Files
- ChangeLog +7/−0
- HsOpenSSL.cabal +25/−13
- Setup.hs +0/−136
ChangeLog view
@@ -1,3 +1,10 @@+2025-01-02 Vladimir Shabanov <dev@vshabanov.com>++ * HsOpenSSL.cabal (Version): Bump version to 0.11.7.9++ * Remove Setup.hs (#101)+ by Andreas Abel @andreasabel+ 2024-08-19 Vladimir Shabanov <dev@vshabanov.com> * HsOpenSSL.cabal (Version): Bump version to 0.11.7.8
HsOpenSSL.cabal view
@@ -10,7 +10,7 @@ systems and stable. You may also be interested in the @tls@ package, <http://hackage.haskell.org/package/tls>, which is a pure Haskell implementation of SSL.-Version: 0.11.7.8+Version: 0.11.7.9 License: PublicDomain License-File: COPYING Author: Adam Langley, Mikhail Vorozhtsov, PHO, Taru Karttunen@@ -19,14 +19,26 @@ Homepage: https://github.com/haskell-cryptography/HsOpenSSL Bug-Reports: https://github.com/haskell-cryptography/HsOpenSSL/issues Category: Cryptography-Cabal-Version: 1.12+Cabal-Version: 1.18 Tested-With:- GHC==8.8.1, GHC==8.6.5, GHC==8.4.4, GHC==8.2.2, GHC==8.0.2, GHC==7.10.3-Build-Type: Custom-Extra-Source-Files:+ GHC ==8.0.2+ || ==8.2.2+ || ==8.4.4+ || ==8.6.5+ || ==8.8.4+ || ==8.10.7+ || ==9.0.2+ || ==9.2.8+ || ==9.4.8+ || ==9.6.6+ || ==9.8.1+ || ==9.10.1+Build-Type: Simple+Extra-Doc-Files: AUTHORS ChangeLog README.md+Extra-Source-Files: cbits/HsOpenSSL.h cbits/mutex.h examples/Makefile@@ -39,7 +51,7 @@ Source-Repository head Type: git- Location: git://github.com/haskell-cryptography/HsOpenSSL.git+ Location: https://github.com/haskell-cryptography/HsOpenSSL.git Flag fast-bignum Description:@@ -67,10 +79,6 @@ Manual: True -Custom-setup- setup-depends: Cabal >= 1.12 && < 4,- base >= 4.8 && < 5- Library Build-Depends: base >= 4.8 && < 5,@@ -88,11 +96,15 @@ Build-Depends: integer-gmp >= 1.0.0 && < 1.1.0 if os(darwin) && flag(homebrew-openssl)- Include-Dirs: /usr/local/opt/openssl/include- Extra-Lib-Dirs: /usr/local/opt/openssl/lib+ if arch(aarch64)+ Include-Dirs: /opt/homebrew/opt/openssl/include+ Extra-Lib-Dirs: /opt/homebrew/opt/openssl/lib+ else+ Include-Dirs: /usr/local/opt/openssl/include+ Extra-Lib-Dirs: /usr/local/opt/openssl/lib if os(darwin) && flag(macports-openssl)- Include-Dirs: /opt/local/include+ Include-Dirs: /opt/local/include Extra-Lib-Dirs: /opt/local/lib if flag(use-pkg-config)
− Setup.hs
@@ -1,136 +0,0 @@-{-# LANGUAGE CPP #-}-{-# LANGUAGE TupleSections #-}--#ifndef MIN_VERSION_Cabal--- MIN_VERSION_Cabal is defined and available to custom Setup.hs scripts--- if either GHC >= 8.0 or cabal-install >= 1.24 is used.--- So if it isn't defined, it's very likely we don't have Cabal >= 2.0.-#define MIN_VERSION_Cabal(x,y,z) 0-#endif--import Distribution.Simple-import Distribution.Simple.Setup (ConfigFlags(..), toFlag)-import Distribution.Simple.LocalBuildInfo (localPkgDescr)--#if MIN_VERSION_Cabal(2,0,0)-import Distribution.PackageDescription (FlagName(..), mkFlagName)-#else-import Distribution.PackageDescription (FlagName(..))-#endif--#if MIN_VERSION_Cabal(2,1,0)-import Distribution.PackageDescription (mkFlagAssignment, unFlagAssignment)-#else-import Distribution.PackageDescription (FlagAssignment)-#endif--import Distribution.Verbosity (silent)-import System.Info (os)-import qualified Control.Exception as E (tryJust, throw)-import System.IO.Error (isUserError)-import Control.Monad (forM)-import Data.List--#if !(MIN_VERSION_Cabal(2,0,0))-mkFlagName = FlagName-#endif--#if !(MIN_VERSION_Cabal(2,1,0))-mkFlagAssignment :: [(FlagName, Bool)] -> FlagAssignment-mkFlagAssignment = id--unFlagAssignment :: FlagAssignment -> [(FlagName, Bool)]-unFlagAssignment = id-#endif---- On macOS we're checking whether OpenSSL library is avaiable--- and if not, we're trying to find Homebrew or MacPorts OpenSSL installations.------ Method is dumb -- set homebrew-openssl or macports-openssl flag and try--- to configure and check C libs.------ If no or multiple libraries are found we display error message--- with instructions.--main- | os == "darwin" =- defaultMainWithHooks simpleUserHooks { confHook = conf }- | otherwise =- defaultMain--flags = ["homebrew-openssl", "macports-openssl"]--conf descr cfg = do- c <- tryConfig descr cfg- case c of- Right lbi -> return lbi -- library was found- Left e- | unFlagAssignment (configConfigurationsFlags cfg)- `intersect` [(mkFlagName f, True) | f <- flags] /= [] ->- E.throw e- -- flag was set but library still wasn't found- | otherwise -> do- r <- forM flags $ \ f ->- fmap (f,) $ tryConfig descr $- setFlag (mkFlagName f) cfg { configVerbosity = toFlag silent }- -- TODO: configure is a long operation- -- while checkForeignDeps is fast.- -- Perhaps there is a way to configure once- -- and only apply flags to result and check.- -- However, additional `configure`s happen only on macOS- -- and only when library wasn't found.- case [(f,r) | (f, Right r) <- r] of- [(_,lbi)] ->- return lbi -- library was found- [] ->- fail notFound- fs ->- fail $ multipleFound fs--notFound = unlines- [ "Can't find OpenSSL library."- , "Install it via 'brew install openssl' or 'port install openssl'."- , ""- , "If you already have OpenSSL installed, specify the location"- , "of the installed library in cabal.project:"- , ""- , "package HsOpenSSL"- , " extra-include-dirs: ..."- , " extra-lib-dirs: ..."- , ""- , "or use"- , ""- , "cabal configure --extra-include-dirs=... --extra-lib-dirs=..."- ]--multipleFound fs = unlines- [ "Multiple OpenSSL libraries were found,"- , "use " ++ intercalate " or " ["'-f " ++ f ++ "'" | (f,_) <- fs]- , "to specify location of installed OpenSSL library."- ]--setFlag f c = c { configConfigurationsFlags = mkFlagAssignment- $ go- $ unFlagAssignment- $ configConfigurationsFlags c }- where go [] = []- go (x@(n, _):xs)- | n == f = (f, True) : xs- | otherwise = x : go xs--tryConfig descr flags = do- lbi <- confHook simpleUserHooks descr flags- -- confHook simpleUserHooks == Distribution.Simple.Configure.configure-- -- Testing whether C lib and header dependencies are working.- -- We check exceptions only here, to check C libs errors but not other- -- configuration problems like not resolved .cabal dependencies.- E.tryJust ue $ do- postConf simpleUserHooks [] flags (localPkgDescr lbi) lbi- -- postConf simpleUserHooks ~==- -- Distribution.Simple.Configure.checkForeignDeps-- return lbi-- where ue e | isUserError e = Just e- | otherwise = Nothing