]> git.pld-linux.org Git - packages/nss.git/blob - nss.spec
set OS_TEST explicitly instead of default `uname -m`
[packages/nss.git] / nss.spec
1 # Conditional build:
2 %bcond_with     bootstrap       # avoid dependency on nss-tools
3 %bcond_with     tests           # enable tests
4
5 %define nspr_ver        1:4.29
6 %define foover  %(echo %{version} | tr . _)
7 Summary:        NSS - Network Security Services
8 Summary(pl.UTF-8):      NSS - Network Security Services
9 Name:           nss
10 Version:        3.59
11 Release:        1
12 Epoch:          1
13 License:        MPL v2.0
14 Group:          Libraries
15 Source0:        http://ftp.mozilla.org/pub/security/nss/releases/NSS_%{foover}_RTM/src/%{name}-%{version}.tar.gz
16 # Source0-md5:  1fa8c74a6a761e4b87c782ef0b52d5ec
17 Source1:        %{name}-mozilla-nss.pc
18 Source2:        %{name}-config.in
19 Source3:        http://www.cacert.org/certs/root.der
20 # Source3-md5:  a61b375e390d9c3654eebd2031461f6b
21 Source4:        nss-softokn.pc.in
22 # Upstream: https://bugzilla.mozilla.org/show_bug.cgi?id=1083900
23 URL:            https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS
24 BuildRequires:  nspr-devel >= %{nspr_ver}
25 %{!?with_bootstrap:BuildRequires:       nss-tools}
26 BuildRequires:  perl-base
27 BuildRequires:  sqlite3-devel
28 BuildRequires:  zlib-devel
29 BuildConflicts: mozilla < 0.9.6-3
30 Requires:       %{name}-softokn-freebl = %{epoch}:%{version}-%{release}
31 Requires:       nspr >= %{nspr_ver}
32 Obsoletes:      libnss3
33 # needs http2 code update: https://bugzilla.mozilla.org/show_bug.cgi?id=1323209
34 Conflicts:      firefox < 50.1.0-2
35 Conflicts:      iceape < 2.46-1
36 Conflicts:      iceweasel < 51
37 Conflicts:      mozilla-firefox < 51
38 Conflicts:      seamonkey < 2.47
39 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
40
41 %define         specflags       -fno-strict-aliasing
42 # signed -  stripped before signing
43 %define         _noautostrip    .*%{_libdir}/libfreebl3.so\\|.*%{_libdir}/libsoftokn3.so
44 %define         _noautochrpath  .*%{_libdir}/libfreebl3.so\\|.*%{_libdir}/libsoftokn3.so
45
46 %description
47 NSS supports cross-platform development of security-enabled server
48 applications. Applications built with NSS can support PKCS #5,
49 PKCS #7, PKCS #11, PKCS #12, S/MIME, TLS, SSL v2 and v3, X.509 v3
50 certificates, and other security standards.
51
52 %description -l pl.UTF-8
53 NSS wspomaga pisanie wieloplatformowych bezpiecznych serwerów.
54 Aplikacja używająca NSS jest w stanie obsłużyć PKCS #5, PKCS #7,
55 PKCS #11, PKCS #12, S/MIME, TLS, SSL v2 oraz v3, certyfikaty X.509 v3,
56 i wiele innych bezpiecznych standardów.
57
58 %package tools
59 Summary:        NSS command line tools and utilities
60 Summary(pl.UTF-8):      Narzędzia NSS obsługiwane z linii poleceń
61 Group:          Applications
62 Requires:       %{name} = %{epoch}:%{version}-%{release}
63
64 %description tools
65 The NSS Toolkit command line tool.
66
67 %description tools -l pl.UTF-8
68 Narzędzia NSS obsługiwane z linii poleceń.
69
70 %package devel
71 Summary:        NSS - header files
72 Summary(pl.UTF-8):      NSS - pliki nagłówkowe
73 Group:          Development/Libraries
74 Requires:       %{name} = %{epoch}:%{version}-%{release}
75 Requires:       nspr-devel >= %{nspr_ver}
76 Obsoletes:      libnss3-devel
77
78 %description devel
79 Development part of NSS library.
80
81 %description devel -l pl.UTF-8
82 Część biblioteki NSS przeznaczona dla programistów.
83
84 %package static
85 Summary:        NSS - static library
86 Summary(pl.UTF-8):      NSS - biblioteka statyczna
87 Group:          Development/Libraries
88 Requires:       %{name}-devel = %{epoch}:%{version}-%{release}
89
90 %description static
91 Static NSS Toolkit libraries.
92
93 %description static -l pl.UTF-8
94 Statyczne wersje bibliotek z NSS.
95
96 %package softokn-freebl
97 Summary:        Freebl library for the Network Security Services
98 Summary(pl.UTF-8):      Biblioteka freebl dla bibliotek NSS
99 Group:          Libraries
100
101 %description softokn-freebl
102 Freebl cryptographic library for the Network Security Services.
103
104 %description softokn-freebl -l pl.UTF-8
105 Biblioteka kryptograficzna freebl dla bibliotek NSS.
106
107 %prep
108 %setup -q
109
110 %if 0%{!?debug:1}
111 # strip before signing
112 %{__sed} -i -e '/export ADDON_PATH$/a\    echo STRIP \; %{__strip} --strip-unneeded -R.comment -R.note ${5}' nss/cmd/shlibsign/sign.sh
113 %endif
114
115 %build
116 %if %{without bootstrap}
117 # http://wiki.cacert.org/wiki/NSSLib
118 addbuiltin -n "CAcert Inc." -t "CT,C,C" < %{SOURCE3} >> nss/lib/ckfw/builtins/certdata.txt
119 %endif
120
121 %ifarch %{x8664} ppc64 sparc64 aarch64
122 export USE_64=1
123 %endif
124
125 # http://pki.fedoraproject.org/wiki/ECC_Capable_NSS
126 for dir in ecc noecc; do
127         install -d $dir
128         cp -a nss $dir/nss
129 done
130
131 export BUILD_OPT=1
132 export MOZILLA_CLIENT=1
133 export NSDISTMODE=copy
134 export NSPR_INCLUDE_DIR=/usr/include/nspr
135 export NSS_USE_SYSTEM_SQLITE=1
136 export USE_PTHREADS=1
137 export USE_SYSTEM_ZLIB=1
138 export ZLIB_LIBS="-lz"
139 %ifarch x32
140 export USE_X32=1
141 %endif
142 %{!?with_tests:export NSS_DISABLE_GTESTS=1}
143
144 # https://bugzilla.mozilla.org/show_bug.cgi?id=1084623
145
146 # Forcing ecc with this hack would produce broken librares (softoken, freebl etc).
147 # Thus we also build noecc version (which doesn't require hack) and use these
148 # libs from there.
149 %{__sed} -i -e 's|#error|//error|g' ecc/nss/lib/freebl/ecl/ecl-curve.h
150 %{__make} -C ecc/nss all \
151         NSS_ECC_MORE_THAN_SUITE_B=1 \
152         CC="%{__cc}" \
153         OPTIMIZER="%{rpmcflags} %{rpmcppflags}" \
154         OS_TEST="%{_target_cpu}" \
155         NS_USE_GCC=1
156
157 %{__make} -C noecc/nss all \
158         CC="%{__cc}" \
159         OPTIMIZER="%{rpmcflags} %{rpmcppflags}" \
160         OS_TEST="%{_target_cpu}" \
161         NS_USE_GCC=1
162
163 %install
164 rm -rf $RPM_BUILD_ROOT
165 install -d $RPM_BUILD_ROOT{%{_bindir},%{_mandir}/man1,%{_includedir}/nss,/%{_lib},%{_libdir},%{_pkgconfigdir}}
166
167 cp -p ecc/dist/private/nss/*    $RPM_BUILD_ROOT%{_includedir}/nss
168 cp -p ecc/dist/public/dbm/*     $RPM_BUILD_ROOT%{_includedir}/nss
169 cp -p ecc/dist/public/nss/*     $RPM_BUILD_ROOT%{_includedir}/nss
170 install -p ecc/dist/Linux*/bin/*        $RPM_BUILD_ROOT%{_bindir}
171 install -p ecc/dist/Linux*/lib/*        $RPM_BUILD_ROOT%{_libdir}
172
173 # non-ECC version, we need only libnssdbm3, libsoftokn3, libfreebl3
174 install -p noecc/dist/Linux*/lib/libnssdbm3.*   $RPM_BUILD_ROOT%{_libdir}
175 install -p noecc/dist/Linux*/lib/libsoftokn3.*  $RPM_BUILD_ROOT%{_libdir}
176 install -p noecc/dist/Linux*/lib/libfreebl3.*   $RPM_BUILD_ROOT%{_libdir}
177
178 cp -p nss/doc/nroff/*.1         $RPM_BUILD_ROOT%{_mandir}/man1
179
180 %{__sed} -e '
181         s#libdir=.*#libdir=%{_libdir}#g
182         s#includedir=.*#includedir=%{_includedir}#g
183         s#VERSION#%{version}#g
184 ' %{SOURCE1} > $RPM_BUILD_ROOT%{_pkgconfigdir}/nss.pc
185 # compatibility symlink
186 ln -s nss.pc $RPM_BUILD_ROOT%{_pkgconfigdir}/mozilla-nss.pc
187
188 cat %{SOURCE4} | \
189 sed -e "s,%%libdir%%,%{_libdir},g" \
190         -e "s,%%prefix%%,%{_prefix},g" \
191         -e "s,%%exec_prefix%%,%{_prefix},g" \
192         -e "s,%%includedir%%,%{_includedir}/nss,g" \
193         -e "s,%%NSPR_VERSION%%,$(echo %{nspr_ver} | sed -e 's#.*:##g'),g" \
194         -e "s,%%NSS_VERSION%%,%{version},g" \
195         -e "s,%%SOFTOKEN_VERSION%%,%{version},g" > \
196         $RPM_BUILD_ROOT%{_pkgconfigdir}/nss-softokn.pc
197
198 NSS_VMAJOR=$(awk '/#define.*NSS_VMAJOR/ {print $3}' nss/lib/nss/nss.h)
199 NSS_VMINOR=$(awk '/#define.*NSS_VMINOR/ {print $3}' nss/lib/nss/nss.h)
200 NSS_VPATCH=$(awk '/#define.*NSS_VPATCH/ {print $3}' nss/lib/nss/nss.h)
201 %{__sed} -e "
202         s,@libdir@,%{_libdir},g
203         s,@prefix@,%{_prefix},g
204         s,@exec_prefix@,%{_prefix},g
205         s,@includedir@,%{_includedir}/nss,g
206         s,@MOD_MAJOR_VERSION@,$NSS_VMAJOR,g
207         s,@MOD_MINOR_VERSION@,$NSS_VMINOR,g
208         s,@MOD_PATCH_VERSION@,$NSS_VPATCH,g
209 " %{SOURCE2} > $RPM_BUILD_ROOT%{_bindir}/nss-config
210 chmod +x $RPM_BUILD_ROOT%{_bindir}/nss-config
211
212 %{__mv} $RPM_BUILD_ROOT%{_libdir}/libfreebl3.so $RPM_BUILD_ROOT/%{_lib}
213 ln -s /%{_lib}/libfreebl3.so $RPM_BUILD_ROOT%{_libdir}/libfreebl3.so
214 %{__mv} $RPM_BUILD_ROOT%{_libdir}/libfreebl3.chk $RPM_BUILD_ROOT/%{_lib}
215 ln -s /%{_lib}/libfreebl3.chk $RPM_BUILD_ROOT%{_libdir}/libfreebl3.chk
216 %{__mv} $RPM_BUILD_ROOT%{_libdir}/libfreeblpriv3.so $RPM_BUILD_ROOT/%{_lib}
217 ln -s /%{_lib}/libfreeblpriv3.so $RPM_BUILD_ROOT%{_libdir}/libfreeblpriv3.so
218 %{__mv} $RPM_BUILD_ROOT%{_libdir}/libfreeblpriv3.chk $RPM_BUILD_ROOT/%{_lib}
219 ln -s /%{_lib}/libfreeblpriv3.chk $RPM_BUILD_ROOT%{_libdir}/libfreeblpriv3.chk
220
221 # conflict with openssl-static
222 %{__mv} $RPM_BUILD_ROOT%{_libdir}/libssl{,3}.a
223
224 # unit tests
225 %if %{with tests}
226 %{__rm} $RPM_BUILD_ROOT%{_bindir}/{certdb,certhigh,cryptohi,der,pk11,softoken,smime,ssl,util}_gtest
227 %{__rm} $RPM_BUILD_ROOT%{_bindir}/nss_bogo_shim
228 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libgtest*
229 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libpkcs11testmodule.*
230 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libcpputil.*
231 %endif
232 %{__rm} $RPM_BUILD_ROOT%{_bindir}/fbectest
233 %{__rm} $RPM_BUILD_ROOT%{_bindir}/pk11ectest
234 %{__rm} $RPM_BUILD_ROOT%{_bindir}/pk11importtest
235 %{__rm} $RPM_BUILD_ROOT%{_bindir}/rsapoptst
236 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libnss*-testlib.so
237
238 if [ ! -f "$RPM_BUILD_ROOT%{_includedir}/nss/nsslowhash.h" ]; then
239         echo >&2 "ERROR: %{_includedir}/nss/nsslowhash.h not installed. Needed by glibc"
240         exit 1
241 fi
242
243 %clean
244 rm -rf $RPM_BUILD_ROOT
245
246 %post   -p /sbin/ldconfig
247 %postun -p /sbin/ldconfig
248
249 %files
250 %defattr(644,root,root,755)
251 # COPYING beside MPL v2.0 text contains GPL/LGPL compatibility notes
252 %doc nss/{COPYING,trademarks.txt}
253 %attr(755,root,root) %{_libdir}/libfreebl3.so
254 %attr(755,root,root) %{_libdir}/libfreeblpriv3.so
255 %attr(755,root,root) %{_libdir}/libnss3.so
256 %attr(755,root,root) %{_libdir}/libnssckbi.so
257 %attr(755,root,root) %{_libdir}/libnssdbm3.so
258 %attr(755,root,root) %{_libdir}/libnssutil3.so
259 %attr(755,root,root) %{_libdir}/libsmime3.so
260 %attr(755,root,root) %{_libdir}/libsoftokn3.so
261 %attr(755,root,root) %{_libdir}/libssl3.so
262 %{_libdir}/libfreebl3.chk
263 %{_libdir}/libfreeblpriv3.chk
264 %{_libdir}/libnssdbm3.chk
265 %{_libdir}/libsoftokn3.chk
266
267 %files devel
268 %defattr(644,root,root,755)
269 %attr(755,root,root) %{_bindir}/nss-config
270 %{_libdir}/libcrmf.a
271 %{_libdir}/libfreebl.a
272 %{_includedir}/nss
273 %{_pkgconfigdir}/mozilla-nss.pc
274 %{_pkgconfigdir}/nss.pc
275 %{_pkgconfigdir}/nss-softokn.pc
276
277 %files tools
278 %defattr(644,root,root,755)
279 %attr(755,root,root) %{_bindir}/addbuiltin
280 %attr(755,root,root) %{_bindir}/atob
281 %attr(755,root,root) %{_bindir}/baddbdir
282 %attr(755,root,root) %{_bindir}/bltest
283 %attr(755,root,root) %{_bindir}/btoa
284 %attr(755,root,root) %{_bindir}/certutil
285 %attr(755,root,root) %{_bindir}/chktest
286 %attr(755,root,root) %{_bindir}/cmsutil
287 %attr(755,root,root) %{_bindir}/conflict
288 %attr(755,root,root) %{_bindir}/crlutil
289 %attr(755,root,root) %{_bindir}/crmftest
290 %attr(755,root,root) %{_bindir}/dbtest
291 %attr(755,root,root) %{_bindir}/derdump
292 %attr(755,root,root) %{_bindir}/dertimetest
293 %attr(755,root,root) %{_bindir}/digest
294 %attr(755,root,root) %{_bindir}/ecperf
295 %attr(755,root,root) %{_bindir}/encodeinttest
296 %attr(755,root,root) %{_bindir}/fipstest
297 %attr(755,root,root) %{_bindir}/httpserv
298 %attr(755,root,root) %{_bindir}/listsuites
299 %attr(755,root,root) %{_bindir}/lowhashtest
300 %attr(755,root,root) %{_bindir}/makepqg
301 %attr(755,root,root) %{_bindir}/mangle
302 %attr(755,root,root) %{_bindir}/modutil
303 %attr(755,root,root) %{_bindir}/multinit
304 %attr(755,root,root) %{_bindir}/nonspr10
305 %attr(755,root,root) %{_bindir}/nss-policy-check
306 %attr(755,root,root) %{_bindir}/ocspclnt
307 %attr(755,root,root) %{_bindir}/ocspresp
308 %attr(755,root,root) %{_bindir}/oidcalc
309 %attr(755,root,root) %{_bindir}/p7content
310 %attr(755,root,root) %{_bindir}/p7env
311 %attr(755,root,root) %{_bindir}/p7sign
312 %attr(755,root,root) %{_bindir}/p7verify
313 %attr(755,root,root) %{_bindir}/pk11gcmtest
314 %attr(755,root,root) %{_bindir}/pk11mode
315 %attr(755,root,root) %{_bindir}/pk12util
316 %attr(755,root,root) %{_bindir}/pk1sign
317 %attr(755,root,root) %{_bindir}/pkix-errcodes
318 %attr(755,root,root) %{_bindir}/pp
319 %attr(755,root,root) %{_bindir}/pwdecrypt
320 %attr(755,root,root) %{_bindir}/remtest
321 %attr(755,root,root) %{_bindir}/rsaperf
322 %attr(755,root,root) %{_bindir}/sdrtest
323 %attr(755,root,root) %{_bindir}/secmodtest
324 %attr(755,root,root) %{_bindir}/selfserv
325 %attr(755,root,root) %{_bindir}/shlibsign
326 %attr(755,root,root) %{_bindir}/signtool
327 %attr(755,root,root) %{_bindir}/signver
328 %attr(755,root,root) %{_bindir}/ssltap
329 %attr(755,root,root) %{_bindir}/strsclnt
330 %attr(755,root,root) %{_bindir}/symkeyutil
331 %attr(755,root,root) %{_bindir}/tstclnt
332 %attr(755,root,root) %{_bindir}/vfychain
333 %attr(755,root,root) %{_bindir}/vfyserv
334 %{_mandir}/man1/certutil.1*
335 %{_mandir}/man1/cmsutil.1*
336 %{_mandir}/man1/crlutil.1*
337 %{_mandir}/man1/derdump.1*
338 %{_mandir}/man1/modutil.1*
339 %{_mandir}/man1/pk12util.1*
340 %{_mandir}/man1/pp.1*
341 %{_mandir}/man1/signtool.1*
342 %{_mandir}/man1/signver.1*
343 %{_mandir}/man1/ssltap.1*
344 %{_mandir}/man1/vfychain.1*
345 %{_mandir}/man1/vfyserv.1*
346
347 %files static
348 %defattr(644,root,root,755)
349 %{_libdir}/libcertdb.a
350 %{_libdir}/libcerthi.a
351 %{_libdir}/libcryptohi.a
352 %{_libdir}/libdbm.a
353 %{_libdir}/libjar.a
354 %{_libdir}/libnss.a
355 %{_libdir}/libnssb.a
356 %{_libdir}/libnssckfw.a
357 %{_libdir}/libnssdbm.a
358 %{_libdir}/libnssdev.a
359 %{_libdir}/libnsspki.a
360 %{_libdir}/libnssutil.a
361 %{_libdir}/libpk11wrap.a
362 %{_libdir}/libpkcs12.a
363 %{_libdir}/libpkcs7.a
364 %{_libdir}/libpkixcertsel.a
365 %{_libdir}/libpkixchecker.a
366 %{_libdir}/libpkixcrlsel.a
367 %{_libdir}/libpkixmodule.a
368 %{_libdir}/libpkixparams.a
369 %{_libdir}/libpkixpki.a
370 %{_libdir}/libpkixresults.a
371 %{_libdir}/libpkixstore.a
372 %{_libdir}/libpkixsystem.a
373 %{_libdir}/libpkixtop.a
374 %{_libdir}/libpkixutil.a
375 %{_libdir}/libsectool.a
376 %{_libdir}/libsmime.a
377 %{_libdir}/libsoftokn.a
378 %{_libdir}/libssl3.a
379
380 %files softokn-freebl
381 %defattr(644,root,root,755)
382 %attr(755,root,root) /%{_lib}/libfreebl3.so
383 %attr(755,root,root) /%{_lib}/libfreeblpriv3.so
384 /%{_lib}/libfreebl3.chk
385 /%{_lib}/libfreeblpriv3.chk
This page took 0.418284 seconds and 3 git commands to generate.