php.spec 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418
  1. ##
  2. ## php.spec -- OpenPKG RPM Specification
  3. ## Copyright (c) 2000-2003 The OpenPKG Project <http://www.openpkg.org/>
  4. ## Copyright (c) 2000-2003 Ralf S. Engelschall <rse@engelschall.com>
  5. ## Copyright (c) 2000-2003 Cable & Wireless <http://www.cw.com/>
  6. ##
  7. ## Permission to use, copy, modify, and distribute this software for
  8. ## any purpose with or without fee is hereby granted, provided that
  9. ## the above copyright notice and this permission notice appear in all
  10. ## copies.
  11. ##
  12. ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  13. ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  14. ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  15. ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
  16. ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  17. ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  18. ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  19. ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  20. ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  21. ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  22. ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  23. ## SUCH DAMAGE.
  24. ##
  25. # package information
  26. Name: php
  27. Summary: Personal HomePage (PHP)
  28. URL: http://www.php.net/
  29. Vendor: The PHP Project
  30. Packager: The OpenPKG Project
  31. Distribution: OpenPKG [BASE]
  32. Group: Language
  33. License: PHP
  34. Version: 4.3.4
  35. Release: 20040109
  36. # package options
  37. %option with_calendar no
  38. %option with_mysql no
  39. %option with_pgsql no
  40. %option with_gd no
  41. %option with_db no
  42. %option with_debug no
  43. %option with_pdflib no
  44. %option with_zlib no
  45. %option with_bzip2 no
  46. %option with_openssl no
  47. %option with_openldap no
  48. %option with_openldapsasl no
  49. %option with_mm no
  50. %option with_pcre no
  51. %option with_ftp no
  52. %option with_java no
  53. %option with_oci7 no
  54. %option with_oci8 no
  55. %option with_freetype no
  56. %option with_gettext no
  57. %option with_imap no
  58. %option with_xml no
  59. %option with_dom no
  60. %option with_bc no
  61. %option with_transsid no
  62. %option with_curl no
  63. %option with_mhash no
  64. %option with_wddx no
  65. %option with_gdbm no
  66. %option with_versioning no
  67. %option with_pear no
  68. %option with_snmp no
  69. # fixing implicit extension dependencies and correlations
  70. %if "%{with_pear}" == "yes"
  71. %undefine with_xml
  72. %define with_xml yes
  73. %endif
  74. %if "%{with_freetype}" == "yes"
  75. %undefine with_gd
  76. %define with_gd yes
  77. %endif
  78. %if "%{with_mysql}" == "yes" || "%{with_pdflib}" == "yes" || "%{with_gd}" == "yes" || "%{with_dom}" == "yes"
  79. %undefine with_zlib
  80. %define with_zlib yes
  81. %endif
  82. %if "%{with_pgsql}" == "yes"
  83. %undefine with_openssl
  84. %define with_openssl yes
  85. %endif
  86. # list of sources
  87. Source0: http://www.php.net/distributions/php-%{version}.tar.gz
  88. # build information
  89. Prefix: %{l_prefix}
  90. BuildRoot: %{l_buildroot}
  91. BuildPreReq: OpenPKG, openpkg >= 20030708, gcc, sed, flex, bison
  92. PreReq: OpenPKG, openpkg >= 20030708, MTA
  93. %if "%{with_mysql}" == "yes"
  94. BuildPreReq: mysql
  95. PreReq: mysql
  96. %endif
  97. %if "%{with_pgsql}" == "yes"
  98. BuildPreReq: postgresql
  99. PreReq: postgresql
  100. %endif
  101. %if "%{with_gd}" == "yes"
  102. BuildPreReq: gd >= 2.0.20, jpeg, png
  103. PreReq: gd >= 2.0.20, jpeg, png
  104. %endif
  105. %if "%{with_db}" == "yes"
  106. BuildPreReq: db
  107. PreReq: db
  108. %endif
  109. %if "%{with_pdflib}" == "yes"
  110. BuildPreReq: pdflib, jpeg, png
  111. PreReq: pdflib, jpeg, png
  112. %endif
  113. %if "%{with_zlib}" == "yes"
  114. BuildPreReq: zlib
  115. PreReq: zlib
  116. %endif
  117. %if "%{with_bzip2}" == "yes"
  118. BuildPreReq: bzip2
  119. PreReq: bzip2
  120. %endif
  121. %if "%{with_openssl}" == "yes"
  122. BuildPreReq: openssl
  123. PreReq: openssl
  124. %endif
  125. %if "%{with_openldap}" == "yes"
  126. BuildPreReq: openldap
  127. PreReq: openldap
  128. %if "%{with_openldapsasl}" == "yes"
  129. BuildPreReq: openldap::with_sasl = yes
  130. PreReq: openldap::with_sasl = yes
  131. %else
  132. BuildPreReq: openldap::with_sasl = no
  133. PreReq: openldap::with_sasl = no
  134. %endif
  135. %endif
  136. %if "%{with_mm}" == "yes"
  137. BuildPreReq: mm
  138. PreReq: mm
  139. %endif
  140. %if "%{with_pcre}" == "yes"
  141. BuildPreReq: pcre
  142. PreReq: pcre
  143. %endif
  144. %if "%{with_java}" == "yes"
  145. BuildPreReq: j2se
  146. PreReq: j2se
  147. %endif
  148. %if "%{with_freetype}" == "yes"
  149. BuildPreReq: freetype
  150. PreReq: freetype
  151. %endif
  152. %if "%{with_gettext}" == "yes"
  153. BuildPreReq: gettext, libiconv
  154. PreReq: gettext, libiconv
  155. %endif
  156. %if "%{with_imap}" == "yes"
  157. BuildPreReq: imap, openssl
  158. PreReq: imap, openssl
  159. %endif
  160. %if "%{with_xml}" == "yes"
  161. BuildPreReq: expat
  162. PreReq: expat
  163. %endif
  164. %if "%{with_dom}" == "yes"
  165. BuildPreReq: libxml, libxslt
  166. PreReq: libxml, libxslt
  167. %endif
  168. %if "%{with_curl}" == "yes"
  169. BuildPreReq: curl
  170. PreReq: curl
  171. %endif
  172. %if "%{with_mhash}" == "yes"
  173. BuildPreReq: mhash
  174. PreReq: mhash
  175. %endif
  176. %if "%{with_gdbm}" == "yes"
  177. BuildPreReq: gdbm, gdbm::with_ndbm = yes
  178. PreReq: gdbm, gdbm::with_ndbm = yes
  179. %endif
  180. %if "%{with_oci7}" == "yes" || "%{with_oci8}" == "yes"
  181. BuildPreReq: ORACLE
  182. %endif
  183. %if "%{with_snmp}" == "yes"
  184. BuildPreReq: snmp
  185. PreReq: snmp
  186. %endif
  187. AutoReq: no
  188. AutoReqProv: no
  189. %description
  190. PHP is an HTML-embedded scripting language. Much of its syntax is
  191. borrowed from C, Java and Perl with a couple of unique PHP-specific
  192. features thrown in. The goal of the language is to allow web
  193. developers to write dynamically generated pages quickly.
  194. This is the Command Line Interface (CLI) and Common Gateway
  195. Interface (CGI) version of PHP, intended for use in the "shebang"
  196. line ("#!%{l_prefix}/bin/php") of stand-alone PHP based programs
  197. and for use in the "shebang" line ("#!%{l_prefix}/cgi/php") of
  198. stand-alone webserver-independent CGI scripts.
  199. %prep
  200. %setup -q
  201. %{l_shtool} subst \
  202. -e 's;\(/include\)/freetype2;\1;' \
  203. configure \
  204. ext/gd/config.m4
  205. %build
  206. # configure package
  207. cflags="%{l_cflags -O}"
  208. cppflags="%{l_cppflags}"
  209. ldflags="%{l_ldflags}"
  210. libs=""
  211. %if "%{with_gdbm}" == "yes"
  212. libs="$libs -lndbm -lgdbm"
  213. %endif
  214. %if "%{with_gd}" == "yes"
  215. libs="$libs -lpng -lz"
  216. %endif
  217. %if "%{with_gettext}" == "yes"
  218. libs="$libs -liconv"
  219. %endif
  220. %if "%{with_openldap}" == "yes" && "%{with_openldapsasl}" == "yes"
  221. libs="$libs -lsasl2"
  222. %endif
  223. %if "%{with_imap}" == "yes"
  224. libs="$libs -lssl -lcrypto"
  225. %endif
  226. %if "%{with_db}" == "yes"
  227. libs="$libs -ldb"
  228. %endif
  229. %if "%{with_oci7}" == "yes" || "%{with_oci8}" == "yes"
  230. ORACLE_HOME="`%{l_prefix}/etc/rc --query oracle_home`"
  231. export ORACLE_HOME
  232. %endif
  233. CC="%{l_cc}" \
  234. CFLAGS="$cflags" \
  235. CPPFLAGS="$cppflags" \
  236. LDFLAGS="$ldflags" \
  237. LIBS="$libs" \
  238. PROG_SENDMAIL="%{l_prefix}/sbin/sendmail" \
  239. ./configure \
  240. --prefix=%{l_prefix} \
  241. --sysconfdir=%{l_prefix}/etc/php \
  242. --with-config-file-path=%{l_prefix}/etc/php \
  243. %if "%{with_calendar}" == "yes"
  244. --enable-calendar \
  245. %endif
  246. %if "%{with_mysql}" == "yes"
  247. --with-mysql=%{l_prefix} \
  248. %else
  249. --without-mysql \
  250. %endif
  251. %if "%{with_pgsql}" == "yes"
  252. --with-pgsql=%{l_prefix} \
  253. %else
  254. --without-pgsql \
  255. %endif
  256. %if "%{with_gd}" == "yes"
  257. --with-gd=%{l_prefix} \
  258. --with-jpeg-dir=%{l_prefix} \
  259. --with-png-dir=%{l_prefix} \
  260. %endif
  261. %if "%{with_freetype}" == "yes"
  262. --enable-gd-imgstrttf \
  263. --enable-gd-native-ttf \
  264. --with-freetype-dir=%{l_prefix} \
  265. %endif
  266. %if "%{with_db}" == "yes"
  267. --with-db4=%{l_prefix} \
  268. %endif
  269. %if "%{with_debug}" == "yes"
  270. --with-debug=yes \
  271. %else
  272. --with-debug=no \
  273. %endif
  274. %if "%{with_zlib}" == "yes"
  275. --with-zlib=%{l_prefix} \
  276. --with-zlib-dir=%{l_prefix} \
  277. %endif
  278. %if "%{with_bzip2}" == "yes"
  279. --with-bz2=%{l_prefix} \
  280. %endif
  281. %if "%{with_pdflib}" == "yes"
  282. --with-pdflib=%{l_prefix} \
  283. --with-jpeg-dir=%{l_prefix} \
  284. --with-png-dir=%{l_prefix} \
  285. %endif
  286. %if "%{with_openssl}" == "yes" || "%{with_openldap}" == "yes"
  287. --with-openssl=%{l_prefix} \
  288. %endif
  289. %if "%{with_openldap}" == "yes"
  290. --with-ldap=%{l_prefix} \
  291. %endif
  292. %if "%{with_mm}" == "yes"
  293. --with-mm=%{l_prefix} \
  294. --enable-session \
  295. %endif
  296. %if "%{with_pcre}" == "yes"
  297. --with-pcre=%{l_prefix} \
  298. %endif
  299. %if "%{with_ftp}" == "yes"
  300. --enable-ftp \
  301. %endif
  302. %if "%{with_java}" == "yes"
  303. --with-java=%{l_prefix}/libexec/j2se \
  304. %endif
  305. %if "%{with_oci7}" == "yes"
  306. --with-oracle \
  307. %endif
  308. %if "%{with_oci8}" == "yes"
  309. --with-oci8 \
  310. %endif
  311. %if "%{with_gettext}" == "yes"
  312. --with-gettext=%{l_prefix} \
  313. %endif
  314. %if "%{with_imap}" == "yes"
  315. --with-imap=%{l_prefix} \
  316. --with-imap-ssl=%{l_prefix} \
  317. %endif
  318. %if "%{with_xml}" == "yes"
  319. --enable-xml \
  320. --with-expat-dir=%{l_prefix} \
  321. %else
  322. --disable-xml \
  323. %endif
  324. %if "%{with_dom}" == "yes"
  325. --with-dom=%{l_prefix} \
  326. --with-dom-xslt=%{l_prefix} \
  327. --with-dom-exslt=%{l_prefix} \
  328. %endif
  329. %if "%{with_wddx}" == "yes"
  330. --enable-wddx \
  331. %endif
  332. %if "%{with_bc}" == "yes"
  333. --enable-bcmath \
  334. %endif
  335. %if "%{with_transsid}" == "yes"
  336. --enable-trans-sid \
  337. %endif
  338. %if "%{with_mhash}" == "yes"
  339. --with-mhash=%{l_prefix} \
  340. %endif
  341. %if "%{with_curl}" == "yes"
  342. --with-curl=%{l_prefix} \
  343. %endif
  344. %if "%{with_gdbm}" == "yes"
  345. --with-gdbm=%{l_prefix} \
  346. %endif
  347. %if "%{with_versioning}" == "yes"
  348. --enable-versioning \
  349. %endif
  350. %if "%{with_pear}" == "yes"
  351. --with-pear \
  352. %else
  353. --without-pear \
  354. %endif
  355. %if "%{with_snmp}" == "yes"
  356. --with-snmp=%{l_prefix} \
  357. %endif
  358. --enable-cli \
  359. --enable-cgi \
  360. --enable-force-cgi-redirect \
  361. --enable-discard-path \
  362. --enable-track-vars \
  363. --enable-memory-limit
  364. # build package
  365. %{l_make} %{l_mflags}
  366. %install
  367. # install package
  368. rm -rf $RPM_BUILD_ROOT
  369. %{l_make} %{l_mflags} install INSTALL_ROOT=$RPM_BUILD_ROOT
  370. # install CLI version
  371. # ("make install" incorrectly installs the CGI version into bin/php!)
  372. %{l_shtool} mkdir -f -p -m 755 \
  373. $RPM_BUILD_ROOT%{l_prefix}/bin \
  374. $RPM_BUILD_ROOT%{l_prefix}/man/man1
  375. %{l_shtool} install -c -s -m 755 \
  376. sapi/cli/php $RPM_BUILD_ROOT%{l_prefix}/bin/
  377. %{l_shtool} install -c -m 644 \
  378. sapi/cli/php.1 $RPM_BUILD_ROOT%{l_prefix}/man/man1/
  379. # (re)install CGI version
  380. %{l_shtool} mkdir -f -p -m 755 \
  381. $RPM_BUILD_ROOT%{l_prefix}/cgi
  382. %{l_shtool} install -c -s -m 755 \
  383. sapi/cgi/php $RPM_BUILD_ROOT%{l_prefix}/cgi/
  384. # install default configuration file
  385. %{l_shtool} mkdir -f -p -m 755 \
  386. $RPM_BUILD_ROOT%{l_prefix}/etc/php
  387. %{l_shtool} install -c -m 644 /dev/null \
  388. $RPM_BUILD_ROOT%{l_prefix}/etc/php/php.ini
  389. # strip down installation
  390. rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib/php/build
  391. rmdir $RPM_BUILD_ROOT%{l_prefix}/lib/php >/dev/null 2>&1 || true
  392. strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
  393. # determine installation files
  394. %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} \
  395. '%config %{l_prefix}/etc/php/*'
  396. %files -f files
  397. %clean
  398. rm -rf $RPM_BUILD_ROOT