don't strip signed library just before signing -- most of signed
libraries are actually used during signing process so it's likely that
during parallel build some processes will be stripping libraries that
are currently being accessed by others
hopefully should fix intermittent SIGBUS from shlibsign
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define specflags -fno-strict-aliasing
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define specflags -fno-strict-aliasing
+%define signedlibs libfreebl3.so libfreeblpriv3.so libnssdbm3.so libsoftokn3.so
# signed - stripped before signing
# signed - stripped before signing
-%define _noautostrip .*%{_libdir}/libfreebl3.so\\|.*%{_libdir}/libsoftokn3.so
+%define _noautostrip .*%{_lib}/\\(%(echo %{signedlibs} | sed 's/ /\\\\|/g')\\)
%define _noautochrpath .*%{_libdir}/libfreebl3.so\\|.*%{_libdir}/libsoftokn3.so
%description
%define _noautochrpath .*%{_libdir}/libfreebl3.so\\|.*%{_libdir}/libsoftokn3.so
%description
-%if 0%{!?debug:1}
-# strip before signing
-%{__sed} -i -e '/export ADDON_PATH$/a\ echo STRIP \; %{__strip} --strip-unneeded -R.comment -R.note ${5}' nss/cmd/shlibsign/sign.sh
-%endif
-
# http://pki.fedoraproject.org/wiki/ECC_Capable_NSS
for dir in ecc noecc; do
install -d $dir
# http://pki.fedoraproject.org/wiki/ECC_Capable_NSS
for dir in ecc noecc; do
install -d $dir
OS_TEST="%{_target_cpu}" \
NS_USE_GCC=1
OS_TEST="%{_target_cpu}" \
NS_USE_GCC=1
+# strip and sign again
+%{__strip} --strip-unneeded -R.comment -R.note \
+ {,no}ecc/dist/Linux*/lib/{%(echo %{signedlibs} | tr ' ' ',')}
+
+for dir in ecc noecc; do
+ distdir=$(echo $(pwd)/$dir/dist/Linux*)
+ for lib in %{signedlibs}; do
+ LD_LIBRARY_PATH="$distdir/lib" "$distdir/bin/shlibsign" -i "$distdir/lib/$lib"
+ done
+done
+
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT{%{_bindir},%{_mandir}/man1,%{_includedir}/nss,/%{_lib},%{_libdir},%{_pkgconfigdir}}
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT{%{_bindir},%{_mandir}/man1,%{_includedir}/nss,/%{_lib},%{_libdir},%{_pkgconfigdir}}