From 039f24b30ce85c83c661feda65c4f9485dd56543 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 1 Jan 1970 00:00:00 +0000 Subject: [PATCH] Non-working NSPR and NSS packages. See the README file for details. --- nspr/README | 7 ++ nspr/mingw32-nspr.spec | 51 ++++++--- nspr/nspr-config-pc.patch | 48 +++++++++ nspr/nspr-config-vars.in | 2 + nspr/nspr.pc.in | 10 ++ nss/README | 1 + nss/blank-cert8.db | Bin 0 -> 65536 bytes nss/blank-key3.db | Bin 0 -> 16384 bytes nss/blank-secmod.db | Bin 0 -> 16384 bytes nss/mingw32-nss.spec | 252 ++++++++++++++++++++++++++++++++++++++++++++ nss/nss-config.in | 145 +++++++++++++++++++++++++ nss/nss-enable-pem.patch | 12 +++ nss/nss-no-rpath.patch | 14 +++ nss/nss-nolocalsql.patch | 53 ++++++++++ nss/nss-pem-bug429175.patch | 12 +++ nss/nss-prelink.conf | 2 + nss/nss.pc.in | 11 ++ show-build-order.pl | 2 + 18 files changed, 606 insertions(+), 16 deletions(-) create mode 100644 nspr/README create mode 100644 nspr/nspr-config-pc.patch create mode 100644 nspr/nspr-config-vars.in create mode 100644 nspr/nspr.pc.in create mode 100644 nss/README create mode 100644 nss/blank-cert8.db create mode 100644 nss/blank-key3.db create mode 100644 nss/blank-secmod.db create mode 100644 nss/mingw32-nss.spec create mode 100644 nss/nss-config.in create mode 100644 nss/nss-enable-pem.patch create mode 100644 nss/nss-no-rpath.patch create mode 100644 nss/nss-nolocalsql.patch create mode 100644 nss/nss-pem-bug429175.patch create mode 100644 nss/nss-prelink.conf create mode 100644 nss/nss.pc.in diff --git a/nspr/README b/nspr/README new file mode 100644 index 0000000..1bf6eac --- /dev/null +++ b/nspr/README @@ -0,0 +1,7 @@ +This builds fine with 'rpmbuild' but not with 'mock'. I spent +about a day looking at it to find out why, but the reason still +escapes me. + +So for now there is no nspr or NSS (which depends on this). + +- RWMJ 2008-11-13 diff --git a/nspr/mingw32-nspr.spec b/nspr/mingw32-nspr.spec index 128461e..8ff9771 100644 --- a/nspr/mingw32-nspr.spec +++ b/nspr/mingw32-nspr.spec @@ -6,7 +6,7 @@ Name: mingw32-nspr Version: 4.7.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: MinGW Windows port of the Netscape Portable Runtime (NSPR) License: MPLv1.1 or GPLv2+ or LGPLv2+ @@ -17,11 +17,12 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArch: noarch -#Source1: nspr.pc.in -#Source2: nspr-config-vars.in +Source1: nspr.pc.in +Source2: nspr-config-vars.in -#Patch1: nspr-config-pc.patch +Patch1: nspr-config-pc.patch +# MinGW-specific build patch. Patch1000: mingw32-nspr-4.7.2-build.patch BuildRequires: mingw32-filesystem >= 33 @@ -39,6 +40,12 @@ memory management (malloc and free) and shared library linking. %prep %setup -q -n nspr-%{version} +cp ./mozilla/nsprpub/config/nspr-config.in \ + ./mozilla/nsprpub/config/nspr-config-pc.in +%patch1 -p0 + +cp %{SOURCE2} ./mozilla/nsprpub/config/ + pushd mozilla/nsprpub %patch1000 -p0 popd @@ -52,28 +59,20 @@ pushd mozilla/nsprpub --prefix=%{_mingw32_prefix} \ --libdir=%{_mingw32_libdir} \ --includedir=%{_mingw32_includedir}/nspr4 \ - --enable-optimize="$RPM_OPT_FLAGS" \ + --enable-optimize="%{_mingw32_cflags}" \ --disable-debug \ --enable-win32-target=WINNT \ --enable-64bit=no -# Something in the configure script is added -m64 option, -# so remove it. -# Also remove stack-protector checks. -pushd config -mv autoconf.mk autoconf.mk.orig -sed -e 's/-m64//' -e 's/-fstack-protector//' \ - < autoconf.mk.orig > autoconf.mk -popd - # NSPR comes with its own "special" install program called nsinstall. # This must be built as a native program. make -C config CC=gcc CFLAGS="-DXP_UNIX=1" # Now build the rest using the "special" nsinstall. make \ - NSINSTALL=`pwd`/config/nsinstall \ + NSINSTALL=$(pwd)/config/nsinstall \ RANLIB=i686-pc-mingw32-ranlib \ + RC=i686-pc-mingw32-windres \ %{?_smp_mflags} popd @@ -92,6 +91,25 @@ install dist/bin/*.dll $RPM_BUILD_ROOT%{_mingw32_bindir} install dist/lib/*.dll.a $RPM_BUILD_ROOT%{_mingw32_libdir} cp -r dist/include/nspr $RPM_BUILD_ROOT%{_mingw32_includedir}/ +# Write an nspr pkgconfig file. + +NSPR_LIBS=`./config/nspr-config --libs` +NSPR_CFLAGS=`./config/nspr-config --cflags` +NSPR_VERSION=`./config/nspr-config --version` +%{__mkdir_p} $RPM_BUILD_ROOT/%{_mingw32_libdir}/pkgconfig + +cat ./config/nspr-config-vars > \ + $RPM_BUILD_ROOT/%{_mingw32_libdir}/pkgconfig/nspr.pc + +cat %{SOURCE1} | sed -e "s,%%libdir%%,%{_mingw32_libdir},g" \ + -e "s,%%prefix%%,%{_mingw32_prefix},g" \ + -e "s,%%exec_prefix%%,%{_mingw32_prefix},g" \ + -e "s,%%includedir%%,%{_mingw32_includedir}/nspr4,g" \ + -e "s,%%NSPR_VERSION%%,$NSPR_VERSION,g" \ + -e "s,%%FULL_NSPR_LIBS%%,$NSPR_LIBS,g" \ + -e "s,%%FULL_NSPR_CFLAGS%%,$NSPR_CFLAGS,g" >> \ + $RPM_BUILD_ROOT/%{_mingw32_libdir}/pkgconfig/nspr.pc + popd @@ -106,9 +124,10 @@ rm -rf $RPM_BUILD_ROOT %{_mingw32_bindir}/libplds4.dll %{_mingw32_libdir}/libnspr4.dll.a %{_mingw32_libdir}/libplc4.dll.a +%{_mingw32_libdir}/pkgconfig/nspr.pc %{_mingw32_includedir}/nspr %changelog -* Mon Nov 10 2008 Richard W.M. Jones - 4.7.2-1 +* Mon Nov 10 2008 Richard W.M. Jones - 4.7.2-2 - Initial RPM release. diff --git a/nspr/nspr-config-pc.patch b/nspr/nspr-config-pc.patch new file mode 100644 index 0000000..cf31395 --- /dev/null +++ b/nspr/nspr-config-pc.patch @@ -0,0 +1,48 @@ +--- mozilla/nsprpub/config/nspr-config-pc.in.x123 2005-05-11 02:53:41.000000000 +0200 ++++ mozilla/nsprpub/config/nspr-config-pc.in 2006-05-24 20:52:12.000000000 +0200 +@@ -98,7 +98,7 @@ + includedir=@includedir@ + fi + if test -z "$libdir"; then +- libdir=@libdir@ ++ libdir=`pkg-config --variable=libdir nspr` + fi + + if test "$echo_prefix" = "yes"; then +@@ -132,12 +132,12 @@ + if test -n "$lib_nspr"; then + libdirs="$libdirs -lnspr${major_version}" + fi +- os_ldflags="@LDFLAGS@" ++ os_ldflags=`pkg-config --variable=ldflags nspr` + for i in $os_ldflags ; do + if echo $i | grep \^-L >/dev/null; then + libdirs="$libdirs $i" + fi + done +- echo $libdirs @OS_LIBS@ ++ echo $libdirs `pkg-config --variable=os_libs nspr` + fi + +--- mozilla/nsprpub/configure.in.x123 2006-05-24 20:52:12.000000000 +0200 ++++ mozilla/nsprpub/configure.in 2006-05-24 20:53:53.000000000 +0200 +@@ -2667,6 +2667,8 @@ + config/nsprincl.mk + config/nsprincl.sh + config/nspr-config ++config/nspr-config-pc ++config/nspr-config-vars + lib/Makefile + lib/ds/Makefile + lib/libc/Makefile +--- mozilla/nsprpub/configure.x123 2006-05-24 20:52:12.000000000 +0200 ++++ mozilla/nsprpub/configure 2006-05-24 20:54:05.000000000 +0200 +@@ -5899,6 +5899,8 @@ + config/nsprincl.mk + config/nsprincl.sh + config/nspr-config ++config/nspr-config-pc ++config/nspr-config-vars + lib/Makefile + lib/ds/Makefile + lib/libc/Makefile diff --git a/nspr/nspr-config-vars.in b/nspr/nspr-config-vars.in new file mode 100644 index 0000000..ebf0aa4 --- /dev/null +++ b/nspr/nspr-config-vars.in @@ -0,0 +1,2 @@ +ldflags=@LDFLAGS@ +os_libs=@OS_LIBS@ diff --git a/nspr/nspr.pc.in b/nspr/nspr.pc.in new file mode 100644 index 0000000..1d8f4a0 --- /dev/null +++ b/nspr/nspr.pc.in @@ -0,0 +1,10 @@ +prefix=%prefix% +exec_prefix=%exec_prefix% +libdir=%libdir% +includedir=%includedir% + +Name: NSPR +Description: The Netscape Portable Runtime +Version: %NSPR_VERSION% +Libs: %FULL_NSPR_LIBS% +Cflags: %FULL_NSPR_CFLAGS% diff --git a/nss/README b/nss/README new file mode 100644 index 0000000..2dafa17 --- /dev/null +++ b/nss/README @@ -0,0 +1 @@ +See nspr/README. diff --git a/nss/blank-cert8.db b/nss/blank-cert8.db new file mode 100644 index 0000000000000000000000000000000000000000..ac40a3325724b598ba93a314d250bd03eb7f479f GIT binary patch literal 65536 zcmeI)F$w}P5CFjS6uHXI_nfb=x3I9e1Fe0AAM*=#)`FF2lC!k)NHq&fmLz1uJYZwF z-bF+cvA9NTQW>j=Sz2;N`z_LW*_fBL9F3PQ{rQ&ma^yQXt4BNjr+Qxv2@oJafB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+z*GWFJiAACPx%%E2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+Kt+Kz4G-AvkEg@XPc=rs zI|K+2AV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!Cs>084Yu9#mEIZ>` z_OV&2Hrzd@J}>_iyb}Qg5I_I{1Q0*~0R#|0009JM7nnr*pTRZ+5I_I{1Q0*~0R#|0 L009IL_y>U>%c-RO literal 0 HcmV?d00001 diff --git a/nss/blank-secmod.db b/nss/blank-secmod.db new file mode 100644 index 0000000000000000000000000000000000000000..9a028078d61e7d1e7df5f3269801a2d04e71afc6 GIT binary patch literal 16384 zcmeI&!AiqG5P;#aO6ftU7jGg99`;r!o)-^2Nl^-Uf|%Wu&@_Rxf*w5j2;O}rUqN3( zbdnWB1dk=iKQQcOcE}Fjd1ZKy}w{j@5r%RhM`r7DuSJ>~??kF}rRS&OP zYoqOHbLTON^X&XyE<^wU1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILK%g%I z19=;}@wsMSCSnc*5I_I{1Q0*~0R#|0009L0CNLBuk3U|Y&vitv8H*>^Nn$RmZD^{r zG>iExF=x}MxvKqb8MJGb)m2_BebG2Ou_g=6cF}~qxO3K;Rk;8D*o16dduQW1@i*4w uWxCur6W`%K%Z1Y)o@)MzzlM1KAP_(R0R#|0009ILKmY**5J2F+3w#1IM= 33 +BuildRequires: mingw32-gcc +BuildRequires: mingw32-binutils +BuildRequires: mingw32-sqlite +BuildRequires: mingw32-zlib +BuildRequires: pkgconfig +BuildRequires: perl + + +%description +Network Security Services (NSS) is a set of libraries designed to +support cross-platform development of security-enabled client and +server applications. Applications built with NSS can support SSL v2 +and v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME, X.509 +v3 certificates, and other security standards. + + +%prep +%setup -q -n nss-%{version} +%setup -q -T -D -n nss-%{version} -a 12 + +%patch1 -p0 +%patch2 -p0 +%patch5 -p0 -b .429175 +%patch6 -p0 -b .libpem + + +%build +# Enable compiler optimizations and disable debugging code +BUILD_OPT=1 +export BUILD_OPT + +# Generate symbolic info for debuggers +XCFLAGS=$RPM_OPT_FLAGS +export XCFLAGS + +export NSPR_INCLUDE_DIR=%{_mingw32_includedir}/nspr +export NSPR_LIB_DIR=%{_mingw32_libdir} + +PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 +PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 + +export PKG_CONFIG_ALLOW_SYSTEM_LIBS +export PKG_CONFIG_ALLOW_SYSTEM_CFLAGS + +NSPR_INCLUDE_DIR=`/usr/bin/pkg-config --cflags-only-I nspr | sed 's/-I//'` +NSPR_LIB_DIR=`/usr/bin/pkg-config --libs-only-L nspr | sed 's/-L//'` + +export NSPR_INCLUDE_DIR +export NSPR_LIB_DIR + +%ifarch x86_64 ppc64 ia64 s390x sparc64 +USE_64=1 +export USE_64 +%endif + +# NSS_ENABLE_ECC=1 +# export NSS_ENABLE_ECC + +%{__make} -C ./mozilla/security/coreconf +%{__make} -C ./mozilla/security/dbm +%{__make} -C ./mozilla/security/nss + +# Set up our package file +%{__mkdir_p} $RPM_BUILD_ROOT/%{_libdir}/pkgconfig +%{__cat} %{SOURCE1} | sed -e "s,%%libdir%%,%{_libdir},g" \ + -e "s,%%prefix%%,%{_prefix},g" \ + -e "s,%%exec_prefix%%,%{_prefix},g" \ + -e "s,%%includedir%%,%{_includedir}/nss3,g" \ + -e "s,%%NSPR_VERSION%%,%{nspr_version},g" \ + -e "s,%%NSS_VERSION%%,%{version},g" > \ + $RPM_BUILD_ROOT/%{_libdir}/pkgconfig/nss.pc +NSS_VMAJOR=`cat mozilla/security/nss/lib/nss/nss.h | grep "#define.*NSS_VMAJOR" +| awk '{print $3}'` +NSS_VMINOR=`cat mozilla/security/nss/lib/nss/nss.h | grep "#define.*NSS_VMINOR" +| awk '{print $3}'` +NSS_VPATCH=`cat mozilla/security/nss/lib/nss/nss.h | grep "#define.*NSS_VPATCH" +| awk '{print $3}'` + +export NSS_VMAJOR +export NSS_VMINOR +export NSS_VPATCH + +%{__mkdir_p} $RPM_BUILD_ROOT/%{_bindir} +%{__cat} %{SOURCE2} | sed -e "s,@libdir@,%{_libdir},g" \ + -e "s,@prefix@,%{_prefix},g" \ + -e "s,@exec_prefix@,%{_prefix},g" \ + -e "s,@includedir@,%{_includedir}/nss3,g" \ + -e "s,@MOD_MAJOR_VERSION@,$NSS_VMAJOR,g" \ + -e "s,@MOD_MINOR_VERSION@,$NSS_VMINOR,g" \ + -e "s,@MOD_PATCH_VERSION@,$NSS_VPATCH,g" \ + > $RPM_BUILD_ROOT/%{_bindir}/nss-config + +chmod 755 $RPM_BUILD_ROOT/%{_bindir}/nss-config +# enable the following line to force a test failure +# find ./mozilla -name \*.chk | xargs rm -f + +# Run test suite. +# In order to support multiple concurrent executions of the test suite +# (caused by concurrent RPM builds) on a single host, +# we'll use a random port. Also, we want to clean up any stuck +# selfserv processes. If process name "selfserv" is used everywhere, +# we can't simply do a "killall selfserv", because it could disturb +# concurrent builds. Therefore we'll do a search and replace and use +# a different process name. +# Using xargs doesn't mix well with spaces in filenames, in order to +# avoid weird quoting we'll require that no spaces are being used. + +SPACEISBAD=`find ./mozilla/security/nss/tests | grep -c ' '` ||: +if [ SPACEISBAD -ne 0 ]; then + echo "error: filenames containing space are not supported (xargs)" + exit 1 +fi +MYRAND=`perl -e 'print 9000 + int rand 1000'`; echo $MYRAND ||: +RANDSERV=selfserv_${MYRAND}; echo $RANDSERV ||: +DISTBINDIR=`ls -d ./mozilla/dist/*.OBJ/bin`; echo $DISTBINDIR ||: +pushd `pwd` +cd $DISTBINDIR +ln -s selfserv $RANDSERV +popd +# man perlrun, man perlrequick +# replace word-occurrences of selfserv with selfserv_$MYRAND +find ./mozilla/security/nss/tests -type f |\ + grep -v "\.db$" |grep -v "\.crl$" | grep -v "\.crt$" |\ + grep -vw CVS |xargs grep -lw selfserv |\ + xargs -l perl -pi -e "s/\bselfserv\b/$RANDSERV/g" ||: + +killall $RANDSERV || : + +rm -rf ./mozilla/tests_results +cd ./mozilla/security/nss/tests/ +# all.sh is the test suite script +HOST=localhost DOMSUF=localdomain PORT=$MYRAND ./all.sh +cd ../../../../ + +killall $RANDSERV || : + +TEST_FAILURES=`grep -c FAILED ./mozilla/tests_results/security/localhost.1/outpu +t.log` || : +if [ $TEST_FAILURES -ne 0 ]; then + echo "error: test suite returned failure(s)" + exit 1 +fi +echo "test suite completed" + + +%install +rm -rf $RPM_BUILD_ROOT + +# There is no make install target so we'll do it ourselves. + +%{__mkdir_p} $RPM_BUILD_ROOT/%{_includedir}/nss3 +%{__mkdir_p} $RPM_BUILD_ROOT/%{_bindir} +%{__mkdir_p} $RPM_BUILD_ROOT/%{_lib} +%{__mkdir_p} $RPM_BUILD_ROOT/%{unsupported_tools_directory} + +# Copy the binary libraries we want +for file in libsoftokn3.so libfreebl3.so libnss3.so libnssutil3.so \ + libssl3.so libsmime3.so libnssckbi.so libnsspem.so libnssdbm3.so +do + %{__install} -m 755 mozilla/dist/*.OBJ/lib/$file $RPM_BUILD_ROOT/%{_lib} + ln -sf ../../%{_lib}/$file $RPM_BUILD_ROOT/%{_libdir}/$file +done + +# These ghost files will be generated in the post step +# Make sure chk files can be found in both places +for file in libsoftokn3.chk libfreebl3.chk +do + touch $RPM_BUILD_ROOT/%{_lib}/$file + ln -s ../../%{_lib}/$file $RPM_BUILD_ROOT/%{_libdir}/$file +done + +# Install the empty NSS db files +%{__mkdir_p} $RPM_BUILD_ROOT/%{_sysconfdir}/pki/nssdb +%{__install} -m 644 %{SOURCE3} $RPM_BUILD_ROOT/%{_sysconfdir}/pki/nssdb/cert8.db +%{__install} -m 644 %{SOURCE4} $RPM_BUILD_ROOT/%{_sysconfdir}/pki/nssdb/key3.db +%{__install} -m 644 %{SOURCE5} $RPM_BUILD_ROOT/%{_sysconfdir}/pki/nssdb/secmod.d +b +%{__mkdir_p} $RPM_BUILD_ROOT/%{_sysconfdir}/prelink.conf.d +%{__install} -m 644 %{SOURCE8} $RPM_BUILD_ROOT/%{_sysconfdir}/prelink.conf.d/nss +-prelink.conf + +# Copy the development libraries we want +for file in libcrmf.a libnssb.a libnssckfw.a +do + %{__install} -m 644 mozilla/dist/*.OBJ/lib/$file $RPM_BUILD_ROOT/%{_libdir} +done + +# Copy the binaries we want +for file in certutil cmsutil crlutil modutil pk12util signtool signver ssltap +do + %{__install} -m 755 mozilla/dist/*.OBJ/bin/$file $RPM_BUILD_ROOT/%{_bindir} +done + +# Copy the binaries we ship as unsupported +for file in atob btoa derdump ocspclnt pp selfserv shlibsign strsclnt symkeyutil + tstclnt vfyserv vfychain +do + %{__install} -m 755 mozilla/dist/*.OBJ/bin/$file $RPM_BUILD_ROOT/%{unsupported +_tools_directory} +done + +# Copy the include files we want +for file in mozilla/dist/public/nss/*.h +do + %{__install} -m 644 $file $RPM_BUILD_ROOT/%{_includedir}/nss3 +done + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%defattr(-,root,root) +%{_mingw32_bindir}/foo.dll +%{_mingw32_libdir}/foo.dll.a +# etc. + + +%changelog +* Wed Sep 24 2008 Your Name - 1.2.3-1 +- Initial RPM release. diff --git a/nss/nss-config.in b/nss/nss-config.in new file mode 100644 index 0000000..f8f893e --- /dev/null +++ b/nss/nss-config.in @@ -0,0 +1,145 @@ +#!/bin/sh + +prefix=@prefix@ + +major_version=@MOD_MAJOR_VERSION@ +minor_version=@MOD_MINOR_VERSION@ +patch_version=@MOD_PATCH_VERSION@ + +usage() +{ + cat <&2 +fi + +lib_ssl=yes +lib_smime=yes +lib_nss=yes +lib_nssutil=yes + +while test $# -gt 0; do + case "$1" in + -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + + case $1 in + --prefix=*) + prefix=$optarg + ;; + --prefix) + echo_prefix=yes + ;; + --exec-prefix=*) + exec_prefix=$optarg + ;; + --exec-prefix) + echo_exec_prefix=yes + ;; + --includedir=*) + includedir=$optarg + ;; + --includedir) + echo_includedir=yes + ;; + --libdir=*) + libdir=$optarg + ;; + --libdir) + echo_libdir=yes + ;; + --version) + echo ${major_version}.${minor_version}.${patch_version} + ;; + --cflags) + echo_cflags=yes + ;; + --libs) + echo_libs=yes + ;; + ssl) + lib_ssl=yes + ;; + smime) + lib_smime=yes + ;; + nss) + lib_nss=yes + ;; + nssutil) + lib_nssutil=yes + ;; + *) + usage 1 1>&2 + ;; + esac + shift +done + +# Set variables that may be dependent upon other variables +if test -z "$exec_prefix"; then + exec_prefix=`pkg-config --variable=exec_prefix nss` +fi +if test -z "$includedir"; then + includedir=`pkg-config --variable=includedir nss` +fi +if test -z "$libdir"; then + libdir=`pkg-config --variable=libdir nss` +fi + +if test "$echo_prefix" = "yes"; then + echo $prefix +fi + +if test "$echo_exec_prefix" = "yes"; then + echo $exec_prefix +fi + +if test "$echo_includedir" = "yes"; then + echo $includedir +fi + +if test "$echo_libdir" = "yes"; then + echo $libdir +fi + +if test "$echo_cflags" = "yes"; then + echo -I$includedir +fi + +if test "$echo_libs" = "yes"; then + libdirs="-Wl,-rpath-link,$libdir -L$libdir" + if test -n "$lib_ssl"; then + libdirs="$libdirs -lssl${major_version}" + fi + if test -n "$lib_smime"; then + libdirs="$libdirs -lsmime${major_version}" + fi + if test -n "$lib_nss"; then + libdirs="$libdirs -lnss${major_version}" + fi + if test -n "$lib_nssutil"; then + libdirs="$libdirs -lnssutil${major_version}" + fi + echo $libdirs +fi + diff --git a/nss/nss-enable-pem.patch b/nss/nss-enable-pem.patch new file mode 100644 index 0000000..665a148 --- /dev/null +++ b/nss/nss-enable-pem.patch @@ -0,0 +1,12 @@ +diff -up ./mozilla/security/nss/lib/ckfw/manifest.mn.prepem ./mozilla/security/nss/lib/ckfw/manifest.mn +--- ./mozilla/security/nss/lib/ckfw/manifest.mn.prepem 2008-08-05 16:34:23.000000000 -0700 ++++ ./mozilla/security/nss/lib/ckfw/manifest.mn 2008-08-05 16:34:30.000000000 -0700 +@@ -38,7 +38,7 @@ MANIFEST_CVS_ID = "@(#) $RCSfile: manife + + CORE_DEPTH = ../../.. + +-DIRS = builtins ++DIRS = builtins pem + + PRIVATE_EXPORTS = \ + ck.h \ diff --git a/nss/nss-no-rpath.patch b/nss/nss-no-rpath.patch new file mode 100644 index 0000000..35ea573 --- /dev/null +++ b/nss/nss-no-rpath.patch @@ -0,0 +1,14 @@ +--- ./mozilla/security/nss/cmd/platlibs.mk.withrpath 2007-02-19 07:17:06.000000000 +0100 ++++ ./mozilla/security/nss/cmd/platlibs.mk 2007-02-19 07:18:07.000000000 +0100 +@@ -52,9 +52,9 @@ + + ifeq ($(OS_ARCH), Linux) + ifeq ($(USE_64), 1) +-EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib64:$$ORIGIN/../lib' ++#EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib64:$$ORIGIN/../lib' + else +-EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib' ++#EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib' + endif + endif + diff --git a/nss/nss-nolocalsql.patch b/nss/nss-nolocalsql.patch new file mode 100644 index 0000000..b72cc66 --- /dev/null +++ b/nss/nss-nolocalsql.patch @@ -0,0 +1,53 @@ +diff -up mozilla/security/nss/lib/Makefile.nolocalsql mozilla/security/nss/lib/Makefile +--- mozilla/security/nss/lib/Makefile.nolocalsql 2007-11-06 15:12:37.000000000 +0100 ++++ mozilla/security/nss/lib/Makefile 2007-11-06 15:13:35.000000000 +0100 +@@ -62,11 +62,11 @@ ifeq ($(OS_TARGET), WINCE) + DIRS := $(filter-out fortcrypt,$(DIRS)) + endif + +-ifndef MOZILLA_CLIENT +-ifndef NSS_USE_SYSTEM_SQLITE +-DIRS := sqlite $(DIRS) +-endif +-endif ++#ifndef MOZILLA_CLIENT ++#ifndef NSS_USE_SYSTEM_SQLITE ++#DIRS := sqlite $(DIRS) ++#endif ++#endif + + ####################################################################### + # (5) Execute "global" rules. (OPTIONAL) # +diff -up mozilla/security/nss/lib/softoken/legacydb/manifest.mn.nolocalsql mozilla/security/nss/lib/softoken/legacydb/manifest.mn +--- mozilla/security/nss/lib/softoken/legacydb/manifest.mn.nolocalsql 2007-11-06 15:10:59.000000000 +0100 ++++ mozilla/security/nss/lib/softoken/legacydb/manifest.mn 2007-11-06 15:11:07.000000000 +0100 +@@ -46,9 +46,9 @@ MAPFILE = $(OBJDIR)/nssdbm.def + + DEFINES += -DSHLIB_SUFFIX=\"$(DLL_SUFFIX)\" -DSHLIB_PREFIX=\"$(DLL_PREFIX)\" -DSOFTOKEN_LIB_NAME=\"$(notdir $(SHARED_LIBRARY))\" + +-ifdef MOZILLA_CLIENT +-INCLUDES += -I$(DIST)/include/sqlite3 +-endif ++#ifdef MOZILLA_CLIENT ++#INCLUDES += -I$(DIST)/include/sqlite3 ++#endif + + CSRCS = \ + dbmshim.c \ +diff -up mozilla/security/nss/lib/softoken/manifest.mn.nolocalsql mozilla/security/nss/lib/softoken/manifest.mn +--- mozilla/security/nss/lib/softoken/manifest.mn.nolocalsql 2007-11-06 15:08:14.000000000 +0100 ++++ mozilla/security/nss/lib/softoken/manifest.mn 2007-11-06 15:10:21.000000000 +0100 +@@ -47,9 +47,9 @@ MAPFILE = $(OBJDIR)/softokn.def + + DEFINES += -DSHLIB_SUFFIX=\"$(DLL_SUFFIX)\" -DSHLIB_PREFIX=\"$(DLL_PREFIX)\" -DSOFTOKEN_LIB_NAME=\"$(notdir $(SHARED_LIBRARY))\" -DSHLIB_VERSION=\"$(LIBRARY_VERSION)\" + +-ifdef MOZILLA_CLIENT +-INCLUDES += -I$(DIST)/include/sqlite3 +-endif ++#ifdef MOZILLA_CLIENT ++#INCLUDES += -I$(DIST)/include/sqlite3 ++#endif + + EXPORTS = \ + pkcs11.h \ +diff -up mozilla/security/nss/lib/softoken/config.mk.nolocalsql mozilla/security/nss/lib/softoken/config.mk diff --git a/nss/nss-pem-bug429175.patch b/nss/nss-pem-bug429175.patch new file mode 100644 index 0000000..6732c04 --- /dev/null +++ b/nss/nss-pem-bug429175.patch @@ -0,0 +1,12 @@ +diff -u --recursive mozilla.orig/security/nss/lib/ckfw/pem/pobject.c mozilla/security/nss/lib/ckfw/pem/pobject.c +--- mozilla.orig/security/nss/lib/ckfw/pem/pobject.c 2007-09-06 16:46:30.000000000 -0400 ++++ mozilla/security/nss/lib/ckfw/pem/pobject.c 2008-08-13 21:08:43.000000000 -0400 +@@ -160,7 +160,7 @@ + (void *) &ck_false, (PRUint32) sizeof(CK_BBOOL) + }; + static const NSSItem pem_x509Item = { +- (void *) &ckc_x509, (PRUint32) sizeof(CKC_X_509) ++ (void *) &ckc_x509, (PRUint32) sizeof(CK_ULONG) + }; + static const NSSItem pem_rsaItem = { + (void *) &ckk_rsa, (PRUint32) sizeof(CK_KEY_TYPE) diff --git a/nss/nss-prelink.conf b/nss/nss-prelink.conf new file mode 100644 index 0000000..bcfef1f --- /dev/null +++ b/nss/nss-prelink.conf @@ -0,0 +1,2 @@ +-b /lib{,64}/libfreebl3.so +-b /lib{,64}/libsoftokn3.so diff --git a/nss/nss.pc.in b/nss/nss.pc.in new file mode 100644 index 0000000..d47b9e1 --- /dev/null +++ b/nss/nss.pc.in @@ -0,0 +1,11 @@ +prefix=%prefix% +exec_prefix=%exec_prefix% +libdir=%libdir% +includedir=%includedir% + +Name: NSS +Description: Network Security Services +Version: %NSS_VERSION% +Requires: nspr >= %NSPR_VERSION% +Libs: -lssl3 -lsmime3 -lnss3 -lnssutil3 +Cflags: -I${includedir} diff --git a/show-build-order.pl b/show-build-order.pl index 06aff29..2db8d00 100755 --- a/show-build-order.pl +++ b/show-build-order.pl @@ -62,6 +62,8 @@ sub main { delete $br{"mingw32-ocaml"}; delete $br{"mingw32-curl"}; delete $br{"mingw32-pidgin"}; + delete $br{"mingw32-nspr"}; + delete $br{"mingw32-nss"}; # There is a dependency loop (gcc -> runtime/w32api -> gcc) # which has to be manually resolved below. Break that loop. -- 1.8.3.1