After a long time of silence from upstream, apparently development after the currently in-tree-version 0.9.7 restarted. See here: ftp://ftp.suse.com/pub/projects/icecream/ or in the github-repository linked on their homepage. A few days ago, a 'final' version 1.0.0 has been released. Compared to 0.9.7, the changelog promises fixes to compiler-plugins and clang support. I tested bumping the ebuild myself after commenting out the patches and can at least confirm it compiled and installed fine, but I guess the patches should be adapted to the new release. Reproducible: Always
Created attachment 345086 [details] updated ebuild ...and here it is. It's the first shot of this updated ebuild. Compiles fine and works in my cluster with some gentoo and arch machines (mixed x86/x86_64 environment; the most with icecream-0.97, the scheduler is icecream-1.0.0) I rediffed some files and included the fix from bug #418377#c6 . Please check and report.
Created attachment 345088 [details, diff] unchanged but renamed patch
Created attachment 345090 [details, diff] unchanged but renamed patch
Created attachment 345092 [details, diff] unchanged but renamed patch (symlinks.patch)
Created attachment 345094 [details, diff] new patch to respect bug #418377 (icecc-create-env.patch)
Created attachment 345096 [details] adapted runscript location of logfiles changed in 1.0.0
In a smaller setup than yours (only gentoo x86_64 machines) I can confirm your ebuild+patches is working perfectly well. However, I realized the newly added clang-support to upstreams icecream is not yet present, because: - icecream-config has hardcoded "for a in gcc cc c++ g++". The original makefile adds "$CLANG_SYMLINK_WRAPPERS" which resolves to "clang clang++" if clang is present, maybe this can be added if an additional use-flag llvm is set? - icecc-create-env now supports --gcc and --clang, but these parameters are not yet used in our icecream-create-env-file. As my time is currently very limited, I sadly did not try adding the clang-symlinks manually yet.
I just tried adding clang{,++} symlinks and indeed environment was built and distributed, but was non-functioning, sadly the logfiles did not point out any problem, and ICECC-calls just returned broken-pipe messages. The interesting thing is that clang-support is done in a backward-compatible way: The environment is built with compilerwrappers called "g++" and "gcc" so older icecream-nodes which explicitly call gcc/g++ can also run clang. Other details I noted during upgrade of all nodes: - The logdir is not created by the ebuild, and if the logdir has the wrong owner, iceccd won't complain but just not write any log. Maybe the ebuild should explicitly create the logdir, with correct owner, and the runscript check permissions? - If /var/cache/icecream has wrong permissions, iceccd fails without any output / daemonizing, and the runscript only realizes during STOP that iceccd vanished silently. Again, a check of permissions should solve this easily.
It appears that a different ebuild for icecream-1.0.0 has been pushed into portage just today. It also install clang-symlinks and appears to work just fine. The env-checking tools have been dropped, and the path has been changed to /usr/libexec/icecc/bin. The installed runscript is called icecream-r2, which is still a bug I will file separately. My other notes are invalid for the new version, as it does not switch logdir.