IT練習ノート

IT関連で調べたこと(実際は嵌ったこと)を書いています。

geojsonパッケージのインストール

aesonパッケージの上のレイヤでGeoJSONを扱うためのパッケージです。

geojson: A thin GeoJSON Layer above the aeson library

hackageでは2018/02時点で、1.3.1ですが、hackageにアップロードされているモジュールと、githubにあるモジュールに差異があるようです。

hackageではDependencies aeson (>=0.8 && <1.0)となっていますが、github上ではaeson >= 0.8となっています。aeson自体も1.2.4ですので、githubから取得したほうが良いでしょう。

また、geojson自体の依存関係も最新に追いついていないようです。

validationパッケージに依存していますが、最新の0.6では、Validationがエクスポートされていないということで、geojsonのビルドに失敗します。

とりあえずは、cabalファイルを下記のように書き換えてビルドはできるようになりました。validationのパッケージを固定して、ワーニングは許容するようにしました。

(本来はgeojsonのほうを直すべきでしょうがわかりませんでした。)

$ git diff
diff --git a/geojson.cabal b/geojson.cabal
index 0c772e7..ec0d23e 100644
--- a/geojson.cabal
+++ b/geojson.cabal
@@ -41,7 +41,7 @@ library
                     ,   text            >= 1.2
                     ,   scientific      >= 0.2.0
                     ,   transformers    >= 0.3
-                    ,   validation      >= 0.5
+                    ,   validation      >= 0.5 && <0.6
                     ,   vector          >= 0.10
     exposed-modules:    Data.Geospatial
                     ,   Data.LinearRing
@@ -61,7 +61,7 @@ library
                     ,   Data.Geospatial.Internal.GeoPosition
     default-language:   Haskell2010
     ghc-options:        -Wall
-                        -Werror
+--                        -Werror

 test-suite              geojson-test
     hs-source-dirs:     test
@@ -86,7 +86,7 @@ test-suite              geojson-test
                     ,   Data.Geospatial.Internal.GeometryTests
     default-language:   Haskell2010
     ghc-options:        -Wall
-                        -Werror
+--                        -Werror
                         -threaded
                         -O2

@@ -98,6 +98,6 @@ test-suite              geojson-hlint
                     ,   hlint
     default-language:   Haskell2010
     ghc-options:        -Wall
-                        -Werror
+--                        -Werror
                         -threaded
                         -O2