cabal init allows me to specify a license that it does not recognize, by using option 11. However, cabal check, which is used by hackage, rejects an unrecognized field, such as ISC.
Thanks for the report. As things currently stand, I'm not sure whether this counts as a bug (or what should be done about it). The specification of the .cabal format allows unrecognized licenses. However, cabal check does not check whether a .cabal file is valid, but whether it would be accepted by Hackage. Hackage apparently does not allow arbitrary licenses. That is, the policy (as implemented -- whether intentional or not) is that only packages with one of a list of recognized license types may be distributed on Hackage.
So it is not technically an inconsistency. The question is whether Hackage should allow unrecognized licenses. I will let others weigh in there.
Ross Paterson told me Hackage was using cabal check to determine if it should accept a package. It seems that we have a circular dependency here ;-)
Haha! OK, point taken. =) In any case, it seems to me there are three options:
I have chimed in here since as the maintainer of cabal init, I would implement option (2) if that is decided upon. But I am really not sure which option is best. Perhaps someone else with more knowledge about Hackage and the history/reasoning behind the current choice can comment.
My only concern with (2) is that unrecognized licences is a feature that has been added in the last version of cabal init. This addresses the following issue: http://www.haskell.org/pipermail/cabal-devel/2011-June/007568.html
On another note, I do not see (3) as an option. Offering a choice in cabal init that cannot be uploaded on Hackage is not really friendly.
Ah, I see. For reference, it looks like the unrecognized license feature was added by @dcoutts in @d448be2.