The php, mod_php and php_cgi ebuilds all build from source; well I guess they would, seeing as they're separate ebuilds, but can we have a way of putting these together so that (1) I don't have to build PHP's enormous source two or three times on my slow K6 any time there's any update, and perhaps more to everyone else's taste (2) so that if a Gentoo user has more than one, useful updates ripple to all at once? Once upon a time, actually not very long ago (a few months ago but before I went Gentoo), on a distro far far away, I abandoned using the prepackaged binaries because I never got a PHP with the options I liked, and I rebuilt my PHP (usually with the same configure options) whenever any significant updates happened - which was fairly frequently - and I got fresh binaries for my mod_php and CLI php off one build. Then I saw the light that is Gentoo where a few USE flags made sure my PHP and everything else got built the way I wanted and I only got what I asked for instead of ending up with several gigs of packages that apparently I couldn't do without despite my never using them and their being full of nasty holes... Oh sorry I went off on one. Well you know what I mean. Basically I'd rather my PHP binaries - CLI, mod, cgi or whatever - were synchronised, preferably by only building them once. Hope this isn't a FAQ. Reproducible: Always Steps to Reproduce: 1. Ummm. `emerge php mod_php`. 2. 3. Actual Results: PHP built from source (as expected) twice (unnecessarily) and ccache wouldn't help (much) as the ebuilds are different. Expected Results: By some trick - something like USE="i_like_php_cli i_like_php_fcgi i_like_php_nsapi" - saying `emerge php` should have produced the right things :-) Probably not necessary for a suggestion like this, but still, it's asked for: # emerge info Portage 2.0.49-r20 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r9, 2.4.23_pre8-gss) ================================================================= System uname: 2.4.23_pre8-gss i586 AMD-K6(tm) 3D processor Gentoo Base System version 1.4.3.10 distcc 2.11.1 i586-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-march=k6-2 -O2 -pipe -fomit-frame-pointer -falign-functions" CHOST="i586-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/bind /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-march=k6-2 -O2 -pipe -fomit-frame-pointer -falign-functions" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache distcc sandbox" GENTOO_MIRRORS="http://ftp.gentoo.skynet.be/pub/gentoo/ http://gentoo.mirrors.pair.com/ http://ftp.easynet.nl/mirror/gentoo/" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnow alsa apache2 apm arts berkdb crypt cups emacs encode foomaticdb gd gdbm gif gpm gtk2 imap imlib java jikes jpeg ldap libg++ libwww mad mikmod mmx mpeg mysql ncurses nls oggvorbis oss pam pdflib perl png python quicktime readline samba sasl sdl slang spell ssl svga tcpd tiff truetype usb x86 xml xml2 xmms zlib" #
unfortunely, PHP has limits as to just how many and which combinations of SAPIs it can build. it can give you usually cli+cgi+embed+servlet+(pick any ONE other SAPI). as an example of what it doesn't allow it refuses to build the apache1 + apache2 SAPIs at the same time or the two variations of the apache2 module (filter and handler). i have a test server with both apache1 and apache2 installed (and we mostly support having both because users want it).
Oh well, I guess this suggestion is a no-no then. Darn. Err, I guess even now saying `emerge mod_php` only produces one mod_php (for apache 1 or 2)? Even if the PHP build system isn't quite clever enough for all possibilities, I'd still think the default thing should be to build a suitable module for your favourite server (that is, whatever's installed, if any, or whatever's specified, as now) plus CLI and CGI versions (unless otherwise specified). On the other hand if you built that kind of ebuild twice (for two different servers e.g. apaches 1 and 2) you'd end up with two CLI and CGI binaries which ought to be the same but may not be, so there's a fresh problem. Aaargh! OK it ain't badly broken so I'll just shut up now, but thanks for your feedback. I guess this is a WONTFIX as Bugzilla doesn't appear to have a STUPIDIDEA resolution :-)
strangely, your name is an anagram of mine. Robin Johnson John Robinson for mod_php currently it does some neat stuff apache1 installed -> build apache1 module in SLOT=1 apache2 installed -> build apache2 module in SLOT=2 if both are installed, then base decision on USE=apache2 (and the user has to repeat it).