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