OK, I need some help understanding virtual dependencies. The Web HOW-TO says to let nginx be pulled in if you use tengine (seems horrible) since most apps don't know what tengine is. BTW ... the existing instructions are horribly managed for the mail HOW-TO. I'm going to look into cleaning that up since I finally got it all working well, but had to manually edit just about everything! Likewise, getting newer PHP functionality out of tengine/nginx took a bit of regex magic that needs to go into a HOW-TO. And there should be one for SSL as well. Thats non-trivial with the newer exploits (I now score A+ on ssllabs.com).
But, shouldn't the ebuild take care of that as a virtual dependency? For example, take roundcube. I have nginx and apache masked (nginx is installed but not running since I use tengine, and I don't want apache installed or nginx to be upgraded). I did -auDNv roundcube and it wanted to pull in lighttpd as a web server! It saw that apache and nginx were masked and went to the next option.
So, I looked at the roundcube ebuild and it is looking for virtual/httpd-php. OK, great. That looks correct. So I pull in that ebuild. It has an RDEPEND line that wants fpm, apache2 or cgi. Perfect!
I add -t to my emerge line and it wants virtual/httpd-cgi which is what is pulling in other web servers. I think the need_httpd_cgi is at fault. Is this a bug, or is it intentional. Roundcube works fine and I have nothing CGI right now. Its all via fpm.
Now, I have fpm installed. Its working just fine with tengine. Roundcube is installed and working. I was just checking to see if updates had made it into the tree. Why is it still trying to pull in a webserver? Shouldn't fpm satisfy the RDEPEND and that's it? What am I missing?