Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 39309 - Please can we have php bits synchronised, built in one, and not all building separately from source?
Summary: Please can we have php bits synchronised, built in one, and not all building ...
Status: RESOLVED CANTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High enhancement (vote)
Assignee: PHP Bugs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-01-24 21:59 UTC by John Robinson
Modified: 2004-01-25 01:10 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description John Robinson 2004-01-24 21:59:22 UTC
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"

#
Comment 1 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2004-01-24 23:25:12 UTC
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).
Comment 2 John Robinson 2004-01-25 00:16:18 UTC
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 :-)
Comment 3 Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2004-01-25 01:10:16 UTC
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).