haskell-opengl / OpenGL

Haskell bindings to OpenGL
http://www.haskell.org/haskellwiki/OpenGL
BSD 3-Clause "New" or "Revised" License
147 stars 26 forks source link

Packages from 2.2 to 2.8 included can't be installed #75

Closed shoooe closed 9 years ago

shoooe commented 9 years ago

I'm on Mac OS 10.10.2 and my OpenGL support is up to 3.3, theoretically. I therefore tried to install the OpenGL package 2.8.x, but it failed with:

[  3 of 200] Compiling Graphics.Rendering.OpenGL.Raw.EXT.SceneMarker ( src/Graphics/Rendering/OpenGL/Raw/EXT/SceneMarker.hs, dist/dist-sandbox-894b178b/build/Graphics/Rendering/OpenGL/Raw/EXT/SceneMarker.o )

src/Graphics/Rendering/OpenGL/Raw/EXT/SceneMarker.hs:30:44:
    parse error on input ‘glBeginScene’

Therefore I tried with 2.7, which failed with:

[1 of 1] Compiling Data.Tensor      ( src/Data/Tensor.hs, dist/dist-sandbox-894b178b/build/Data/Tensor.o )

src/Data/Tensor.hs:57:4:
    ‘typeOf1’ is not a (visible) method of class ‘Typeable1’

src/Data/Tensor.hs:57:28:
    Not in scope: ‘mkTyCon’
    Perhaps you meant ‘mkTyCon3’ (imported from Data.Typeable)

src/Data/Tensor.hs:60:4:
    ‘typeOf’ is not a (visible) method of class ‘Typeable’

src/Data/Tensor.hs:60:13: Not in scope: ‘typeOfDefault’

src/Data/Tensor.hs:94:4:
    ‘typeOf1’ is not a (visible) method of class ‘Typeable1’

src/Data/Tensor.hs:94:28:
    Not in scope: ‘mkTyCon’
    Perhaps you meant ‘mkTyCon3’ (imported from Data.Typeable)

src/Data/Tensor.hs:97:4:
    ‘typeOf’ is not a (visible) method of class ‘Typeable’

src/Data/Tensor.hs:97:13: Not in scope: ‘typeOfDefault’

src/Data/Tensor.hs:131:4:
    ‘typeOf1’ is not a (visible) method of class ‘Typeable1’

src/Data/Tensor.hs:131:28:
    Not in scope: ‘mkTyCon’
    Perhaps you meant ‘mkTyCon3’ (imported from Data.Typeable)

src/Data/Tensor.hs:134:4:
    ‘typeOf’ is not a (visible) method of class ‘Typeable’

src/Data/Tensor.hs:134:13: Not in scope: ‘typeOfDefault’

src/Data/Tensor.hs:168:4:
    ‘typeOf1’ is not a (visible) method of class ‘Typeable1’

src/Data/Tensor.hs:168:28:
    Not in scope: ‘mkTyCon’
    Perhaps you meant ‘mkTyCon3’ (imported from Data.Typeable)

src/Data/Tensor.hs:171:4:
    ‘typeOf’ is not a (visible) method of class ‘Typeable’

src/Data/Tensor.hs:171:13: Not in scope: ‘typeOfDefault’

src/Data/Tensor.hs:205:4:
    ‘typeOf1’ is not a (visible) method of class ‘Typeable1’

src/Data/Tensor.hs:205:28:
    Not in scope: ‘mkTyCon’
    Perhaps you meant ‘mkTyCon3’ (imported from Data.Typeable)

src/Data/Tensor.hs:208:4:
    ‘typeOf’ is not a (visible) method of class ‘Typeable’

src/Data/Tensor.hs:208:13: Not in scope: ‘typeOfDefault’

src/Data/Tensor.hs:242:4:
    ‘typeOf1’ is not a (visible) method of class ‘Typeable1’

src/Data/Tensor.hs:242:28:
    Not in scope: ‘mkTyCon’
    Perhaps you meant ‘mkTyCon3’ (imported from Data.Typeable)

src/Data/Tensor.hs:245:4:
    ‘typeOf’ is not a (visible) method of class ‘Typeable’

src/Data/Tensor.hs:245:13: Not in scope: ‘typeOfDefault’

