Created attachment 153319 [details] hs-gtk build log GHC builds with gcc5 and most hs- ports build just fine. There is at least one exception, and that is hs-gtk. I don't have a fix, but I thought I would report it and upload the load so that the issue is known.
Auto-assigned to maintainer haskell@FreeBSD.org
Thank you for reporting the problem. This looks like an upstream issue, though, please note that the version of the package in the ports tree (0.12.5.7) is not the latest (0.13.4). Perhaps it would be worth to move to a more recent version to see if this is still a problem there.
It couldn't hurt to update the version. At worst we would be in the same spot. :)
Indeed :-) I could do this as part of upgrading the whole gtk2hs to 0.13, probably.
So after fixing a bunch of ports and forcing others to be built by the base gcc47, hs-gtk is now the top port in terms of causing ports to be skipped in poudriere. Does hs-gtk use the C pre-processor by any chance? the cpp changed behavior starting with gcc 5 so maybe that's what is causing the breakage.
I am not sure if the gtk2hs-buildtools (which is used by gtk for preprocessing) use cpp of GCC, but GHC (the Haskell compiler) certainly does. But this should have been causing much more headaches if that was a problem for GHC. For now, I do not have any ideas on this subject -- I have brought many of the gtk2hs ports up to date on my development machines, but in order to make it push to the development overlay, I shall also fight with the dependencies, such as leksah to see if they are willing to build with them (and fix them if needed). I do not like having broken ports around either. Hope I can do this soon.
(In reply to Gabor Pali from comment #6) But this should have been causing much more headaches if that was a problem for GHC. Not necessarily; if the cpp is used correctly there's no issue. What I've seen is when somebody uses cpp for non-conventional tasks like as a template or some other thing -- and then the output isn't expected. the fix is just add "-P" to the arguments of cpp, then it will behave as before. I'll take a look at buildtools.
Created attachment 154661 [details] fix cpp for hs-gtk Yes, the hypothesis was correct; the behavior change in CPP was responsible for hs-gtk breaking. The attached patch to devel/hs-gtk2hs-buildtools enables hs-gtk to build, and everything else that depends on hs-gtk as well.
Gabor, what do you think about the patch?
Oops, sorry, this has probably escaped my humble attention. I have not tested it, but other than that it looks good to me. So, feel free to commit it if this helps to build hs-gtk properly (and does not break anything else).
A commit references this bug: Author: marino Date: Mon Mar 30 10:43:06 UTC 2015 New revision: 382648 URL: https://svnweb.freebsd.org/changeset/ports/382648 Log: devel/hs-gtk2hs-buildtools: Fix build of www/hs-gtk with gcc5 The Haskell gtk buildtools use CPP. The CPP on gcc5 has changed behavior, thus preventing hs-gtk from successfully building with gcc5. By adding the -P argument when invoking "cpp" which forces the old behavior, hs-gtk can be built by all versions of gcc. PR: 197924 Submitted by: marino Approved by: haskell@ (pgj@) Changes: head/devel/hs-gtk2hs-buildtools/Makefile head/devel/hs-gtk2hs-buildtools/files/patch-c2hs_toplevel_C2HSConfig.hs
Thanks. I was not aware of any fallout from the change, so I went ahead and committed it.