sunbird-shared-nssdb.patch
changeset 1 371dfea907fd
equal deleted inserted replaced
0:b71590debb98 1:371dfea907fd
       
     1 Index: configure
       
     2 ===================================================================
       
     3 RCS file: /cvsroot/mozilla/configure,v
       
     4 retrieving revision 1.1492.2.129
       
     5 diff -u -p -6 -r1.1492.2.129 configure
       
     6 --- configure	26 Mar 2008 19:13:06 -0000	1.1492.2.129
       
     7 +++ configure	4 Jan 2009 12:56:07 -0000
       
     8 @@ -19335,12 +19335,115 @@ echo "configure:19305: checking CAIRO_LI
       
     9  fi
       
    10  
       
    11  
       
    12  
       
    13  
       
    14  
       
    15 +
       
    16 +
       
    17 +  succeeded=no
       
    18 +
       
    19 +  if test -z "$PKG_CONFIG"; then
       
    20 +    # Extract the first word of "pkg-config", so it can be a program name with args.
       
    21 +set dummy pkg-config; ac_word=$2
       
    22 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
       
    23 +echo "configure:19352: checking for $ac_word" >&5
       
    24 +if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then
       
    25 +  echo $ac_n "(cached) $ac_c" 1>&6
       
    26 +else
       
    27 +  case "$PKG_CONFIG" in
       
    28 +  /*)
       
    29 +  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
       
    30 +  ;;
       
    31 +  ?:/*)			 
       
    32 +  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a dos path.
       
    33 +  ;;
       
    34 +  *)
       
    35 +  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
       
    36 +  ac_dummy="$PATH"
       
    37 +  for ac_dir in $ac_dummy; do 
       
    38 +    test -z "$ac_dir" && ac_dir=.
       
    39 +    if test -f $ac_dir/$ac_word; then
       
    40 +      ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word"
       
    41 +      break
       
    42 +    fi
       
    43 +  done
       
    44 +  IFS="$ac_save_ifs"
       
    45 +  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
       
    46 +  ;;
       
    47 +esac
       
    48 +fi
       
    49 +PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
       
    50 +if test -n "$PKG_CONFIG"; then
       
    51 +  echo "$ac_t""$PKG_CONFIG" 1>&6
       
    52 +else
       
    53 +  echo "$ac_t""no" 1>&6
       
    54 +fi
       
    55 +
       
    56 +  fi
       
    57 +
       
    58 +  if test "$PKG_CONFIG" = "no" ; then
       
    59 +     echo "*** The pkg-config script could not be found. Make sure it is"
       
    60 +     echo "*** in your path, or set the PKG_CONFIG environment variable"
       
    61 +     echo "*** to the full path to pkg-config."
       
    62 +     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
       
    63 +  else
       
    64 +     PKG_CONFIG_MIN_VERSION=0.9.0
       
    65 +     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
       
    66 +        echo $ac_n "checking for nss-shared-helper""... $ac_c" 1>&6
       
    67 +echo "configure:19396: checking for nss-shared-helper" >&5
       
    68 +
       
    69 +        if $PKG_CONFIG --exists "nss-shared-helper" ; then
       
    70 +            echo "$ac_t""yes" 1>&6
       
    71 +            succeeded=yes
       
    72 +
       
    73 +            echo $ac_n "checking NSSHELPER_CFLAGS""... $ac_c" 1>&6
       
    74 +echo "configure:19403: checking NSSHELPER_CFLAGS" >&5
       
    75 +            NSSHELPER_CFLAGS=`$PKG_CONFIG --cflags "nss-shared-helper"`
       
    76 +            echo "$ac_t""$NSSHELPER_CFLAGS" 1>&6
       
    77 +
       
    78 +            echo $ac_n "checking NSSHELPER_LIBS""... $ac_c" 1>&6
       
    79 +echo "configure:19408: checking NSSHELPER_LIBS" >&5
       
    80 +            ## don't use --libs since that can do evil things like add
       
    81 +            ## -Wl,--export-dynamic
       
    82 +            NSSHELPER_LIBS="`$PKG_CONFIG --libs-only-L \"nss-shared-helper\"` `$PKG_CONFIG --libs-only-l \"nss-shared-helper\"`"
       
    83 +            echo "$ac_t""$NSSHELPER_LIBS" 1>&6
       
    84 +        else
       
    85 +            NSSHELPER_CFLAGS=""
       
    86 +            NSSHELPER_LIBS=""
       
    87 +            ## If we have a custom action on failure, don't print errors, but 
       
    88 +            ## do set a variable so people can do so.
       
    89 +            NSSHELPER_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "nss-shared-helper"`
       
    90 +            
       
    91 +        fi
       
    92 +
       
    93 +        
       
    94 +        
       
    95 +     else
       
    96 +        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
       
    97 +        echo "*** See http://www.freedesktop.org/software/pkgconfig"
       
    98 +     fi
       
    99 +  fi
       
   100 +
       
   101 +  if test $succeeded = yes; then
       
   102 +     MOZ_ENABLE_NSSHELPER=1
       
   103 +  else
       
   104 +     MOZ_ENABLE_NSSHELPER=
       
   105 +  fi
       
   106 +
       
   107 +
       
   108 +if test "$MOZ_ENABLE_NSSHELPER"; then
       
   109 +  cat >> confdefs.h <<\EOF
       
   110 +#define MOZ_ENABLE_NSSHELPER 1
       
   111 +EOF
       
   112 +
       
   113 +fi
       
   114 +
       
   115 +
       
   116 +
       
   117 +
       
   118  # Check whether --enable-xul or --disable-xul was given.
       
   119  if test "${enable_xul+set}" = set; then
       
   120    enableval="$enable_xul"
       
   121    if test "$enableval" = "no"; then
       
   122      MOZ_XUL= 
       
   123    elif test "$enableval" = "yes"; then
       
   124 @@ -20581,12 +20684,15 @@ s%@ATSUI_FONT_FEATURE@%$ATSUI_FONT_FEATU
       
   125  s%@PNG_FUNCTIONS_FEATURE@%$PNG_FUNCTIONS_FEATURE%g
       
   126  s%@CAIRO_CFLAGS@%$CAIRO_CFLAGS%g
       
   127  s%@CAIRO_LIBS@%$CAIRO_LIBS%g
       
   128  s%@MOZ_TREE_CAIRO@%$MOZ_TREE_CAIRO%g
       
   129  s%@MOZ_CAIRO_CFLAGS@%$MOZ_CAIRO_CFLAGS%g
       
   130  s%@MOZ_CAIRO_LIBS@%$MOZ_CAIRO_LIBS%g
       
   131 +s%@NSSHELPER_CFLAGS@%$NSSHELPER_CFLAGS%g
       
   132 +s%@NSSHELPER_LIBS@%$NSSHELPER_LIBS%g
       
   133 +s%@MOZ_ENABLE_NSSHELPER@%$MOZ_ENABLE_NSSHELPER%g
       
   134  s%@MOZ_XUL@%$MOZ_XUL%g
       
   135  s%@MOZ_PYTHON@%$MOZ_PYTHON%g
       
   136  s%@MOZ_PYTHON_PREFIX@%$MOZ_PYTHON_PREFIX%g
       
   137  s%@MOZ_PYTHON_INCLUDES@%$MOZ_PYTHON_INCLUDES%g
       
   138  s%@MOZ_PYTHON_LIBS@%$MOZ_PYTHON_LIBS%g
       
   139  s%@MOZ_PYTHON_VER@%$MOZ_PYTHON_VER%g
       
   140 Index: configure.in
       
   141 ===================================================================
       
   142 RCS file: /cvsroot/mozilla/configure.in,v
       
   143 retrieving revision 1.1503.2.111
       
   144 diff -u -p -6 -r1.1503.2.111 configure.in
       
   145 --- configure.in	26 Mar 2008 19:03:05 -0000	1.1503.2.111
       
   146 +++ configure.in	4 Jan 2009 12:56:10 -0000
       
   147 @@ -6806,12 +6806,27 @@ fi
       
   148  
       
   149  AC_SUBST(MOZ_TREE_CAIRO)
       
   150  AC_SUBST(MOZ_CAIRO_CFLAGS)
       
   151  AC_SUBST(MOZ_CAIRO_LIBS)
       
   152  
       
   153  dnl ========================================================
       
   154 +dnl Check for nss-shared-helper
       
   155 +dnl ========================================================
       
   156 +
       
   157 +PKG_CHECK_MODULES(NSSHELPER, nss-shared-helper, 
       
   158 +  [MOZ_ENABLE_NSSHELPER=1],
       
   159 +  [MOZ_ENABLE_NSSHELPER=])
       
   160 +
       
   161 +if test "$MOZ_ENABLE_NSSHELPER"; then
       
   162 +  AC_DEFINE(MOZ_ENABLE_NSSHELPER)
       
   163 +fi
       
   164 +AC_SUBST(MOZ_ENABLE_NSSHELPER)
       
   165 +AC_SUBST(NSSHELPER_CFLAGS)
       
   166 +AC_SUBST(NSSHELPER_LIBS)
       
   167 +
       
   168 +dnl ========================================================
       
   169  dnl disable xul
       
   170  dnl ========================================================
       
   171  MOZ_ARG_DISABLE_BOOL(xul,
       
   172  [  --disable-xul           Disable XUL],
       
   173      MOZ_XUL= )
       
   174  if test "$MOZ_XUL"; then
       
   175 Index: calendar/sunbird/app/Makefile.in
       
   176 ===================================================================
       
   177 RCS file: /cvsroot/mozilla/calendar/sunbird/app/Makefile.in,v
       
   178 retrieving revision 1.21.2.23
       
   179 diff -u -p -6 -r1.21.2.23 Makefile.in
       
   180 --- calendar/sunbird/app/Makefile.in	4 May 2008 01:32:07 -0000	1.21.2.23
       
   181 +++ calendar/sunbird/app/Makefile.in	4 Jan 2009 12:56:11 -0000
       
   182 @@ -139,12 +139,16 @@ endif
       
   183  endif
       
   184  
       
   185  ifdef MOZ_JPROF
       
   186  LIBS += -ljprof
       
   187  endif
       
   188  
       
   189 +ifdef MOZ_ENABLE_NSSHELPER
       
   190 +LIBS += $(NSSHELPER_LIBS)
       
   191 +endif
       
   192 +
       
   193  ifndef MOZ_WINCONSOLE
       
   194  ifdef MOZ_DEBUG
       
   195  MOZ_WINCONSOLE = 1
       
   196  else
       
   197  MOZ_WINCONSOLE = 0
       
   198  endif
       
   199 Index: config/autoconf.mk.in
       
   200 ===================================================================
       
   201 RCS file: /cvsroot/mozilla/config/autoconf.mk.in,v
       
   202 retrieving revision 3.363.2.20
       
   203 diff -u -p -6 -r3.363.2.20 autoconf.mk.in
       
   204 --- config/autoconf.mk.in	14 Sep 2006 18:07:03 -0000	3.363.2.20
       
   205 +++ config/autoconf.mk.in	4 Jan 2009 12:56:11 -0000
       
   206 @@ -492,12 +492,16 @@ GLIB_CFLAGS	= @GLIB_CFLAGS@
       
   207  GLIB_LIBS	= @GLIB_LIBS@
       
   208  GLIB_GMODULE_LIBS	= @GLIB_GMODULE_LIBS@
       
   209  LIBIDL_CFLAGS = @LIBIDL_CFLAGS@
       
   210  LIBIDL_LIBS = @LIBIDL_LIBS@
       
   211  STATIC_LIBIDL = @STATIC_LIBIDL@
       
   212  
       
   213 +MOZ_ENABLE_NSSHELPER = @MOZ_ENABLE_NSSHELPER@
       
   214 +NSSHELPER_CFLAGS = @NSSHELPER_CFLAGS@
       
   215 +NSSHELPER_LIBS = @NSSHELPER_LIBS@
       
   216 +
       
   217  MOZ_NATIVE_MAKEDEPEND	= @SYSTEM_MAKEDEPEND@
       
   218  
       
   219  # Used for LD_LIBRARY_PATH
       
   220  LIBS_PATH       = @LIBS_PATH@
       
   221  
       
   222  MOZ_AUTO_DEPS	= @MOZ_AUTO_DEPS@
       
   223 Index: security/manager/ssl/src/Makefile.in
       
   224 ===================================================================
       
   225 RCS file: /cvsroot/mozilla/security/manager/ssl/src/Makefile.in,v
       
   226 retrieving revision 1.67.2.5
       
   227 diff -u -p -6 -r1.67.2.5 Makefile.in
       
   228 --- security/manager/ssl/src/Makefile.in	4 Jun 2008 20:42:03 -0000	1.67.2.5
       
   229 +++ security/manager/ssl/src/Makefile.in	4 Jan 2009 12:56:25 -0000
       
   230 @@ -128,17 +128,18 @@ REQUIRES	= nspr \
       
   231  EXTRA_DEPS = $(NSS_DEP_LIBS)
       
   232  
       
   233  DEFINES += -DNSS_ENABLE_ECC
       
   234  
       
   235  # Use local includes because they are inserted before INCLUDES
       
   236  # so that Mozilla's nss.h is used, not glibc's
       
   237 -LOCAL_INCLUDES += $(NSS_CFLAGS)
       
   238 +LOCAL_INCLUDES += $(NSS_CFLAGS) $(NSSHELPER_CFLAGS)
       
   239  
       
   240  EXTRA_DSO_LDOPTS += \
       
   241  		$(MOZ_UNICHARUTIL_LIBS) \
       
   242  		$(MOZ_COMPONENT_LIBS) \
       
   243  		$(MOZ_JS_LIBS) \
       
   244 +		$(NSSHELPER_LIBS) \
       
   245  		$(NSS_LIBS) \
       
   246  		$(NULL)
       
   247  
       
   248  include $(topsrcdir)/config/rules.mk
       
   249  
       
   250 Index: security/manager/ssl/src/nsNSSComponent.cpp
       
   251 ===================================================================
       
   252 RCS file: /cvsroot/mozilla/security/manager/ssl/src/nsNSSComponent.cpp,v
       
   253 retrieving revision 1.126.2.9
       
   254 diff -u -p -6 -r1.126.2.9 nsNSSComponent.cpp
       
   255 --- security/manager/ssl/src/nsNSSComponent.cpp	30 Jun 2008 22:54:11 -0000	1.126.2.9
       
   256 +++ security/manager/ssl/src/nsNSSComponent.cpp	4 Jan 2009 12:56:26 -0000
       
   257 @@ -41,12 +41,19 @@
       
   258   * and other provisions required by the GPL or the LGPL. If you do not delete
       
   259   * the provisions above, a recipient may use your version of this file under
       
   260   * the terms of any one of the MPL, the GPL or the LGPL.
       
   261   *
       
   262   * ***** END LICENSE BLOCK ***** */
       
   263  
       
   264 +#ifdef MOZ_ENABLE_NSSHELPER
       
   265 +#pragma GCC visibility push(default)
       
   266 +#include <nss-shared-helper.h>
       
   267 +#pragma GCC visibility pop
       
   268 +#include "prenv.h"
       
   269 +#endif
       
   270 +
       
   271  #include "nsNSSComponent.h"
       
   272  #include "nsNSSCallbacks.h"
       
   273  #include "nsNSSIOLayer.h"
       
   274  #include "nsSSLThread.h"
       
   275  #include "nsCertVerificationThread.h"
       
   276  #include "nsNSSEvent.h"
       
   277 @@ -1422,13 +1429,27 @@ nsNSSComponent::InitializeNSS(PRBool sho
       
   278      // If we could assume i18n will not change between profiles, one call per application
       
   279      // run were sufficient. As I can't predict what happens in the future, let's repeat
       
   280      // this call for every re-init of NSS.
       
   281  
       
   282      ConfigureInternalPKCS11Token();
       
   283  
       
   284 -    SECStatus init_rv = ::NSS_InitReadWrite(profileStr.get());
       
   285 +    SECStatus init_rv = SECFailure;
       
   286 +#ifdef MOZ_ENABLE_NSSHELPER
       
   287 +    if (PR_GetEnv("MOZ_SB_NO_NSSHELPER")) {
       
   288 +      init_rv = ::NSS_InitReadWrite(profileStr.get());
       
   289 +    } else {
       
   290 +      init_rv = ::nsshelp_open_db("MOZ_APP_DISPLAYNAME", profileStr.get(), 0);
       
   291 +
       
   292 +      if (init_rv != SECSuccess) {
       
   293 +        PR_LOG(gPIPNSSLog, PR_LOG_DEBUG, ("can not init NSS using nsshelp_open_db in %s\n", profileStr.get()));
       
   294 +        init_rv = ::NSS_InitReadWrite(profileStr.get());
       
   295 +      }
       
   296 +    }
       
   297 +#else
       
   298 +    init_rv = ::NSS_InitReadWrite(profileStr.get());
       
   299 +#endif
       
   300  
       
   301      if (init_rv != SECSuccess) {
       
   302        PR_LOG(gPIPNSSLog, PR_LOG_DEBUG, ("can not init NSS r/w in %s\n", profileStr.get()));
       
   303  
       
   304        if (supress_warning_preference) {
       
   305          which_nss_problem = problem_none;