src/Data/Tensor.hs:279:4:
    ‘typeOf1’ is not a (visible) method of class ‘Typeable1’

src/Data/Tensor.hs:279:28:
    Not in scope: ‘mkTyCon’
    Perhaps you meant ‘mkTyCon3’ (imported from Data.Typeable)

src/Data/Tensor.hs:282:4:
    ‘typeOf’ is not a (visible) method of class ‘Typeable’

src/Data/Tensor.hs:282:13: Not in scope: ‘typeOfDefault’

src/Data/Tensor.hs:316:4:
    ‘typeOf1’ is not a (visible) method of class ‘Typeable1’

src/Data/Tensor.hs:316:28:
    Not in scope: ‘mkTyCon’
    Perhaps you meant ‘mkTyCon3’ (imported from Data.Typeable)

src/Data/Tensor.hs:319:4:
    ‘typeOf’ is not a (visible) method of class ‘Typeable’

src/Data/Tensor.hs:319:13: Not in scope: ‘typeOfDefault’

Same error goes for 2.5. So I tried with 2.4, and what I got was:

Graphics/Rendering/OpenGL/GL/Hints.hs:25:8:
    Could not find module ‘Graphics.Rendering.OpenGL.Raw.EXT.Cmyka’
    Perhaps you meant
      Graphics.Rendering.OpenGL.Raw.EXT.CMYKA (from OpenGLRaw-1.5.0.0)
      Graphics.Rendering.OpenGL.Raw.EXT.ABGR (from OpenGLRaw-1.5.0.0)
      Graphics.Rendering.OpenGL.Raw.EXT.BGRA (from OpenGLRaw-1.5.0.0)
    Use -v to see a list of the files searched for.

Graphics/Rendering/OpenGL/GL/PixelFormat.hs:23:8:
    Could not find module ‘Graphics.Rendering.OpenGL.Raw.EXT.Abgr’
    Perhaps you meant
      Graphics.Rendering.OpenGL.Raw.EXT.ABGR (from OpenGLRaw-1.5.0.0)
      Graphics.Rendering.OpenGL.Raw.EXT.BGRA (from OpenGLRaw-1.5.0.0)
      Graphics.Rendering.OpenGL.Raw.EXT (from OpenGLRaw-1.5.0.0)
    Use -v to see a list of the files searched for.

And the same goes for 2.3, and 2.2 gave me:

Graphics/Rendering/OpenGL/GL/IOState.hs:31:10: Warning:
    ‘IOState’ is an instance of Monad but not Applicative - this will become an error in GHC 7.10, under the Applicative-Monad Proposal.
[ 3 of 86] Compiling Graphics.Rendering.OpenGL.GL.PeekPoke ( Graphics/Rendering/OpenGL/GL/PeekPoke.hs, dist/dist-sandbox-894b178b/build/Graphics/Rendering/OpenGL/GL/PeekPoke.o )
[ 4 of 86] Compiling Graphics.Rendering.OpenGL.GL.Tensor ( Graphics/Rendering/OpenGL/GL/Tensor.hs, dist/dist-sandbox-894b178b/build/Graphics/Rendering/OpenGL/GL/Tensor.o )

Graphics/Rendering/OpenGL/GL/Tensor.hs:27:18:
    Module ‘Data.Typeable’ does not export ‘mkTyCon’

Graphics/Rendering/OpenGL/GL/Tensor.hs:27:54:
    Module ‘Data.Typeable’ does not export ‘typeOfDefault’

Is there a way to install this package so that it's possible to use it in a 3.3 context?

svenpanne commented 9 years ago

All OpenGL API entries are resolved dynamically at runtime, so you can install any version of the OpenGL packages, you just can't use more recent features in your program/library. So just try the latest and greatest 2.12.0.0 version, it should install cleanly. If not, that's a bug and I need more details, like e.g. the exact commandlines used, the output of cabal exec ghc-pkg list, etc. It would be great to hear about success/failure with 2.12.0.0.

It could very well be the case that older package versions don't work anymore, there have been tons of changes in the ecosystem, e.g. Mac OS X switching from GCC to clang, GHC changes, tons of changes to dependent packages, etc. I simply don't have the development cycles to fix these things retroactively, and as explained above, there shouldn't be a need to do this.

shoooe commented 9 years ago

I tried with the latest and it worked just fine. Thanks.