/[packages]/cauldron/pcre/current/SPECS/pcre.spec
ViewVC logotype

Contents of /cauldron/pcre/current/SPECS/pcre.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 821978 - (show annotations) (download)
Tue May 12 23:10:16 2015 UTC (5 years, 1 month ago) by neoclust
File size: 7421 byte(s)
New version
   Fixes CVE-2015-2325 and CVE-2015-2326

1 %define pcre_major 1
2 %define pcrecpp_major 0
3 %define pcreposix_major 1
4 %define pcreposix_compat_major 0
5 %define libname_orig lib%{name}
6 %define libname16_orig lib%{name}16
7 %define libname32_orig lib%{name}32
8 %define libname %mklibname pcre %{pcre_major}
9 %define libname16 %mklibname pcre 16 %{pcrecpp_major}
10 %define libname32 %mklibname pcre 32 %{pcrecpp_major}
11 %define libnamecpp %mklibname pcrecpp %{pcrecpp_major}
12 %define libnameposix %mklibname pcreposix %{pcreposix_major}
13 %define libnameposix_compat %mklibname pcreposix %{pcreposix_compat_major}
14 %define develname %mklibname -d pcre
15 %define develcpp %mklibname -d pcrecpp
16 %define develposix %mklibname -d pcreposix
17 %define olddevelname %mklibname %{name} 0 -d
18
19 %define build_pcreposix_compat 1
20
21 Summary: Perl-compatible regular expression library
22 Name: pcre
23 Version: 8.37
24 Release: %mkrel 1
25 License: BSD-Style
26 Group: File tools
27 URL: http://www.pcre.org/
28 Source0: ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/%{name}-%{version}.tar.bz2
29 Source1: ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/%{name}-%{version}.tar.bz2.sig
30 Requires: %{libname} = %{version}-%{release}
31 BuildRequires: automake
32 Patch0: pcre-0.6.5-fix-detect-into-kdelibs.patch
33 Patch1: pcre-8.33-linkage-fix.patch
34 # from debian:
35 Patch4: pcre-pcreposix-glibc-conflict.patch
36
37
38 %description
39 PCRE has its own native API, but a set of "wrapper" functions that are based on
40 the POSIX API are also supplied in the library libpcreposix. Note that this
41 just provides a POSIX calling interface to PCRE: the regular expressions
42 themselves still follow Perl syntax and semantics.
43 This package contains a grep variant based on the PCRE library.
44
45 %package -n %{libname}
46 Group: System/Libraries
47 Summary: Perl-compatible regular expression library
48 Requires(pre): filesystem >= 2.1.9-18
49 Provides: %{libname_orig} = %{version}-%{release}
50
51 %description -n %{libname}
52 This package contains the shared library libpcre.
53
54 %package -n %{libname16}
55 Group: System/Libraries
56 Summary: Perl-compatible regular expression library
57 Requires(pre): filesystem >= 2.1.9-18
58 Provides: %{libname16_orig} = %{version}-%{release}
59 Obsoletes: %{_lib}pcre16_1 < %{version}-%{release}
60
61 %description -n %{libname16}
62 This package contains the shared library libpcre.
63
64 %package -n %{libname32}
65 Group: System/Libraries
66 Summary: Perl-compatible regular expression library
67 Requires(pre): filesystem >= 2.1.9-18
68 Provides: %{libname32_orig} = %{version}-%{release}
69 Obsoletes: %{_lib}pcre32_1 < %{version}-%{release}
70
71 %description -n %{libname32}
72 This package contains the shared library libpcre.
73
74 %package -n %{libnamecpp}
75 Group: System/Libraries
76 Summary: Perl-compatible regular expression library
77 Conflicts: %{_lib}pcre0 < 8.21-3
78
79 %description -n %{libnamecpp}
80 This package contains the shared library libpcrecpp.
81
82
83 %package -n %{libnameposix}
84 Group: System/Libraries
85 Summary: Perl-compatible regular expression library
86 Conflicts: %{_lib}pcre0 < 8.21-3
87
88 %description -n %{libnameposix}
89 This package contains the shared library libpcreposix.
90
91
92 %package -n %{libnameposix_compat}
93 Group: System/Libraries
94 Summary: Perl-compatible regular expression library
95 Conflicts: %{_lib}pcre0 < 8.21-3
96
97 %description -n %{libnameposix_compat}
98 This package contains the shared library libpcreposix compat.
99
100
101 %package -n %{develname}
102 Group: Development/C
103 Summary: Headers and static lib for pcre development
104 Requires: %{libname} = %{version}-%{release}
105 Requires: %{libname16} = %{version}-%{release}
106 Requires: %{libname32} = %{version}-%{release}
107 Provides: %{libname_orig}-devel = %{version}-%{release}
108 Provides: %{name}-devel = %{version}-%{release}
109 Obsoletes: %{olddevelname} < 8.21-3
110
111 %description -n %{develname}
112 Install this package if you want do compile applications using the pcre
113 library.
114
115 %package -n %{develcpp}
116 Group: Development/C++
117 Summary: Headers and static lib for pcrecpp development
118 Provides: pcrecpp-devel = %{version}-%{release}
119 Requires: %{libnamecpp} = %{version}-%{release}
120 Requires: %{develname} = %{version}-%{release}
121 Conflicts: pcre-devel < 8.32-4
122
123 %description -n %{develcpp}
124 Install this package if you want do compile applications using the pcrecpp
125 library.
126
127 %package -n %{develposix}
128 Group: Development/C
129 Summary: Headers and static lib for pcreposix development
130 Provides: pcreposix-devel = %{version}-%{release}
131 Requires: %{libnameposix} = %{version}-%{release}
132 Requires: %{develname} = %{version}-%{release}
133 Conflicts: pcre-devel < 8.32-4
134
135 %description -n %{develposix}
136 Install this package if you want do compile applications using the pcre
137 library.
138
139 The header file for the POSIX-style functions is called pcreposix.h. The
140 official POSIX name is regex.h, but I didn't want to risk possible problems
141 with existing files of that name by distributing it that way. To use it with an
142 existing program that uses the POSIX API, it will have to be renamed or pointed
143 at by a link.
144
145 %prep
146 %setup -q
147 %patch0 -p1 -b .detect-into-kdelibs
148 %patch1 -p1 -b .linkage-fix
149
150 %if %{build_pcreposix_compat}
151 # pcre-pcreposix-glibc-conflict patch below breaks compatibility,
152 # create a libpcreposix.so.0 without the patch
153 cp -a . ../pcre-with-pcreposix_compat && mv ../pcre-with-pcreposix_compat .
154 %endif
155 %patch4 -p1 -b .symbol-conflict
156
157 %build
158 %if %{build_pcreposix_compat}
159 dirs="pcre-with-pcreposix_compat ."
160 %else
161 dirs="."
162 %endif
163 for i in $dirs; do
164 cd $i
165 mkdir -p m4
166 autoreconf -fi
167 %configure2_5x \
168 --disable-static \
169 --enable-utf \
170 --enable-unicode-properties \
171 --enable-pcre8 \
172 --enable-pcre16 \
173 --enable-pcre32 \
174 --enable-jit
175 %make
176 cd -
177 done
178
179 %check
180 export LC_ALL=C
181 make check
182
183 %install
184 %if %{build_pcreposix_compat}
185 %makeinstall_std -C pcre-with-pcreposix_compat
186 %endif
187 %makeinstall_std
188
189 %multiarch_binaries %{buildroot}%{_bindir}/pcre-config
190
191 # Remove unwanted files
192 rm -f %{buildroot}%{_docdir}/pcre/{AUTHORS,ChangeLog,COPYING,LICENCE,NEWS}
193 rm -f %{buildroot}%{_docdir}/pcre/{pcre-config.txt,pcre.txt,pcregrep.txt}
194 rm -f %{buildroot}%{_docdir}/pcre/{pcretest.txt,README}
195 rm -rf %{buildroot}%{_docdir}/pcre/html
196 rm -f %{buildroot}%{_libdir}/*.la
197
198 %files
199 %doc AUTHORS COPYING LICENCE NEWS README
200 %{_mandir}/man1/pcregrep.1*
201 %{_mandir}/man1/pcretest.1*
202 %{_bindir}/pcregrep
203 %{_bindir}/pcretest
204
205 %files -n %{libname}
206 %{_libdir}/libpcre.so.%{pcre_major}*
207
208 %files -n %{libname16}
209 %{_libdir}/libpcre16.so.%{pcrecpp_major}*
210
211 %files -n %{libname32}
212 %{_libdir}/libpcre32.so.%{pcrecpp_major}*
213
214 %files -n %{libnamecpp}
215 %{_libdir}/libpcrecpp.so.%{pcrecpp_major}*
216
217 %if %{build_pcreposix_compat}
218 %files -n %{libnameposix_compat}
219 %{_libdir}/libpcreposix.so.%{pcreposix_compat_major}*
220 %endif
221
222 %files -n %{libnameposix}
223 %{_libdir}/libpcreposix.so.%{pcreposix_major}*
224
225 %files -n %{develname}
226 %doc doc/html
227 %doc ChangeLog
228 %{_libdir}/libpcre.so
229 %{_libdir}/libpcre16.so
230 %{_libdir}/libpcre32.so
231 %{_includedir}/pcre.h
232 %{_includedir}/pcre_*.h
233 %{_libdir}/pkgconfig/libpcre.pc
234 %{_libdir}/pkgconfig/libpcre16.pc
235 %{_libdir}/pkgconfig/libpcre32.pc
236 %{_bindir}/pcre-config
237 %multiarch %{multiarch_bindir}/pcre-config
238 %{_mandir}/man1/pcre-config.1*
239 %{_mandir}/man3/*.3*
240 %exclude %{_libdir}/libpcreposix.so
241 %exclude %{_mandir}/man3/pcreposix.3*
242
243 %files -n %{develcpp}
244 %{_includedir}/pcrecpp*.h
245 %{_libdir}/libpcrecpp.so
246 %{_libdir}/pkgconfig/libpcrecpp.pc
247 %{_mandir}/man3/pcrecpp.3*
248
249 %files -n %{develposix}
250 %{_includedir}/pcreposix.h
251 %{_libdir}/libpcreposix.so
252 %{_libdir}/pkgconfig/libpcreposix.pc
253 %{_mandir}/man3/pcreposix.3*

  ViewVC Help
Powered by ViewVC 1.1.28