]>
Commit | Line | Data |
---|---|---|
41f876e5 ER |
1 | # vim:syn=spec:ai |
2 | ||
b32dfcf9 ER |
3 | # original macros.php macros |
4 | %define __php_provides /usr/lib/rpm/php.prov | |
5 | %define __php_requires /usr/lib/rpm/php.req | |
6 | ||
a3043860 ER |
7 | # pear install macros written by glen@pld-linux.org. |
8 | # All rights reserved. Permission to copy is hereby granted.. yada, yada, yada | |
9 | # | |
10 | # Usage: | |
11 | # %%pear_package_setup [-a #] [-n FMT] | |
12 | # | |
13 | # -a # - unpack SOURCE# instead of SOURCE0 | |
58da3b17 | 14 | # -n FMT - create builddir with FMT, instead of default %%{_pearname}-%%{version} |
27fa7f8b | 15 | # -z - unpack pear package and let pear use package.xml (not tarball) for install. use this for buggy packages. |
81e7bee9 | 16 | # -f - force pear install. use with care. |
a3043860 ER |
17 | # |
18 | # unpack PEAR package to %%{_builddir}/FMT. package is extracted with already | |
19 | # destination hierarchy. you should copy the tree to buildroot after | |
20 | # patching/reorganizing with %%pear_package_install. | |
21 | # | |
22 | # additionally BUILDROOT is stripped from files and files are converted to UNIX | |
23 | # line endings. | |
24 | # | |
25 | # the pear install process output is recorded to install.log, you should put it | |
26 | # to %%doc for latter debug or just information. | |
27 | # | |
28 | # additionally additional-packages.txt is produced if it was detected that the | |
29 | # package has optional dependencies. the file format is suitable of displaying | |
30 | # in %%post of a package. you should put this file to %%doc. noautocompressdoc is | |
31 | # automatically added for this file. | |
32 | # | |
81e7bee9 | 33 | %define pear_package_setup(a:n:zf) \ |
58da3b17 ER |
34 | %setup -q -c -T -n %{-n*}%{!-n:%{_pearname}-%{version}}\ |
35 | D=%{_builddir}/%{-n*}%{!-n:%{_pearname}-%{version}} \ | |
81e7bee9 | 36 | %{-z:tar zxf %{S:%{-a*}%{!-a:0}}; P=%{_pearname}-%{version}/package.xml; [ -f $P ] || P=package.xml} \ |
87e862a2 | 37 | pear \\\ |
41f876e5 | 38 | -d doc_dir=/docs \\\ |
87e862a2 ER |
39 | -d php_dir=%{php_pear_dir} \\\ |
40 | -d bin_dir=%{_bindir} \\\ | |
41f876e5 | 41 | -d data_dir=%{php_pear_dir}/data \\\ |
87e862a2 | 42 | -d test_dir=%{php_pear_dir}/tests \\\ |
41f876e5 ER |
43 | install \\\ |
44 | --installroot=${D} \\\ | |
45 | --offline \\\ | |
46 | --nodeps \\\ | |
81e7bee9 ER |
47 | %{-f:--force} \\\ |
48 | %{!-z:%{S:%{-a*}%{!-a:0}}}%{-z:$P} | tee install.log \ | |
203e6ddd | 49 | # make post message of optional packages \ |
9240b39b | 50 | grep 'can optionally use' install.log | sed -e 's,package "pear/,package "php-pear-,g;s,^pear/,php-pear-,' > optional-packages.txt \ |
bd91fbc8 | 51 | if [ -s optional-packages.txt ]; then \ |
4ff0af8b | 52 | awk -F'"' '/use package/{print $2}' optional-packages.txt | sed -e "s,_,/,g;s,php-pear-, 'pear(,;s,$,.*)'," | tr -d '\\\n' > _noautoreq \ |
bd91fbc8 ER |
53 | else \ |
54 | rm -f optional-packages.txt \ | |
55 | fi \ | |
41f876e5 ER |
56 | rm ./%{php_pear_dir}/.{lock,filemap} \ |
57 | # undos sources \ | |
58 | find . -type f -print0 | xargs -0 sed -i -e 's,\\r$,,' \ | |
87e862a2 | 59 | # bug in PEAR --installroot. \ |
dca16be0 | 60 | # http://pear.php.net/bugs/bug.php?id=5448 \ |
41f876e5 ER |
61 | grep -rl "${D}" ./{%{_bindir},%{php_pear_dir}}/* | xargs -r sed -i -e "s,${D},," \ |
62 | %{nil} | |
63 | ||
a3043860 ER |
64 | |
65 | # copies exctracted PEAR package structure to buildroot. also copies PEAR | |
66 | # registry file. | |
67 | # please use this macro, for future expansions being possible. | |
b32dfcf9 | 68 | %define pear_package_install() \ |
41f876e5 | 69 | cp -a ./%{php_pear_dir}/{.registry,*} $RPM_BUILD_ROOT%{php_pear_dir} \ |
4c0d9db9 | 70 | find $RPM_BUILD_ROOT%{php_pear_dir} '(' -name '*~' -o -name '*.orig' ')' | xargs -r rm -v \ |
bd91fbc8 ER |
71 | # help the developer out a little: \ |
72 | if [ -f _noautoreq ]; then \ | |
73 | echo "AutoReqdep detected:" \ | |
74 | echo "_noautoreq $(cat _noautoreq)" \ | |
75 | fi \ | |
41f876e5 | 76 | %{nil} |
ea5a95d2 | 77 | |
a3043860 ER |
78 | # default excludes for PEAR packages. |
79 | # if you need add something to the list use | |
80 | # %%{expand:%%%%define _noautocompressdoc %%{_noautocompressdoc} otherexcludes} in your specfile. | |
81 | ||
82 | # this file displayed in %post | |
b32dfcf9 | 83 | %define _noautocompressdoc optional-packages.txt |
087edc3b ER |
84 | |
85 | # don't provide tests | |
b32dfcf9 | 86 | %define _noautoprov 'pear(tests/.*)' |