blob: b90f7b314c2f28ddded30b7ba03a2fc18a7474a7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
|
# Copyright 2003 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License, v2 or later
# Author: Robin H. Johnson <robbat2@gentoo.org>
# $Header: /var/cvsroot/gentoo-x86/eclass/php.eclass,v 1.9 2003/04/25 14:42:00 coredumb Exp $
# This EBUILD is totally masked presently. Use it at your own risk. I know it
# is severely broken, but I needed to get a copy into CVS to pass around and
# repoman was complaining at me too much
# TODO LIST
# * Finish install cleanup
# * USE flags
# - needs to get cleaned up
# - dependancies on more things for correctness
# - JPEG/PNG/CJK correctness checking
# * SAPI choosing inside eclass
# - effects configure line and install code
# * Java still flakey
# - look at the long gcc line with repeats of java stuff
# - needs heavy testing
#
#
#
#
#
inherit eutils flag-o-matic
ECLASS=php
INHERITED="$INHERITED $ECLASS"
EXPORT_FUNCTIONS src_unpack src_compile src_install
MY_P=php-${PV}
S=${WORKDIR}/${MY_P}
[ -z "$HOMEPAGE" ] && HOMEPAGE="http://www.php.net/"
[ -z "$LICENSE" ] && LICENSE="PHP"
[ -z "$SRC_URI" ] && SRC_URI="http://us3.php.net/distributions/${MY_P}.tar.bz2"
[ -z "$PROVIDE" ] && PROVIDE="virtual/php"
IUSE="${IUSE} berkdb cjk crypt curl exif firebird flash freetds gd gdbm imap informix java jpeg ldap libwww mcal mysql nls oci8 odbc pam pdflib pic png postgres qt snmp spell ssl tiff truetype X xml xml2 zlib"
IUSE="${IUSE} phpbcmath phpbz2 phpcalender phpdbase phpftp phpiconv phpmimemagic phpsafemode phpsockets phpsysv phpwddx phpmemlimit"
#removed: gmp
#causes breakage
DEPEND="${DEPEND}
X? ( virtual/x11 )
berkdb? ( >=sys-libs/db-3 )
crypt? ( >=dev-libs/libmcrypt-2.4 >=app-crypt/mhash-0.8 )
curl? ( >=net-ftp/curl-7.10.2 )
firebird? ( >=dev-db/firebird-1.0 )
flash? ( media-libs/libswf >=media-libs/ming-0.2a )
freetds? ( >=dev-db/freetds-0.53 )
gd? ( media-libs/libgd )
gdbm? ( >=sys-libs/gdbm-1.8.0 )
imap? ( >=net-mail/uw-imap-2001a-r1 )
java? ( >=virtual/jdk-1.4 )
jpeg? ( >=media-libs/jpeg-6b )
ldap? ( >=net-nds/openldap-1.2.11 )
libwww? ( >=net-libs/libwww-5.3.2 )
mcal? ( dev-libs/libmcal )
mysql? ( >=dev-db/mysql-3.23.26 )
nls? ( sys-devel/gettext )
odbc? ( >=dev-db/unixODBC-1.8.13 )
pam? ( >=sys-libs/pam-0.75 )
pdflib? ( >=media-libs/pdflib-4.0.1-r2 )
png? ( >=media-libs/libpng-1.2.5 )
postgres? ( >=dev-db/postgresql-7.1 )
qt? ( x11-libs/qt )
snmp? ( >=net-analyzer/ucd-snmp-4.2.3 )
spell? ( app-text/aspell )
ssl? ( >=dev-libs/openssl-0.9.5 )
tiff? ( >=media-libs/tiff-3.5.5 )
truetype? ( ~media-libs/freetype-1.3.1 >=media-libs/t1lib-1.3.1 )
xml2? ( dev-libs/libxml2 )
xml? ( >=net-libs/libwww-5.3.2 >=app-text/sablotron-0.96 )
"
RDEPEND="${RDEPEND}
xml? ( >=app-text/sablotron-0.95-r1 >=net-libs/libwww-5.3.2 )
qt? ( >=x11-libs/qt-2.3.0 )"
#fixes bug #14067
replace-flags "-march=k6*" "-march=i586"
php_src_unpack() {
ewarn "This EBUILD is totally masked presently. Use it at your own risk. I know it"
ewarn "is severely broken, but I needed to get a copy into CVS to pass around and"
ewarn "repoman was complaining at me too much"
unpack ${MY_P}.tar.bz2
cd ${S}
# Configure Patch for wired uname -a
mv configure configure.old
cat configure.old | sed "s/PHP_UNAME=\`uname -a\`/PHP_UNAME=\`uname -s -n -r -v\`/g" > configure
chmod 755 configure
# fix PEAR installer
cp pear/PEAR/Registry.php pear/PEAR/Registry.old
sed "s:\$pear_install_dir\.:\'$D/usr/lib/php/\' . :g" pear/PEAR/Registry.old > pear/PEAR/Registry.php
#if [ "`use java`" ] ; then
# cp configure configure.orig
# cat configure.orig | \
# sed -e 's/LIBS="-lttf $LIBS"/LIBS="-lttf $LIBS"/' \
# > configure
# cp ext/gd/gd.c ext/gd/gd.c.orig
# cat ext/gd/gd.c.orig | \
# sed -e "s/typedef FILE gdIOCtx;//" \
# > ext/gd/gd.c
# if [ "$JAVAC" ];
# then
# cp ext/java/Makefile.in ext/java/Makefile.in.orig
# cat ext/java/Makefile.in.orig | \
# sed -e "s/^\tjavac/\t\$(JAVAC)/" \
# > ext/java/Makefile.in
# fi
#fi
# pear's world writable files is a php issue fixed in their cvs tree.
# http://bugs.php.net/bug.php?id=20978
# http://bugs.php.net/bug.php?id=20974
epatch ${FILESDIR}/pear_config.diff || die "epatch failed"
}
#export this here so we can use it
myconf="${myconf}"
php_src_compile() {
use berkdb && myconf="${myconf} --with-db3=/usr"
#---
use cjk && myconf="${myconf} --enable-mbstring --enable-mbregex"
#use cjk && myconf="${myconf} --enable-mbstring"
#---
use curl && myconf="${myconf} --with-curl"
use crypt && myconf="${myconf} --enable-mcrypt=/usr --with-mhash"
use firebird && myconf="${myconf} --with-interbase=/opt/interbase"
use flash && myconf="${myconf} --with-swf=/usr --with-ming=/usr"
use freetds && myconf="${myconf} --with-sybase=/usr"
use gd && myconf="${myconf} --with-gd=/usr"
use gdbm && myconf="${myconf} --with-gdbm=/usr"
use java && myconf="${myconf} --with-java=${JAVA_HOME}"
#--- check out this weirdness
#use jpeg && myconf="${myconf} --with-jpeg-dir=/usr"
#use jpeg && myconf="${myconf} --with-jpeg-dir=/usr/lib" || myconf="${myconf} --without-jpeg"
use jpeg && myconf="${myconf} --with-jpeg-dir=/usr" || myconf="${myconf} --without-jpeg"
#---
use libwww && myconf="${myconf} --with-xml" || myconf="${myconf} --disable-xml"
use ldap && myconf="${myconf} --with-ldap"
use mysql && myconf="${myconf} --with-mysql=/usr" || myconf="${myconf} --without-mysql"
use nls && myconf="${myconf} --with-gettext" || myconf="${myconf} --without-gettext"
use odbc && myconf="${myconf} --with-unixODBC=/usr"
use pam && myconf="${myconf} --with-pam"
use pic && myconf="${myconf} --with-pic"
use pdflib && myconf="${myconf} --with-pdflib=/usr"
#---
use png && myconf="${myconf} --with-png-dir=/usr"
use png || myconf="${myconf} --without-png"
#---
use postgres && myconf="${myconf} --with-pgsql=/usr"
use qt && myconf="${myconf} --with-qtdom"
use snmp && myconf="${myconf} --with-snmp --enable-ucd-snmp-hack"
use spell && myconf="${myconf} --with-pspell"
use ssl && myconf="${myconf} --with-openssl"
use tiff && myconf="${myconf} --with-tiff-dir=/usr" || myconf="${myconf} --without-tiff"
use truetype && myconf="${myconf} --with-ttf --with-t1lib"
use xml2 && myconf="${myconf} --with-dom"
use zlib && myconf="${myconf} --with-zlib --with-zlib-dir=/usr/lib"
use exif && myconf="${myconf} --enable-exif"
use mcal && myconf="${myconf} --with-mcal=/usr"
# optional support for oracle oci8
use oci8 && [ -n "$ORACLE_HOME" ] && myconf="${myconf} --with-oci8=${ORACLE_HOME}"
# optional support for informix
use informix && [ -n "$INFORMIXDIR" ] && myconf="${myconf} --with-informix=${INFORMIXDIR}"
use imap && use ssl && \
if [ "`strings ${ROOT}/usr/lib/c-client.a \ | grep ssl_onceonlyinit`" ] ; then
echo "Compiling imap with SSL support"
myconf="${myconf} --with-imap --with-imap-ssl"
else
echo "Compiling imap without SSL support"
myconf="${myconf} --with-imap"
fi
LDFLAGS="$LDFLAGS -ltiff -ljpeg"
if [ "`use X`" ] ; then
myconf="${myconf} --with-xpm-dir=/usr/X11R6"
LDFLAGS="$LDFLAGS -L/usr/X11R6/lib"
fi
if [ "`use xml`" ] ; then
export LIBS="-lxmlparse -lxmltok"
myconf="${myconf} --with-sablot=/usr"
myconf="${myconf} --enable-xslt"
myconf="${myconf} --with-xslt-sablot"
myconf="${myconf} --with-xmlrpc"
fi
#local use flags
use phpbcmath && myconf="${myconf} --enable-bcmath"
use phpbz2 && myconf="${myconf} --with-bz2"
use phpcalender && myconf="${myconf} --enable-calendar"
use phpdbase && myconf="${myconf} --enable-dbase"
use phpftp && myconf="${myconf} --enable-ftp"
use phpiconv && myconf="${myconf} --with-iconv"
use phpmimemagic && myconf="${myconf} --enable-mime-magic"
use phpsafemode && myconf="${myconf} --enable-safe-mode"
use phpsockets && myconf="${myconf} --enable-sockets"
use phpsysv && myconf="${myconf} --enable-sysvsem --enable-sysvshm"
use phpwddx && myconf="${myconf} --enable-wddx"
use phpmemlimit && myconf="${myconf} --enable-memory-limit"
myconf="${myconf} \
--enable-inline-optimization \
--enable-track-vars \
--enable-trans-sid \
--enable-versioning \
--with-config-file-path=/etc/php4"
econf \
${myconf} || die "bad ./configure"
emake || die "compile problem"
}
#export this here so we can use it
installtargets="${installtargets}"
php_src_install() {
addwrite /usr/share/snmp/mibs/.index
installtargets="${installtargets} install-pear install-headers install-programs install-build install-modules"
emake INSTALL_ROOT=${D} ${installtargets} || die
# put make here
dodoc CODING_STANDARDS LICENSE EXTENSIONS
dodoc RELEASE_PROCESS README.* TODO* NEWS
dodoc ChangeLog* *.txt
#install scripts
exeinto /usr/bin
doexe ${S}/pear/scripts/phpize
doexe ${S}/pear/scripts/php-config
doexe ${S}/pear/scripts/phpextdist
# PHP module building stuff
mkdir ${D}/usr/lib/php/build
insinto /usr/lib/php/build
doins build/* pear/pear.m4 acinclude.m4 configure.in Makefile.global scan_makefile_in.awk
#revert Pear patch
rm ${D}/usr/lib/php/PEAR/Registry.php
mv ${S}/pear/PEAR/Registry.old ${D}/usr/lib/php/PEAR/Registry.php
}
|