Stop! Tickets are now managed at GitHub.

Please enter new tickets, and find and edit existing tickets there:

Ticket #13 (new defect)

Opened 8 years ago

Last modified 5 years ago

Cabal won't track tool dependencies

Reported by: dons Owned by: dons
Priority: major Milestone: 2012.4.0.0
Component: Platform Keywords:
Cc: markl@…


The platform specifies developer tools that should be installed on the system:

  • haddock
  • happy
  • alex

etc. Currently, there is no way to specify this in the platform .cabal file (thus the .cabal file is not a complete description of the requirements).

We need to find a way to have:

  • cabal-install install such tools
  • 'register' them in some way

Change History

  Changed 8 years ago by claus

  • owner set to SvenPanne
  • component set to GLUT

All of haddock, happy, and alex are on hackage.

Though the peculiarities of GHC Api clients mean that haddock isn't much use standalone anymore (it needs to be built with the exact GHC you want to use it with, and it needs to be run over all the packages you want to include in the platform, in advance).

I'm not sure why cabal treats applications differently than libraries in terms of registering their package info, but as a workaround, one could imagine a convention by which every application also provides a library with meta-information (the path to the installed executable, as a minimum). Similar to the ghc-paths package (though ghc itself isn't on hackage).

Something like:

module Application.Haddock where
path = "<where cabal installed haddock executable>"

module Application.Happy where
path = "<where cabal installed happy executable>"

module Application.Alex where
path = "<where cabal installed alex executable>"

That would enable tracking by Cabal, as well as support haddock,alex,happy clients in figuring out where those executables are. This, in turn, would allow to simplify Cabal, which currently has a hardwired list of builtinPrograms for this purpose.

I am sure this has been discussed before, but I can't find either thread or ticket:-(

follow-up: ↓ 3   Changed 8 years ago by claus

  • owner changed from SvenPanne to dons
  • component changed from GLUT to Platform

Something screwy is going on with this trac instance. I didn't set component or owner, yet they now show as GLUT and SvennPanne (has anyone made these the default here?).

Btw, there don't seem to be hackage/cabal components, so I've set this to platform..

in reply to: ↑ 2   Changed 8 years ago by duncan

Replying to claus:

Something screwy is going on with this trac instance. I didn't set component or owner, yet they now show as GLUT and SvennPanne (has anyone made these the default here?).

Odd indeed. There was no explicit default set but GLUT was first in the list so perhaps we were getting a default anyway. I've now added an explicit blank component as default. Hope that'll be better.

Note the Cabal ticket this ticket refers to is

  Changed 7 years ago by refold

  • milestone changed from 2009.4.0 to 2010.2.0.0

Milestone 2009.4.0 deleted

  Changed 5 years ago by MtnViewMark

  • cc markl@… added
  • milestone changed from 2010.2.0.0 to 2012.4.0.0

The plan now is to use other master files to define the versions of HP components, including the supplied tools. The .cabal file will be built from that. It will remain true that the .cabal file will therefore still not formally spec. the tool dependencies. See ticket 15 for more information on that particular aspect.

Note: See TracTickets for help on using tickets.