]> git.pld-linux.org Git - packages/rpm-build-tools.git/blob - pearize.sh
- debug
[packages/rpm-build-tools.git] / pearize.sh
1 #!/bin/sh
2 # creates .spec using pear makerpm command.
3 # requires tarball to exist in ../SOURCES.
4 #
5 set -e
6 spec="$1"
7 echo "Processing $spec"
8 tarball=$(rpm -q --qf '../SOURCES/%{name}-%{version}.tgz\n' --specfile "$spec" | head -n 1 | sed -e 's,php-pear-,,')
9 template=$(rpm -q --qf '%{name}-%{version}.spec\n' --specfile "$spec" | head -n 1)
10
11 if [ ! -f $tarball ]; then
12         ./builder -g $spec
13 fi
14 pear makerpm $tarball
15 ls -l $spec $template
16
17 # adjust template
18 # remove false sectons
19 sed -i -e '/^%if 0/,/%endif/d' $template
20 # and reversed true sections
21 sed -i -e '/^%if !1/,/%endif/d' $template
22 # kill consequtive blank lines
23 # http://info.ccone.at/INFO/Mail-Archives/procmail/Jul-2004/msg00132.html
24 sed -i -e '/./,$ !d;/^$/N;/\n$/D' $template
25
26 rpm=$(rpm -q --qf '../RPMS/%{name}-%{version}-%{release}.noarch.rpm\n' --specfile "$spec" | head -n 1)
27 if [ ! -f $rpm ]; then
28         rpmbuild -bb $spec
29 fi
30
31 # prepare original spec
32 sed -i -e '
33 # simple changes
34 s/^%setup -q -c/%pear_package_setup/
35 /^BuildRequires:/s/rpm-php-pearprov >= 4.0.2-98/rpm-php-pearprov >= 4.4.2-11/g
36 /^%doc %{_pearname}-%{version}/d
37
38 # make new %install section
39 /^%install$/,/^%clean$/{
40 /^%\(install\|clean\)/p
41
42 /^rm -rf/{p
43 a\
44 install -d $RPM_BUILD_ROOT%{php_pear_dir}\
45 %pear_package_install\
46
47 }
48
49 d
50 }
51
52 ' $spec
53
54 instdoc=$(grep '^%doc install' $template || :)
55 sed -i -e "
56 /%defattr(644,root,root,755)/a\
57 $instdoc
58 " $spec
59
60 doc=$(grep '^%doc docs/%{_pearname}/' $template || :)
61 if [ "$doc" ]; then
62 sed -i -e '/^%doc/a\
63 %doc docs/%{_pearname}/*
64 ' $spec
65 fi
66
67 perl -pi -e '
68         if (/^%{php_pear_dir}/ && !$done) {
69                 print "%{php_pear_dir}/.registry/*.reg\n";
70                 $done = 1;
71         }
72 ' $spec
73
74 if grep -q '^%files tests' $template; then
75         sed -i -e '
76 /^%define.*date.*%/{
77 i\
78 %files tests\
79 %defattr(644,root,root,755)\
80 %{php_pear_dir}/tests/*\
81
82 }
83
84 /^%prep/{
85 i\
86 %package tests\
87 Summary:        Tests for PEAR::%{_pearname}\
88 Summary(pl):    Testy dla PEAR::%{_pearname}\
89 Group:          Development\
90 Requires:       %{name} = %{epoch}:%{version}-%{release}\
91 AutoReq:        no\
92 \
93 %description tests\
94 Tests for PEAR::%{_pearname}.\
95 \
96 %description tests -l pl\
97 Testy dla PEAR::%{_pearname}.\
98
99 }
100 ' $spec
101 fi
102
103 _noautoreq=$(grep '%define.*_noautoreq' $template || :)
104 if [ "$_noautoreq" ]; then
105         sed -i -e "/^BuildRoot:/{
106 a\\
107 \\
108 # exclude optional dependencies\\
109 $_noautoreq
110 }
111 " $spec
112
113         sed -i -e '/^%files$/{
114 i\
115 %post\
116 if [ -f %{_docdir}/%{name}-%{version}/optional-packages.txt ]; then\
117         cat %{_docdir}/%{name}-%{version}/optional-packages.txt\
118 fi\
119
120 }
121 ' $spec
122
123 fi
124
125 vim -o $spec $template
This page took 0.057409 seconds and 4 git commands to generate.