packages feed

hpack 0.29.2 → 0.29.3

raw patch · 12 files changed

+59/−266 lines, 12 filesdep +infer-licensedep −text-metricsPVP ok

version bump matches the API change (PVP)

Dependencies added: infer-license

Dependencies removed: text-metrics

API changes (from Hackage documentation)

Files

CHANGELOG.md view
@@ -1,3 +1,7 @@+## Changes in 0.29.3+  - Desugar `^>=` for compatibility with `Cabal < 2` (see #213)+  - Add support for GPL, LGPL and AGPL when inferring `license` (see #305)+ ## Changes in 0.29.2   - Add missing `extra-source-files` (see #302) 
hpack.cabal view
@@ -1,13 +1,13 @@ cabal-version: >= 1.10 --- This file has been generated from package.yaml by hpack version 0.29.1.+-- This file has been generated from package.yaml by hpack version 0.29.2. -- -- see: https://github.com/sol/hpack ----- hash: 5ec025015bbdf390002b760883f8fc63f4a45117a5cdf9356bf6ad0fef910cb0+-- hash: 4ff78568d9482ecc3542cb90e91e1939d6f65d510f414956757b0593cf11c15b  name:           hpack-version:        0.29.2+version:        0.29.3 synopsis:       An alternative format for Haskell packages description:    See README at <https://github.com/sol/hpack#readme> category:       Development@@ -19,10 +19,6 @@ build-type:     Simple extra-source-files:     CHANGELOG.md-    test/resources/bsd2-    test/resources/bsd3-    test/resources/bsd4-    test/resources/mit  source-repository head   type: git@@ -47,10 +43,10 @@     , http-client     , http-client-tls     , http-types+    , infer-license >=0.1.0 && <0.2     , pretty     , scientific     , text-    , text-metrics     , transformers     , unordered-containers     , vector@@ -72,7 +68,6 @@       Hpack.Options       Hpack.Render.Dsl       Hpack.Render.Hints-      Hpack.SpdxLicenses       Hpack.Syntax.Defaults       Hpack.Syntax.Dependency       Hpack.Syntax.Git@@ -102,10 +97,10 @@     , http-client     , http-client-tls     , http-types+    , infer-license >=0.1.0 && <0.2     , pretty     , scientific     , text-    , text-metrics     , transformers     , unordered-containers     , vector@@ -140,6 +135,7 @@     , http-client     , http-client-tls     , http-types+    , infer-license >=0.1.0 && <0.2     , interpolate     , mockery >=0.3     , pretty@@ -147,7 +143,6 @@     , template-haskell     , temporary     , text-    , text-metrics     , transformers     , unordered-containers     , vector@@ -187,7 +182,6 @@       Hpack.Render       Hpack.Render.Dsl       Hpack.Render.Hints-      Hpack.SpdxLicenses       Hpack.Syntax.Defaults       Hpack.Syntax.Dependency       Hpack.Syntax.Git
src/Hpack/Config.hs view
@@ -95,6 +95,7 @@ import           Data.Version  import           Distribution.Pretty (prettyShow)+import qualified Distribution.SPDX.License as SPDX  import           Data.Aeson.Config.Types import           Data.Aeson.Config.FromValue hiding (decodeValue)@@ -600,7 +601,7 @@   VerbatimBool b -> show b   VerbatimNull -> "" -determineCabalVersion :: Maybe (License String) -> Package -> (Package, String)+determineCabalVersion :: Maybe (License SPDX.License) -> Package -> (Package, String) determineCabalVersion inferredLicense pkg@Package{..} = (     pkg {         packageVerbatim = deleteVerbatimField "cabal-version" packageVerbatim@@ -609,9 +610,9 @@   , "cabal-version: " ++ fromMaybe inferredCabalVersion verbatimCabalVersion ++ "\n\n"   )   where-    license = parsedLicense <|> inferredLicense+    license = fmap prettyShow <$> (parsedLicense <|> inferredLicense) -    parsedLicense = fmap prettyShow . parseLicense <$> packageLicense+    parsedLicense = parseLicense <$> packageLicense      formatLicense = \ case       MustSPDX spdx -> spdx
src/Hpack/License.hs view
@@ -1,21 +1,17 @@ {-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE ViewPatterns #-}+{-# LANGUAGE LambdaCase #-} module Hpack.License where  import           Control.Arrow ((&&&))-import           Data.List-import           Data.Ord (comparing)-import           Data.Text (Text)-import qualified Data.Text as T-import           Data.Text.Metrics  import           Distribution.Pretty (prettyShow)+import           Distribution.Version (mkVersion) import qualified Distribution.License as Cabal import qualified Distribution.SPDX.License as SPDX-import           Distribution.SPDX.LicenseId import           Distribution.Parsec.Class (eitherParsec) -import           Hpack.SpdxLicenses (licenses)+import qualified Data.License.Infer as Infer  data License a = DontTouch String | CanSPDX Cabal.License a | MustSPDX a   deriving (Eq, Show, Functor)@@ -33,21 +29,16 @@     spdxLicense :: Maybe SPDX.License     spdxLicense  = either (const Nothing) Just (eitherParsec license) -probabilities :: Text -> [(LicenseId, Double)]-probabilities license = map (fmap probability) licenses-  where-    probability = realToFrac . levenshteinNorm license--inferLicense :: String -> Maybe (License String)-inferLicense (T.pack -> xs) = case maximumBy (comparing snd) (probabilities xs) of-  (license, n) | n > 0.85 -> Just (toLicense license)-  _ -> Nothing+inferLicense :: String -> Maybe (License SPDX.License)+inferLicense = fmap (uncurry CanSPDX . (id &&& Cabal.licenseToSPDX) . toLicense) . Infer.inferLicense   where-    toLicense :: LicenseId -> License String-    toLicense license = (case license of-      MIT -> CanSPDX Cabal.MIT-      BSD_2_Clause -> CanSPDX Cabal.BSD2-      BSD_3_Clause -> CanSPDX Cabal.BSD3-      BSD_4_Clause -> CanSPDX Cabal.BSD4-      _ -> MustSPDX-      ) (licenseId license)+    toLicense = \ case+      Infer.MIT -> Cabal.MIT+      Infer.BSD2 -> Cabal.BSD2+      Infer.BSD3 -> Cabal.BSD3+      Infer.BSD4 -> Cabal.BSD4+      Infer.GPLv2 -> Cabal.GPL (Just $ mkVersion [2])+      Infer.GPLv3 -> Cabal.GPL (Just $ mkVersion [3])+      Infer.LGPLv2_1 -> Cabal.LGPL (Just $ mkVersion [2,1])+      Infer.LGPLv3 -> Cabal.LGPL (Just $ mkVersion [3])+      Infer.AGPLv3 -> Cabal.AGPL (Just $ mkVersion [3])
− src/Hpack/SpdxLicenses.hs
@@ -1,118 +0,0 @@--- DO NOT MODIFY MANUALLY------ This file has been generated with ./generate-spdx-licenses-module.sh.--{-# LANGUAGE OverloadedStrings #-}-module Hpack.SpdxLicenses where-import Data.Text (Text)-import Distribution.SPDX.LicenseId-licenses :: [(LicenseId, Text)]-licenses = [-    (BSD_2_Clause, "\-\Copyright (c) <year> <owner> . All rights reserved.\n\-\\n\-\Redistribution and use in source and binary forms, with or without modification,\n\-\are permitted provided that the following conditions are met:\n\-\\n\-\1. Redistributions of source code must retain the above copyright notice,\n\-\this list of conditions and the following disclaimer.\n\-\\n\-\2. Redistributions in binary form must reproduce the above copyright notice,\n\-\this list of conditions and the following disclaimer in the documentation\n\-\and/or other materials provided with the distribution.\n\-\\n\-\THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n\-\AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n\-\IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n\-\ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n\-\LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n\-\DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n\-\SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n\-\CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n\-\OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE\n\-\USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\-\")-  , (BSD_3_Clause, "\-\Copyright (c) <year> <owner> . All rights reserved.\n\-\\n\-\Redistribution and use in source and binary forms, with or without modification,\n\-\are permitted provided that the following conditions are met:\n\-\\n\-\1. Redistributions of source code must retain the above copyright notice,\n\-\this list of conditions and the following disclaimer.\n\-\\n\-\2. Redistributions in binary form must reproduce the above copyright notice,\n\-\this list of conditions and the following disclaimer in the documentation\n\-\and/or other materials provided with the distribution.\n\-\\n\-\3. Neither the name of the copyright holder nor the names of its contributors\n\-\may be used to endorse or promote products derived from this software without\n\-\specific prior written permission.\n\-\\n\-\THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n\-\AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n\-\IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n\-\ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n\-\LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n\-\DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n\-\SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n\-\CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n\-\OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE\n\-\USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\-\")-  , (BSD_4_Clause, "\-\Copyright (c) <year> <owner> . All rights reserved.\n\-\\n\-\Redistribution and use in source and binary forms, with or without modification,\n\-\are permitted provided that the following conditions are met:\n\-\\n\-\1. Redistributions of source code must retain the above copyright notice,\n\-\this list of conditions and the following disclaimer.\n\-\\n\-\2. Redistributions in binary form must reproduce the above copyright notice,\n\-\this list of conditions and the following disclaimer in the documentation\n\-\and/or other materials provided with the distribution.\n\-\\n\-\3. All advertising materials mentioning features or use of this software must\n\-\display the following acknowledgement:\n\-\\n\-\   This product includes software developed by the organization .\n\-\\n\-\4. Neither the name of the copyright holder nor the names of its contributors\n\-\may be used to endorse or promote products derived from this software without\n\-\specific prior written permission.\n\-\\n\-\THIS SOFTWARE IS PROVIDED BY COPYRIGHT HOLDER \"AS IS\" AND ANY EXPRESS OR IMPLIED\n\-\WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY\n\-\AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT\n\-\HOLDER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n\-\OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\-\GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\-\HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n\-\LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n\-\OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\n\-\DAMAGE.\n\-\")-  , (MIT, "\-\MIT License\n\-\\n\-\Copyright (c) <year> <copyright holders>\n\-\\n\-\Permission is hereby granted, free of charge, to any person obtaining a copy\n\-\of this software and associated documentation files (the \"Software\"), to deal\n\-\in the Software without restriction, including without limitation the rights\n\-\to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n\-\copies of the Software, and to permit persons to whom the Software is furnished\n\-\to do so, subject to the following conditions:\n\-\\n\-\The above copyright notice and this permission notice shall be included in\n\-\all copies or substantial portions of the Software.\n\-\\n\-\THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\-\IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n\-\FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS\n\-\OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n\-\WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF\n\-\OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\-\")-  ]
src/Hpack/Syntax/Dependency.hs view
@@ -2,6 +2,7 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE LambdaCase #-} module Hpack.Syntax.Dependency (   Dependencies(..) , DependencyVersion(..)@@ -16,6 +17,7 @@ import           Data.Semigroup (Semigroup(..)) import           Text.PrettyPrint (renderStyle, Style(..), Mode(..)) import           Control.Monad+import           Distribution.Version (VersionRangeF(..)) import qualified Distribution.Compat.ReadP as D import qualified Distribution.Package as D import qualified Distribution.Text as D@@ -163,9 +165,31 @@ parseVersionRange = liftM dependencyVersionFromCabal . parseCabalVersionRange  parseCabalVersionRange :: Monad m => String -> m D.VersionRange-parseCabalVersionRange = cabalParse "constraint"+parseCabalVersionRange = fmap toPreCabal2VersionRange . cabalParse "constraint"  cabalParse :: (Monad m, D.Text a) => String -> String -> m a cabalParse subject s = case [d | (d, "") <- D.readP_to_S D.parse s] of   [d] -> return d   _ -> fail $ unwords ["invalid",  subject, show s]+++toPreCabal2VersionRange :: D.VersionRange -> D.VersionRange+toPreCabal2VersionRange = D.embedVersionRange . D.cataVersionRange f+  where+    f :: VersionRangeF (VersionRangeF D.VersionRange) -> VersionRangeF D.VersionRange+    f = \ case+      MajorBoundVersionF v -> IntersectVersionRangesF (D.embedVersionRange lower) (D.embedVersionRange upper)+        where+          lower = OrLaterVersionF v+          upper = EarlierVersionF (D.majorUpperBound v)++      AnyVersionF -> AnyVersionF+      ThisVersionF v -> ThisVersionF v+      LaterVersionF v -> LaterVersionF v+      OrLaterVersionF v -> OrLaterVersionF v+      EarlierVersionF v -> EarlierVersionF v+      OrEarlierVersionF v -> OrEarlierVersionF v+      WildcardVersionF v -> WildcardVersionF v+      UnionVersionRangesF a b -> UnionVersionRangesF (D.embedVersionRange a) (D.embedVersionRange b)+      IntersectVersionRangesF a b -> IntersectVersionRangesF (D.embedVersionRange a) (D.embedVersionRange b)+      VersionRangeParensF a -> VersionRangeParensF (D.embedVersionRange a)
test/Hpack/LicenseSpec.hs view
@@ -61,19 +61,3 @@     forM_ (cabalLicenses ++ spdxLicenses ++ unknownLicenses) $ \ (license, expected) -> do       it [i|parses #{license}|] $ do         prettyShow <$> parseLicense license `shouldBe` expected--  describe "inferLicense" $ do-    it "infers MIT" $ do-      inferLicense <$> readFile "test/resources/mit" `shouldReturn` Just (CanSPDX Cabal.MIT "MIT")--    it "infers BSD-2-Clause" $ do-      inferLicense <$> readFile "test/resources/bsd2" `shouldReturn` Just (CanSPDX Cabal.BSD2 "BSD-2-Clause")--    it "infers BSD-3-Clause" $ do-      inferLicense <$> readFile "test/resources/bsd3" `shouldReturn` Just (CanSPDX Cabal.BSD3 "BSD-3-Clause")--    it "infers BSD-4-Clause" $ do-      inferLicense <$> readFile "test/resources/bsd4" `shouldReturn` Just (CanSPDX Cabal.BSD4 "BSD-4-Clause")--    it "rejects unknown licenses" $ do-      inferLicense "unknown" `shouldBe` Nothing
test/Hpack/Syntax/DependencySpec.hs view
@@ -147,6 +147,11 @@               hpack: 2.*             |] `shouldDecodeTo_` Dependencies [("hpack", VersionRange "==2.*")] +          it "accepts ^>=" $ do+            [yaml|+              hpack: ^>= 1.2.3.4+            |] `shouldDecodeTo_` Dependencies [("hpack", VersionRange ">=1.2.3.4 && <1.3")]+           it "reports parse errors" $ do             [yaml|               hpack: foo
− test/resources/bsd2
@@ -1,22 +0,0 @@-Copyright (c) 2014-2018, Simon Hengel <sol@typeful.net>-All rights reserved.--Redistribution and use in source and binary forms, with or without-modification, are permitted provided that the following conditions are met:--1. Redistributions of source code must retain the above copyright notice, this-   list of conditions and the following disclaimer.-2. Redistributions in binary form must reproduce the above copyright notice,-   this list of conditions and the following disclaimer in the documentation-   and/or other materials provided with the distribution.--THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
− test/resources/bsd3
@@ -1,24 +0,0 @@-Copyright (c) 2014-2018, Simon Hengel <sol@typeful.net>-All rights reserved.--Redistribution and use in source and binary forms, with or without-modification, are permitted provided that the following conditions are met:-    * Redistributions of source code must retain the above copyright-      notice, this list of conditions and the following disclaimer.-    * Redistributions in binary form must reproduce the above copyright-      notice, this list of conditions and the following disclaimer in the-      documentation and/or other materials provided with the distribution.-    * Neither the name of the <organization> nor the-      names of its contributors may be used to endorse or promote products-      derived from this software without specific prior written permission.--THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE-DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
− test/resources/bsd4
@@ -1,27 +0,0 @@-Copyright (c) 2014-2018, Simon Hengel <sol@typeful.net>-All rights reserved.--Redistribution and use in source and binary forms, with or without-modification, are permitted provided that the following conditions are met:-1. Redistributions of source code must retain the above copyright-   notice, this list of conditions and the following disclaimer.-2. Redistributions in binary form must reproduce the above copyright-   notice, this list of conditions and the following disclaimer in the-   documentation and/or other materials provided with the distribution.-3. All advertising materials mentioning features or use of this software-   must display the following acknowledgement:-   This product includes software developed by the <organization>.-4. Neither the name of the <organization> nor the-   names of its contributors may be used to endorse or promote products-   derived from this software without specific prior written permission.--THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ''AS IS'' AND ANY-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE-DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
− test/resources/mit
@@ -1,19 +0,0 @@-Copyright (c) 2014-2018 Simon Hengel <sol@typeful.net>--Permission is hereby granted, free of charge, to any person obtaining a copy-of this software and associated documentation files (the "Software"), to deal-in the Software without restriction, including without limitation the rights-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell-copies of the Software, and to permit persons to whom the Software is-furnished to do so, subject to the following conditions:--The above copyright notice and this permission notice shall be included in-all copies or substantial portions of the Software.--THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN-THE SOFTWARE.