Compare commits

...
Sign in to create a new pull request.

4 commits

Author SHA1 Message Date
Jack Magne
34627d4cff Latest fixes from f18. 2012-11-28 15:23:30 -08:00
Jack Magne
dafe53ad96 Xulrunner respin. 2012-08-02 10:44:13 -07:00
Jack Magne
336fa84579 Related #688361 - Get ESC to run on Gecko 2.0, again. 2012-06-22 11:30:52 -07:00
root
4cf3a66e3e Changes for Gecko-2.0 for F17. 2012-05-10 17:11:42 -07:00
11 changed files with 2881 additions and 227 deletions

View file

@ -1,85 +0,0 @@
--- ./esc/src/app/xpcom/rhCoolKey.cpp.fix8 2008-01-18 10:05:09.000000000 -0800
+++ ./esc/src/app/xpcom/rhCoolKey.cpp 2008-01-18 10:05:47.000000000 -0800
@@ -817,7 +817,7 @@
NS_IMETHODIMP rhCoolKey::ResetCoolKeyPIN(PRUint32 aKeyType, const char *aKeyID, const char *aScreenName, const char *aPIN, const char *aScreenNamePwd)
{
char tBuff[56];
- ::CoolKeyLogMsg( PR_LOG_ALWAYS, "%s Attempting to Reset Key PIN, ID: %s \n",GetTStamp(tBuff,56),aKeyID);
+ ::CoolKeyLogMsg( PR_LOG_ALWAYS, "%s Attempting to Reset Key Password, ID: %s \n",GetTStamp(tBuff,56),aKeyID);
CoolKeyNode *node = GetCoolKeyInfo(aKeyType, aKeyID);
if (!node)
--- ./esc/src/app/xpcom/tray/rhLinuxTray.cpp.fix8 2008-01-18 10:06:00.000000000 -0800
+++ ./esc/src/app/xpcom/tray/rhLinuxTray.cpp 2008-01-18 10:06:09.000000000 -0800
@@ -49,9 +49,15 @@
char tBuff[56];
GtkWidget *icon_box_widget = GTK_WIDGET(user_data);
+
if(icon_box_widget)
{
+ GdkScreen* gscreen = gdk_screen_get_default();
GdkWindow* window = icon_box_widget->window;
+
+ if(!window)
+ return;
+
gint width;
gint height;
@@ -59,20 +65,37 @@
gint px;
gint py;
+ gint screen_width = 0;
+ gint screen_height = 0;
+
+ if(gscreen)
+ {
+ screen_width = gdk_screen_get_width(gscreen);
+ screen_height = gdk_screen_get_height(gscreen);
+ }
+
gdk_drawable_get_size(window,&width,&height);
- gdk_window_get_position(window,
+ gdk_window_get_origin(window,
&px,
&py);
- PR_LOG( trayLog, PR_LOG_DEBUG, ("%s popup_position width %d height %d px %d py %d \n",GetTStamp(tBuff,56),width,height,px,py));
+ PR_LOG( trayLog, PR_LOG_DEBUG, ("%s popup_position width %d height %d px %d py %d *x %d *y %d screen_w %d screen_h %d \n",GetTStamp(tBuff,56),width,height,px,py,*x,*y,screen_width, screen_height));
+
+ // Are we close to the bottom of the screen?
+ if( screen_width > 0 && screen_height > 0
+ && ( screen_height - py) < (height * 3))
+ {
+ height = height* -2 ;
+ }
gint x_coord = px;
gint y_coord = (py + height);
*x = x_coord;
*y = y_coord;
+ *push_in = TRUE;
}
--- ./esc/src/app/xul/esc/application.ini.fix8 2008-01-18 10:04:33.000000000 -0800
+++ ./esc/src/app/xul/esc/application.ini 2008-01-18 10:04:43.000000000 -0800
@@ -25,11 +25,11 @@
Name=ESC
;
; This field specifies your application's version. This field is optional.
-Version=1.0.1-7
+Version=1.0.1-8
;
; This field specifies your application's build ID (timestamp). This field is
; required.
-BuildID=0000001011
+BuildID=0000001012
;
; This ID is just an example. Every XUL app ought to have it's own unique ID.
; You can use the microsoft "guidgen" or "uuidgen" tools, or go on

29
esc-1.1.0-fix10.patch Normal file
View file

@ -0,0 +1,29 @@
diff -up ./esc/src/app/xpcom/rhCoolKey.cpp.fix10 ./esc/src/app/xpcom/rhCoolKey.cpp
--- ./esc/src/app/xpcom/rhCoolKey.cpp.fix10 2011-07-19 03:47:15.264254844 -0700
+++ ./esc/src/app/xpcom/rhCoolKey.cpp 2011-07-19 03:47:30.224254842 -0700
@@ -542,7 +542,7 @@ PRBool rhCoolKey::InitInstance()
static const GREVersionRange greVersion =
{
"1.9", PR_TRUE,
- "2", PR_TRUE
+ "9.9", PR_TRUE
};
nsresult rv = GRE_GetGREPathWithProperties(&greVersion, 1, nsnull, 0, xpcom_path, 4096);
diff -up ./esc/src/app/xul/esc/application.ini.fix10 ./esc/src/app/xul/esc/application.ini
--- ./esc/src/app/xul/esc/application.ini.fix10 2011-07-19 03:42:23.368254822 -0700
+++ ./esc/src/app/xul/esc/application.ini 2011-07-19 03:42:40.531254827 -0700
@@ -25,11 +25,11 @@ Vendor=RedHat
Name=ESC
;
; This field specifies your application's version. This field is optional.
-Version=1.1.0-13
+Version=1.1.0-15
;
; This field specifies your application's build ID (timestamp). This field is
; required.
-BuildID=0000001013
+BuildID=0000001015
;
; This ID is just an example. Every XUL app ought to have it's own unique ID.
; You can use the microsoft "guidgen" or "uuidgen" tools, or go on

93
esc-1.1.0-fix11.patch Normal file
View file

@ -0,0 +1,93 @@
diff -up ./esc/src/app/xpcom/Makefile.sdk.fix11 ./esc/src/app/xpcom/Makefile.sdk
--- ./esc/src/app/xpcom/Makefile.sdk.fix11 2011-09-16 11:28:43.413286053 -0700
+++ ./esc/src/app/xpcom/Makefile.sdk 2011-09-16 11:28:43.529286053 -0700
@@ -108,7 +108,7 @@ endif
ifeq ($(OS_ARCH),Linux)
CPPFLAGS += -fno-rtti \
-fno-exceptions \
- -fshort-wchar -fPIC
+ -fshort-wchar -fPIC -std=gnu++0x
GECKO_LD_LIBS=-L$(GECKO_SDK_PATH)/lib $(GECKO_SDK_PATH)/lib/libxpcomglue.a -lnssutil3 -lnss3 -lcrmf -lssl3 -lsmime3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl
endif
@@ -129,6 +129,10 @@ ifdef ESC_VERSION
GECKO_DEFINES += -DESC_VERSION=$(ESC_VERSION)
endif
+ifdef GECKO_BIN_PATH
+GECKO_DEFINES += -DGECKO_BIN_PATH=$(GECKO_BIN_PATH)
+endif
+
NSS_INCLUDE = /usr/include/nss3
NSPR_INCLUDE = /usr/include/nspr4
diff -up ./esc/src/app/xpcom/rhCoolKey.cpp.fix11 ./esc/src/app/xpcom/rhCoolKey.cpp
--- ./esc/src/app/xpcom/rhCoolKey.cpp.fix11 2011-09-16 11:28:43.510286053 -0700
+++ ./esc/src/app/xpcom/rhCoolKey.cpp 2011-09-16 11:28:43.530286053 -0700
@@ -538,7 +538,7 @@ PRBool rhCoolKey::InitInstance()
char xpcom_path[4096];
xpcom_path[0] = 0;
-
+/*
static const GREVersionRange greVersion =
{
"1.9", PR_TRUE,
@@ -550,6 +550,13 @@ PRBool rhCoolKey::InitInstance()
return PR_FALSE;
}
+*/
+
+ char *grePath = (char *) GETSTRING(GECKO_BIN_PATH);
+
+
+ snprintf(xpcom_path,4096,grePath);
+
char *lib_name =(char *) XPCOM_LIB_NAME ;
diff -up ./esc/src/app/xpcom/tray/Makefile.sdk.fix11 ./esc/src/app/xpcom/tray/Makefile.sdk
--- ./esc/src/app/xpcom/tray/Makefile.sdk.fix11 2011-09-16 11:31:59.645286087 -0700
+++ ./esc/src/app/xpcom/tray/Makefile.sdk 2011-09-16 11:32:10.859286088 -0700
@@ -23,7 +23,7 @@ include $(CORE_DEPTH)/coreconf/config.mk
include $(CORE_DEPTH)/coreconf/rules.mk
ifeq ($(OS_ARCH),Linux)
-CXXFLAGS += $(MOZ_GTK_CFLAGS) $(MOZ_GTK2_CFLAGS) $(NOTIFY_CXX_FLAGS) -fPIC
+CXXFLAGS += $(MOZ_GTK_CFLAGS) $(MOZ_GTK2_CFLAGS) $(NOTIFY_CXX_FLAGS) -fPIC -std=gnu++0x
endif
diff -up ./esc/src/app/xul/esc/application.ini.fix11 ./esc/src/app/xul/esc/application.ini
--- ./esc/src/app/xul/esc/application.ini.fix11 2011-09-16 11:28:43.511286053 -0700
+++ ./esc/src/app/xul/esc/application.ini 2011-09-16 11:28:43.532286053 -0700
@@ -25,11 +25,11 @@ Vendor=RedHat
Name=ESC
;
; This field specifies your application's version. This field is optional.
-Version=1.1.0-15
+Version=1.1.0-16
;
; This field specifies your application's build ID (timestamp). This field is
; required.
-BuildID=0000001015
+BuildID=0000001016
;
; This ID is just an example. Every XUL app ought to have it's own unique ID.
; You can use the microsoft "guidgen" or "uuidgen" tools, or go on
@@ -41,12 +41,12 @@ ID={6380471b-1924-4b48-b652-49f42951af86
; This field is required. It specifies the minimum Gecko version that this
; application requires. Specifying 1.8 matches all releases with a version
; prefixed by 1.8 (e.g., 1.8a4, 1.8b, 1.8.2).
-MinVersion=1.99
+MinVersion=6.0.0
;
; This field is optional. It specifies the maximum Gecko version that this
; application requires. It should be specified if your application uses
; unfrozen interfaces. Specifying 1.8 matches all releases with a version
; prefixed by 1.8 (e.g., 1.8a4, 1.8b, 1.8.2).
-MaxVersion=2.99
+MaxVersion=20.0.0
[Shell]

50
esc-1.1.0-fix12.patch Normal file
View file

@ -0,0 +1,50 @@
diff -up ./esc/coreconf/Linux3.1.mk.fix12 ./esc/coreconf/Linux3.1.mk
--- ./esc/coreconf/Linux3.1.mk.fix12 2011-11-28 13:55:27.623816205 -0800
+++ ./esc/coreconf/Linux3.1.mk 2011-11-28 13:56:11.119536737 -0800
@@ -0,0 +1,35 @@
+# BEGIN COPYRIGHT BLOCK
+# This Program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation; version 2 of the License.
+#
+# This Program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place, Suite 330, Boston, MA 02111-1307 USA.
+#
+# Copyright (C) 2005 Red Hat, Inc.
+# All rights reserved.
+# END COPYRIGHT BLOCK
+
+#
+# Config stuff for Linux 3.1 (ELF)
+#
+
+include $(CORE_DEPTH)/coreconf/Linux.mk
+
+OS_REL_CFLAGS += -DLINUX2_1
+MKSHLIB = $(CC) -shared -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so)
+ifdef BUILD_OPT
+ OPTIMIZER = -O2
+endif
+
+ifdef MAPFILE
+ MKSHLIB += -Wl,--version-script,$(MAPFILE)
+endif
+PROCESS_MAP_FILE = grep -v ';-' $(LIBRARY_NAME).def | \
+ sed -e 's,;+,,' -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,;,' > $@
+
diff -up ./esc/src/app/xpcom/rhCoolKey.cpp.fix12 ./esc/src/app/xpcom/rhCoolKey.cpp
--- ./esc/src/app/xpcom/rhCoolKey.cpp.fix12 2011-11-28 19:29:53.894102752 -0800
+++ ./esc/src/app/xpcom/rhCoolKey.cpp 2011-11-28 19:30:46.003028405 -0800
@@ -41,7 +41,6 @@
#include "prlink.h"
#include "prthread.h"
#include "nscore.h"
-#include "nsCopySupport.h"
#include <vector>
#include <string>
#include <time.h>

273
esc-1.1.0-fix13.patch Normal file
View file

@ -0,0 +1,273 @@
diff -up ./esc/coreconf/Linux3.2.mk.fix13 ./esc/coreconf/Linux3.2.mk
--- ./esc/coreconf/Linux3.2.mk.fix13 2012-02-20 18:08:55.637187190 -0800
+++ ./esc/coreconf/Linux3.2.mk 2012-02-20 18:09:16.296139174 -0800
@@ -0,0 +1,35 @@
+# BEGIN COPYRIGHT BLOCK
+# This Program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation; version 2 of the License.
+#
+# This Program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place, Suite 330, Boston, MA 02111-1307 USA.
+#
+# Copyright (C) 2005 Red Hat, Inc.
+# All rights reserved.
+# END COPYRIGHT BLOCK
+
+#
+# Config stuff for Linux 3.2 (ELF)
+#
+
+include $(CORE_DEPTH)/coreconf/Linux.mk
+
+OS_REL_CFLAGS += -DLINUX2_1
+MKSHLIB = $(CC) -shared -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so)
+ifdef BUILD_OPT
+ OPTIMIZER = -O2
+endif
+
+ifdef MAPFILE
+ MKSHLIB += -Wl,--version-script,$(MAPFILE)
+endif
+PROCESS_MAP_FILE = grep -v ';-' $(LIBRARY_NAME).def | \
+ sed -e 's,;+,,' -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,;,' > $@
+
diff -up ./esc/src/app/xpcom/Makefile.sdk.fix13 ./esc/src/app/xpcom/Makefile.sdk
--- ./esc/src/app/xpcom/Makefile.sdk.fix13 2012-02-20 18:01:49.522177961 -0800
+++ ./esc/src/app/xpcom/Makefile.sdk 2012-02-20 18:01:49.526177952 -0800
@@ -35,7 +35,12 @@ ifndef GECKO_BIN_PATH
GECKO_BIN_PATH=/usr/lib/xulrunner-1.9pre
endif
XUL_FRAMEWORK_BIN_PATH=$(GECKO_BIN_PATH)
-
+ifndef GECKO_IDL_PATH
+GECKO_IDL_PATH=/usr/share/idl/xulrunner-2
+endif
+ifndef PYTHON_BIN_PATH
+PYTHON_BIN=python
+endif
ifeq ($(OS_ARCH),Darwin)
ifndef GECKO_SDK_PATH
@@ -190,13 +195,14 @@ endif
all:: export libs
libs::
- $(GECKO_BIN_PATH)/xpidl -v -I $(GECKO_SDK_PATH)/idl -I $(NSPR_INCLUDE) -m header rhIKeyNotify.idl
- $(GECKO_BIN_PATH)/xpidl -v -I $(GECKO_SDK_PATH)/idl -I $(NSPR_INCLUDE) -m typelib rhIKeyNotify.idl
+ $(PYTHON_BIN) $(GECKO_SDK_PATH)/bin/header.py --cachedir /tmp -o rhIKeyNotify.h -I $(GECKO_IDL_PATH) -I $(NSPR_INCLUDE) rhIKeyNotify.idl
+
+ $(PYTHON_BIN) $(GECKO_SDK_PATH)/bin/typelib.py --cachedir /tmp -o rhIKeyNotify.xpt -I $(GECKO_IDL_PATH) -I $(NSPR_INCLUDE) rhIKeyNotify.idl
- $(GECKO_BIN_PATH)/xpidl -v -I $(GECKO_SDK_PATH)/idl -I $(NSPR_INCLUDE) -m header rhICoolKey.idl
+ $(PYTHON_BIN) $(GECKO_SDK_PATH)/bin/header.py --cachedir /tmp -o rhICoolKey.h -I $(GECKO_IDL_PATH) -I $(NSPR_INCLUDE) rhICoolKey.idl
- $(GECKO_BIN_PATH)/xpidl -v -I $(GECKO_SDK_PATH)/idl -I $(NSPR_INCLUDE) -m typelib rhICoolKey.idl
+ $(PYTHON_BIN) $(GECKO_SDK_PATH)/bin/typelib.py --cachedir /tmp -o rhICoolKey.xpt -I $(GECKO_IDL_PATH) -I $(NSPR_INCLUDE) rhICoolKey.idl
ifeq ($(OS_ARCH),Darwin)
$(CXX) $(CPPFLAGS) -c -o $(OBJECT) $(GECKO_CONFIG_INCLUDE) $(GECKO_DEFINES) $(GECKO_INCLUDES) $(COOL_INCLUDES) $(CXXFLAGS) $(FILES)
diff -up ./esc/src/app/xpcom/rhCoolKey.cpp.fix13 ./esc/src/app/xpcom/rhCoolKey.cpp
--- ./esc/src/app/xpcom/rhCoolKey.cpp.fix13 2012-02-20 18:01:49.524177956 -0800
+++ ./esc/src/app/xpcom/rhCoolKey.cpp 2012-02-20 18:01:49.526177952 -0800
@@ -98,6 +98,7 @@ static PRLogModuleInfo *coolKeyLog = PR_
rhCoolKey *single = NULL;
+
class CoolKeyShutdownObserver : public nsIObserver
{
public:
@@ -364,9 +365,9 @@ SECStatus rhCoolKey::badCertHandler(void
GetTStamp(tBuff,56),err,host,port)
);
- PRBool isTemporaryOverride = PR_FALSE;
+ bool isTemporaryOverride = PR_FALSE;
PRUint32 overrideBits = 0;
- PRBool overrideResult = PR_FALSE;
+ bool overrideResult = PR_FALSE;
// Use the nsICertOverrideService to see if we have
// previously trusted this certificate.
@@ -554,14 +555,14 @@ PRBool rhCoolKey::InitInstance()
char *grePath = (char *) GETSTRING(GECKO_BIN_PATH);
- snprintf(xpcom_path,4096,grePath);
+ snprintf(xpcom_path,4096,"%s%s",grePath,"libxpcom.so");
char *lib_name =(char *) XPCOM_LIB_NAME ;
PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKey::xpcom_path %s \n",GetTStamp(tBuff,56),xpcom_path));
- XPCOMGlueStartup(xpcom_path);
+ XPCOMGlueStartup("/usr/lib/xulrunner-2/libxpcom.so");
nssComponent
= do_GetService(PSM_COMPONENT_CONTRACTID);
@@ -1309,7 +1310,7 @@ NS_IMETHODIMP rhCoolKey::GetCoolKeyStatu
/* boolean GetCoolKeyIsReallyCoolKey (in unsigned long aKeyType, in string aKeyID); */
-NS_IMETHODIMP rhCoolKey::GetCoolKeyIsReallyCoolKey(PRUint32 aKeyType, const char *aKeyID, PRBool *_retval)
+NS_IMETHODIMP rhCoolKey::GetCoolKeyIsReallyCoolKey(PRUint32 aKeyType, const char *aKeyID, bool *_retval)
{
char tBuff[56];
PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKey::GetCoolKeyIsReallyCoolKey thread: %p \n",GetTStamp(tBuff,56),PR_GetCurrentThread()));
@@ -1328,7 +1329,7 @@ NS_IMETHODIMP rhCoolKey::GetCoolKeyIsRea
}
/* long GetCoolKeyGetAppletVer (in unsigned long aKeyType, in string aKeyID, in boolean aIsMajor); */
-NS_IMETHODIMP rhCoolKey::GetCoolKeyGetAppletVer(PRUint32 aKeyType, const char *aKeyID, PRBool aIsMajor, PRInt32 *_retval)
+NS_IMETHODIMP rhCoolKey::GetCoolKeyGetAppletVer(PRUint32 aKeyType, const char *aKeyID, bool aIsMajor, PRInt32 *_retval)
{
char tBuff[56];
PR_LOG(coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKey::GetCoolKeyAppletVer thread: %p \n",GetTStamp(tBuff,56),PR_GetCurrentThread()));
@@ -1344,7 +1345,7 @@ NS_IMETHODIMP rhCoolKey::GetCoolKeyGetAp
/* boolean rhCoolKeyIsEnrolled (in unsigned long aKeyType, in string aKeyID); */
-NS_IMETHODIMP rhCoolKey::GetCoolKeyIsEnrolled(PRUint32 aKeyType, const char *aKeyID, PRBool *_retval)
+NS_IMETHODIMP rhCoolKey::GetCoolKeyIsEnrolled(PRUint32 aKeyType, const char *aKeyID, bool *_retval)
{
char tBuff[56];
PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKey::RhCoolKeyIsEnrolled thread: %p \n",GetTStamp(tBuff,56),PR_GetCurrentThread()));
@@ -1586,7 +1587,7 @@ NS_IMETHODIMP rhCoolKey::GetCoolKeyIssue
}
/* boolean SetCoolKeyConfigValue (in string aName, in string aValue); */
-NS_IMETHODIMP rhCoolKey::SetCoolKeyConfigValue(const char *aName, const char *aValue, PRBool *_retval)
+NS_IMETHODIMP rhCoolKey::SetCoolKeyConfigValue(const char *aName, const char *aValue, bool *_retval)
{
char tBuff[56];
PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("rhCoolKey::SetCoolKeyConfigValue thread: %p \n",GetTStamp(tBuff,56),PR_GetCurrentThread()));
@@ -1620,7 +1621,7 @@ NS_IMETHODIMP rhCoolKey::GetCoolKeyConfi
/* boolean rhCoolKeyRequiresAuthentication (in unsigned long aKeyType, in string aKeyID); */
-NS_IMETHODIMP rhCoolKey::GetCoolKeyRequiresAuthentication(PRUint32 aKeyType, const char *aKeyID, PRBool *_retval)
+NS_IMETHODIMP rhCoolKey::GetCoolKeyRequiresAuthentication(PRUint32 aKeyType, const char *aKeyID, bool *_retval)
{
char tBuff[56];
PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKey::RhCoolKeyRequiresAuthentication thread: %p \n",GetTStamp(tBuff,56),PR_GetCurrentThread()));
@@ -1640,7 +1641,7 @@ NS_IMETHODIMP rhCoolKey::GetCoolKeyRequi
/* boolean rhGetCoolKeyIsAuthenticated (in unsigned long aKeyType, in string aKeyID); */
-NS_IMETHODIMP rhCoolKey::GetCoolKeyIsAuthenticated(PRUint32 aKeyType, const char *aKeyID, PRBool *_retval)
+NS_IMETHODIMP rhCoolKey::GetCoolKeyIsAuthenticated(PRUint32 aKeyType, const char *aKeyID, bool *_retval)
{
char tBuff[56];
PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKey::RhGetCoolKeyIsAuthenticated thread: %p \n",GetTStamp(tBuff,56),PR_GetCurrentThread()));
@@ -1660,7 +1661,7 @@ NS_IMETHODIMP rhCoolKey::GetCoolKeyIsAut
/* boolean rhAuthenticateCoolKey (in unsigned long aKeyType, in string aKeyID, in string aPIN); */
-NS_IMETHODIMP rhCoolKey::AuthenticateCoolKey(PRUint32 aKeyType, const char *aKeyID, const char *aPIN, PRBool *_retval)
+NS_IMETHODIMP rhCoolKey::AuthenticateCoolKey(PRUint32 aKeyType, const char *aKeyID, const char *aPIN, bool *_retval)
{
char tBuff[56];
PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKey::RhAuthenticateCoolKey thread: %p \n",GetTStamp(tBuff,56),PR_GetCurrentThread()));
diff -up ./esc/src/app/xpcom/tray/Makefile.sdk.fix13 ./esc/src/app/xpcom/tray/Makefile.sdk
--- ./esc/src/app/xpcom/tray/Makefile.sdk.fix13 2012-02-20 18:01:49.522177961 -0800
+++ ./esc/src/app/xpcom/tray/Makefile.sdk 2012-02-20 18:01:49.526177952 -0800
@@ -39,6 +39,15 @@ ifndef GECKO_BIN_PATH
GECKO_BIN_PATH=/usr/lib/xulrunner-1.9
endif
+ifndef GECKO_IDL_PATH
+GECKO_IDL_PATH=/usr/share/idl/xulrunner-2
+endif
+
+ifndef PYTHON_BIN_PATH
+PYTHON_BIN=python
+endif
+
+
ifeq ($(OS_ARCH),Darwin)
ifndef GECKO_SDK_PATH
GECKO_SDK_PATH =/Users/jmagne/Desktop/gecko-sdk-mac-universal
@@ -220,13 +229,14 @@ all:: export libs
libs::
echo "PPC_BUILD $(PPC_BUILD)"
- $(GECKO_BIN_PATH)/xpidl -I $(GECKO_SDK_PATH)/idl -I $(NSPR_INCLUDE) -m header rhITray.idl
- $(GECKO_BIN_PATH)/xpidl -I $(GECKO_SDK_PATH)/idl -I $(NSPR_INCLUDE) -m typelib rhITray.idl
+ $(PYTHON_BIN) $(GECKO_SDK_PATH)/bin/header.py --cachedir=/tmp -o rhITray.h -I $(GECKO_IDL_PATH) -I $(NSPR_INCLUDE) rhITray.idl
+
+ $(PYTHON_BIN) $(GECKO_SDK_PATH)/bin/typelib.py --cachedir=/tmp -o rhITray.xpt -I $(GECKO_IDL_PATH) -I $(NSPR_INCLUDE) rhITray.idl
- $(GECKO_BIN_PATH)/xpidl -I $(GECKO_SDK_PATH)/idl -I $(NSPR_INCLUDE) -m header rhITrayWindNotify.idl
+ $(PYTHON_BIN) $(GECKO_SDK_PATH)/bin/header.py --cachedir=/tmp -o rhITrayWindNotify.h -I $(GECKO_IDL_PATH) -I $(NSPR_INCLUDE) rhITrayWindNotify.idl
- $(GECKO_BIN_PATH)/xpidl -I $(GECKO_SDK_PATH)/idl -I $(NSPR_INCLUDE) -m typelib rhITrayWindNotify.idl
+ $(PYTHON_BIN) $(GECKO_SDK_PATH)/bin/typelib.py --cachedir=/tmp -o rhITrayWindNotify.xpt -I $(GECKO_IDL_PATH) -I $(NSPR_INCLUDE) rhITrayWindNotify.idl
ifeq ($(OS_ARCH),Darwin)
$(CXX) $(CPPFLAGS) -c -o $(OBJECT) $(GECKO_CONFIG_INCLUDE) $(GECKO_DEFINES) $(GECKO_INCLUDES) $(COOL_INCLUDES) $(CXXFLAGS) $(FILES)
diff -up ./esc/src/app/xpcom/tray/rhLinuxTray.cpp.fix13 ./esc/src/app/xpcom/tray/rhLinuxTray.cpp
--- ./esc/src/app/xpcom/tray/rhLinuxTray.cpp.fix13 2012-02-20 18:01:49.512177984 -0800
+++ ./esc/src/app/xpcom/tray/rhLinuxTray.cpp 2012-02-20 18:01:49.526177952 -0800
@@ -215,7 +215,7 @@ NS_IMETHODIMP rhTray::Show(nsIBaseWindow
return NS_OK;
}
-NS_IMETHODIMP rhTray::IsInitializedAlready(PRBool *_retval)
+NS_IMETHODIMP rhTray::IsInitializedAlready(bool *_retval)
{
*_retval = 0;
@@ -749,7 +749,7 @@ void rhTray::NotifyTrayWindListeners(PRU
std::list< nsCOMPtr <rhITrayWindNotify> >::const_iterator it;
for(it=gTrayWindNotifyListeners.begin(); it!=gTrayWindNotifyListeners.end(); ++it) {
- PRBool claimed = 0;
+ bool claimed = 0;
PR_LOG( trayLog, PR_LOG_DEBUG, ("%s NotifyTrayWindListeners about to notify \n",GetTStamp(tBuff,56)));
((rhITrayWindNotify *) (*it))->RhTrayWindEventNotify(aEvent,aEventData, aKeyData, aData1, aData2, &claimed);
diff -up ./esc/src/app/xul/esc/application.ini.fix13 ./esc/src/app/xul/esc/application.ini
--- ./esc/src/app/xul/esc/application.ini.fix13 2012-02-20 18:01:49.523177958 -0800
+++ ./esc/src/app/xul/esc/application.ini 2012-02-20 18:01:49.527177950 -0800
@@ -25,7 +25,7 @@ Vendor=RedHat
Name=ESC
;
; This field specifies your application's version. This field is optional.
-Version=1.1.0-16
+Version=1.1.0-15
;
; This field specifies your application's build ID (timestamp). This field is
; required.
diff -up ./esc/src/app/xul/esc/chrome/content/esc/ESC.js.fix13 ./esc/src/app/xul/esc/chrome/content/esc/ESC.js
--- ./esc/src/app/xul/esc/chrome/content/esc/ESC.js.fix13 2012-02-20 18:01:49.514177980 -0800
+++ ./esc/src/app/xul/esc/chrome/content/esc/ESC.js 2012-02-20 18:01:49.527177950 -0800
@@ -118,7 +118,7 @@ jsNotify.prototype = {
if(!iid.equals(Components.interfaces.rhIKeyNotify) &&
!iid.equals(Components.interfaces.nsISupports))
{
- MyAlert(getBundleString("errorJsNotifyInterface"));
+ //MyAlert(getBundleString("errorJsNotifyInterface"));
throw Components.results.NS_ERROR_NO_INTERFACE;
}
return this;
diff -up ./esc/src/app/xul/esc/chrome/content/esc/TRAY.js.fix13 ./esc/src/app/xul/esc/chrome/content/esc/TRAY.js
--- ./esc/src/app/xul/esc/chrome/content/esc/TRAY.js.fix13 2012-02-20 18:01:49.515177978 -0800
+++ ./esc/src/app/xul/esc/chrome/content/esc/TRAY.js 2012-02-20 18:01:49.528177948 -0800
@@ -49,7 +49,7 @@ jsWindNotify.prototype = {
if(!iid.equals(Components.interfaces.rhITrayWindNotify) &&
!iid.equals(Components.interfaces.nsISupports))
{
- MyAlert(getBundleString("errorJsNotifyInterface"));
+ //MyAlert(getBundleString("errorJsNotifyInterface"));
throw Components.results.NS_ERROR_NO_INTERFACE;
}
return this;

458
esc-1.1.0-fix14.patch Normal file
View file

@ -0,0 +1,458 @@
diff -up ./esc/coreconf/Linux3.3.mk.fix14 ./esc/coreconf/Linux3.3.mk
--- ./esc/coreconf/Linux3.3.mk.fix14 2012-05-10 15:09:37.298143842 -0700
+++ ./esc/coreconf/Linux3.3.mk 2012-05-10 15:09:37.298143842 -0700
@@ -0,0 +1,35 @@
+# BEGIN COPYRIGHT BLOCK
+# This Program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation; version 2 of the License.
+#
+# This Program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place, Suite 330, Boston, MA 02111-1307 USA.
+#
+# Copyright (C) 2005 Red Hat, Inc.
+# All rights reserved.
+# END COPYRIGHT BLOCK
+
+#
+# Config stuff for Linux 3.3 (ELF)
+#
+
+include $(CORE_DEPTH)/coreconf/Linux.mk
+
+OS_REL_CFLAGS += -DLINUX2_1
+MKSHLIB = $(CC) -shared -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so)
+ifdef BUILD_OPT
+ OPTIMIZER = -O2
+endif
+
+ifdef MAPFILE
+ MKSHLIB += -Wl,--version-script,$(MAPFILE)
+endif
+PROCESS_MAP_FILE = grep -v ';-' $(LIBRARY_NAME).def | \
+ sed -e 's,;+,,' -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,;,' > $@
+
diff -up ./esc/coreconf/Linux3.4.mk.fix14 ./esc/coreconf/Linux3.4.mk
--- ./esc/coreconf/Linux3.4.mk.fix14 2012-05-10 15:09:37.298143842 -0700
+++ ./esc/coreconf/Linux3.4.mk 2012-05-10 15:09:37.298143842 -0700
@@ -0,0 +1,35 @@
+# BEGIN COPYRIGHT BLOCK
+# This Program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation; version 2 of the License.
+#
+# This Program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place, Suite 330, Boston, MA 02111-1307 USA.
+#
+# Copyright (C) 2005 Red Hat, Inc.
+# All rights reserved.
+# END COPYRIGHT BLOCK
+
+#
+# Config stuff for Linux 3.4 (ELF)
+#
+
+include $(CORE_DEPTH)/coreconf/Linux.mk
+
+OS_REL_CFLAGS += -DLINUX2_1
+MKSHLIB = $(CC) -shared -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so)
+ifdef BUILD_OPT
+ OPTIMIZER = -O2
+endif
+
+ifdef MAPFILE
+ MKSHLIB += -Wl,--version-script,$(MAPFILE)
+endif
+PROCESS_MAP_FILE = grep -v ';-' $(LIBRARY_NAME).def | \
+ sed -e 's,;+,,' -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,;,' > $@
+
diff -up ./esc/coreconf/Linux3.5.mk.fix14 ./esc/coreconf/Linux3.5.mk
--- ./esc/coreconf/Linux3.5.mk.fix14 2012-05-10 15:09:37.299143830 -0700
+++ ./esc/coreconf/Linux3.5.mk 2012-05-10 15:09:37.298143842 -0700
@@ -0,0 +1,35 @@
+# BEGIN COPYRIGHT BLOCK
+# This Program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation; version 2 of the License.
+#
+# This Program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place, Suite 330, Boston, MA 02111-1307 USA.
+#
+# Copyright (C) 2005 Red Hat, Inc.
+# All rights reserved.
+# END COPYRIGHT BLOCK
+
+#
+# Config stuff for Linux 3.5 (ELF)
+#
+
+include $(CORE_DEPTH)/coreconf/Linux.mk
+
+OS_REL_CFLAGS += -DLINUX2_1
+MKSHLIB = $(CC) -shared -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so)
+ifdef BUILD_OPT
+ OPTIMIZER = -O2
+endif
+
+ifdef MAPFILE
+ MKSHLIB += -Wl,--version-script,$(MAPFILE)
+endif
+PROCESS_MAP_FILE = grep -v ';-' $(LIBRARY_NAME).def | \
+ sed -e 's,;+,,' -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,;,' > $@
+
diff -up ./esc/src/app/xpcom/Makefile.sdk.fix14 ./esc/src/app/xpcom/Makefile.sdk
--- ./esc/src/app/xpcom/Makefile.sdk.fix14 2012-05-10 15:09:37.293143904 -0700
+++ ./esc/src/app/xpcom/Makefile.sdk 2012-05-10 15:25:17.138394220 -0700
@@ -106,15 +106,14 @@ endif
endif
ifeq ($(OS_ARCH),Darwin)
-GECKO_LD_LIBS=-L$(GECKO_SDK_PATH)/lib -W1, $(GECKO_SDK_PATH)/lib/libxpcomglue.a -L$(XUL_FRAMEWORK_BIN_PATH) -lnss3 -lssl3 -lsoftokn3 -lplds4 -lplc4 -lnssutil3
+GECKO_LD_LIBS=-L$(GECKO_SDK_PATH)/lib -W1, $(GECKO_SDK_PATH)/lib/libxpcomglue.a -L$(XUL_FRAMEWORK_BIN_PATH) -lnss3 -lssl3 -lsoftokn3 -lplds4 -lplc4 -lnssutil3
endif
-
ifeq ($(OS_ARCH),Linux)
-CPPFLAGS += -fno-rtti \
- -fno-exceptions \
- -fshort-wchar -fPIC -std=gnu++0x
-GECKO_LD_LIBS=-L$(GECKO_SDK_PATH)/lib $(GECKO_SDK_PATH)/lib/libxpcomglue.a -lnssutil3 -lnss3 -lcrmf -lssl3 -lsmime3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl
+CPPFLAGS += -g -fno-rtti \
+ -DXPCOM_GLUE_USE_NSPR -fno-exceptions \
+ -fshort-wchar -fPIC -std=gnu++0x
+GECKO_LD_LIBS=-L$(GECKO_SDK_PATH)/lib -lnssutil3 -lnss3 -lcrmf -lssl3 -lsmime3 -lplds4 -lplc4 -lnspr4 -lpthread -ldl -L$(GECKO_SDK_PATH)/lib -lxpcomglue_s -lxpcom
endif
ifeq ($(OS_ARCH),WINNT)
@@ -128,15 +127,15 @@ endif
# #include "mozilla-config.h" to each of your .cpp files.
#GECKO_CONFIG_INCLUDE = -include mozilla-config.h
-GECKO_DEFINES = -DXPCOM_GLUE -DMOZILLA_CLIENT
+GECKO_DEFINES = -DXPCOM_GLUE -DMOZILLA_CLIENT
ifdef ESC_VERSION
GECKO_DEFINES += -DESC_VERSION=$(ESC_VERSION)
endif
-ifdef GECKO_BIN_PATH
-GECKO_DEFINES += -DGECKO_BIN_PATH=$(GECKO_BIN_PATH)
-endif
+#ifdef GECKO_BIN_PATH
+#GECKO_DEFINES += -DGECKO_BIN_PATH=$(GECKO_BIN_PATH)
+#endif
NSS_INCLUDE = /usr/include/nss3
NSPR_INCLUDE = /usr/include/nspr4
@@ -162,7 +161,7 @@ COOL_LDFLAGS += -lsystemStubs -framewor
endif
GECKO_LDFLAGS= -lnspr4 \
- -lplds4 -lplc4 -ldl -lpthread -Wl -z \
+ -lplds4 -lplc4 -ldl -lpthread -z \
$(GECKO_LD_LIBS)
ifeq ($(OS_ARCH),WINNT)
@@ -215,7 +214,7 @@ ifeq ($(OS_ARCH),Linux)
$(CXX) $(CPPFLAGS) -shared -o $(TARGET) $(OBJECT) $(GECKO_DEFINES) $(GECKO_INCLUDES) $(GECKO_LDFLAGS) $(COOL_LDFLAGS)
chmod +x $(TARGET)
- strip $(TARGET)
+ #strip $(TARGET)
endif
ifeq ($(OS_ARCH),WINNT)
diff -up ./esc/src/app/xpcom/rhCoolKey.cpp.fix14 ./esc/src/app/xpcom/rhCoolKey.cpp
--- ./esc/src/app/xpcom/rhCoolKey.cpp.fix14 2012-05-10 15:09:37.294143891 -0700
+++ ./esc/src/app/xpcom/rhCoolKey.cpp 2012-05-10 15:09:37.300143818 -0700
@@ -16,7 +16,6 @@
* END COPYRIGHT BLOCK **/
#define FORCE_PR_LOG 1
-
#include <stdio.h>
#include "rhCoolKey.h"
#include "CoolKey.h"
@@ -34,7 +33,7 @@
#include "nsIPrefBranch.h"
#include "nsIPrefService.h"
#include "nsCOMPtr.h"
-#include "nsIProxyObjectManager.h"
+#include "nsThreadUtils.h"
#include "nsIObserver.h"
#include "nsIObserverService.h"
#include "nsXPCOMGlue.h"
@@ -91,6 +90,7 @@ std::list<CoolKeyNode*>rhCoolKey::gASCAv
std::list< nsCOMPtr <rhIKeyNotify> > rhCoolKey::gNotifyListeners;
PRLock* rhCoolKey::certCBLock=NULL;
+PRLock* rhCoolKey::eventLock= NULL;
PRBool rhCoolKey::gAutoEnrollBlankTokens = PR_FALSE;
@@ -162,6 +162,70 @@ ASCCalcBase64DecodedLength(const char *a
return ((numValidChars / 4) * 3) - numEqualSigns;
}
+class CoolKeyResultTask : public nsRunnable
+{
+public:
+ ~CoolKeyResultTask() {
+
+ char tBuff[56];
+ PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s ~CoolKeyResultTask thread: %p \n",GetTStamp(tBuff,56),PR_GetCurrentThread()));
+
+ if (mKeyID) {
+ free(mKeyID);
+ }
+
+ if (mStrData) {
+ free(mStrData);
+ }
+
+ }
+
+ CoolKeyResultTask(unsigned long keyType, const char *keyID, unsigned long keyState,
+ unsigned long data, const char *strData, rhICoolKey *listener)
+ : mKeyType(keyType), mKeyState(keyState),
+ mData(data), mListener(listener)
+ {
+
+ mStrData = NULL;
+ mKeyID = NULL;
+
+ MOZ_ASSERT(!NS_IsMainThread());
+
+ if (keyID) {
+ mKeyID = strdup(keyID);
+ }
+
+ if (strData) {
+ mStrData = strdup(strData);
+ }
+
+ char tBuff[56];
+
+ PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s CoolKeyResultTask::CoolKeyResultTask thread: %p keyID %s \n",GetTStamp(tBuff,56),PR_GetCurrentThread(),mKeyID));
+
+ }
+
+
+ NS_IMETHOD Run() {
+ MOZ_ASSERT(NS_IsMainThread());
+
+ char tBuff[56];
+ PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s CoolKeyResultTask::Run thread: %p \n",GetTStamp(tBuff,56),PR_GetCurrentThread()));
+
+ if (mListener != NULL) {
+ mListener->RhNotifyKeyStateChange(mKeyType, mKeyID, mKeyState,
+ mData, mStrData);
+ }
+ }
+
+private:
+ unsigned long mKeyType;
+ char *mKeyID;
+ unsigned long mKeyState;
+ unsigned long mData;
+ char *mStrData;
+ rhICoolKey *mListener;
+};
unsigned int
ASCCalcBase64EncodedLength(unsigned int aDataLength)
@@ -200,6 +264,14 @@ rhCoolKey::rhCoolKey()
exit(1);
}
+ eventLock = PR_NewLock();
+
+ if(!eventLock) {
+ PR_LOG( coolKeyLog, PR_LOG_ERROR, ("%s Failed to create event lock exiting! \n", GetTStamp(tBuff,56)));
+ exit(1);
+ }
+
+
PRBool res = InitInstance();
if(res == PR_FALSE)
@@ -221,6 +293,10 @@ rhCoolKey::~rhCoolKey()
if(certCBLock) {
PR_DestroyLock(certCBLock);
}
+
+ if(eventLock) {
+ PR_DestroyLock(eventLock);
+ }
}
void rhCoolKey::ShutDownInstance()
@@ -255,8 +331,17 @@ HRESULT rhCoolKey::Dispatch( rhICoolKey
unsigned long keyType, const char *keyID, unsigned long keyState,
unsigned long data, const char *strData)
{
- return listener->RhNotifyKeyStateChange(keyType,keyID, keyState,
- data, strData);
+
+ char tBuff[56];
+
+ PR_Lock(eventLock);
+ PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKey::Dispatch: thead: %p \n",GetTStamp(tBuff,56),PR_GetCurrentThread()));
+ nsCOMPtr<nsIRunnable> result = new CoolKeyResultTask(keyType, keyID,keyState, data, strData, listener);
+
+ NS_DispatchToMainThread(result);
+
+ PR_Unlock(eventLock);
+ return 1;
}
HRESULT rhCoolKey::Reference( rhICoolKey *listener )
@@ -536,34 +621,6 @@ PRBool rhCoolKey::InitInstance()
PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKey::InitInstance %p \n",GetTStamp(tBuff,56),this));
- char xpcom_path[4096];
- xpcom_path[0] = 0;
-/*
- static const GREVersionRange greVersion =
- {
- "1.9", PR_TRUE,
- "9.9", PR_TRUE
- };
-
- nsresult rv = GRE_GetGREPathWithProperties(&greVersion, 1, nsnull, 0, xpcom_path, 4096);
- if (NS_FAILED(rv)) {
- return PR_FALSE;
- }
-
-*/
-
- char *grePath = (char *) GETSTRING(GECKO_BIN_PATH);
-
-
- snprintf(xpcom_path,4096,"%s%s",grePath,"libxpcom.so");
-
- char *lib_name =(char *) XPCOM_LIB_NAME ;
-
-
- PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKey::xpcom_path %s \n",GetTStamp(tBuff,56),xpcom_path));
-
- XPCOMGlueStartup("/usr/lib/xulrunner-2/libxpcom.so");
-
nssComponent
= do_GetService(PSM_COMPONENT_CONTRACTID);
@@ -640,23 +697,8 @@ PRBool rhCoolKey::InitInstance()
rhICoolKey* rhCoolKey::CreateProxyObject()
{
- char tBuff[56];
- rhICoolKey *proxyObject = NULL;
-
- PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKey::CreateProxyObject: \n",GetTStamp(tBuff,56)));
-
- nsCOMPtr<nsIProxyObjectManager> manager =
- do_GetService(NS_XPCOMPROXY_CONTRACTID);
-
- PR_ASSERT(manager);
-
-
- manager->GetProxyForObject(NULL, NS_GET_IID(rhICoolKey), this, NS_PROXY_SYNC | NS_PROXY_ALWAYS, (void**)&proxyObject);
-
- PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKey::CreateProxyObject: original: %p proxy %p \n",GetTStamp(tBuff,56),this,proxyObject));
-
- return proxyObject;
-
+ // Now we are using nsRunnable, no more proxy object manager.
+ return this;
}
CoolKeyNode* rhCoolKey::GetCoolKeyInfo(unsigned long aKeyType, const char * aKeyID)
diff -up ./esc/src/app/xpcom/rhCoolKey.h.fix14 ./esc/src/app/xpcom/rhCoolKey.h
--- ./esc/src/app/xpcom/rhCoolKey.h.fix14 2012-05-10 15:09:37.274144142 -0700
+++ ./esc/src/app/xpcom/rhCoolKey.h 2012-05-10 15:09:37.300143818 -0700
@@ -120,6 +120,7 @@ protected:
static std::list< nsCOMPtr <rhIKeyNotify> > gNotifyListeners;
static PRLock* certCBLock;
+ static PRLock* eventLock;
rhICoolKey* mProxy;
diff -up ./esc/src/app/xul/esc/application.ini.fix14 ./esc/src/app/xul/esc/application.ini
--- ./esc/src/app/xul/esc/application.ini.fix14 2012-05-10 15:09:37.295143878 -0700
+++ ./esc/src/app/xul/esc/application.ini 2012-05-10 15:09:37.300143818 -0700
@@ -25,11 +25,11 @@ Vendor=RedHat
Name=ESC
;
; This field specifies your application's version. This field is optional.
-Version=1.1.0-15
+Version=1.1.0-16
;
; This field specifies your application's build ID (timestamp). This field is
; required.
-BuildID=0000001016
+BuildID=0000001017
;
; This ID is just an example. Every XUL app ought to have it's own unique ID.
; You can use the microsoft "guidgen" or "uuidgen" tools, or go on
diff -up ./esc/src/app/xul/esc/chrome/content/esc/password.xul.fix14 ./esc/src/app/xul/esc/chrome/content/esc/password.xul
--- ./esc/src/app/xul/esc/chrome/content/esc/password.xul.fix14 2012-05-10 15:09:37.251144429 -0700
+++ ./esc/src/app/xul/esc/chrome/content/esc/password.xul 2012-05-10 15:09:37.301143805 -0700
@@ -27,7 +27,6 @@
<stringbundle id="esc_strings" src="chrome://esc/locale/esc.properties"/>
<script src="password.js"/>
-<script src="TRAY.js"/>
<spacer class = "horSpacerVeryShort"/>
<grid>
diff -up ./esc/src/lib/coolkey/CoolKeyHandler.cpp.fix14 ./esc/src/lib/coolkey/CoolKeyHandler.cpp
--- ./esc/src/lib/coolkey/CoolKeyHandler.cpp.fix14 2009-02-03 17:43:47.000000000 -0800
+++ ./esc/src/lib/coolkey/CoolKeyHandler.cpp 2012-05-10 15:09:37.302143792 -0700
@@ -451,7 +451,6 @@ HRESULT CoolKeyHandler::Init(const CoolK
PR_LOG( coolKeyLogHN, PR_LOG_DEBUG, ("%s CoolKeyHandler::Init:\n",GetTStamp(tBuff,56)));
bool connected = false;
- PRThread* cThread = NULL;
const char *readerName = NULL;
if (!aKey || aKey->mKeyType != eCKType_CoolKey || !aKey->mKeyID) {
@@ -461,9 +460,6 @@ HRESULT CoolKeyHandler::Init(const CoolK
readerName = GetReaderNameForKeyID(aKey);
- cThread = PR_GetCurrentThread();
-
-
mKey = *aKey;
diff -up ./esc/src/lib/coolkey/SmartCardMonitoringThread.cpp.fix14 ./esc/src/lib/coolkey/SmartCardMonitoringThread.cpp
--- ./esc/src/lib/coolkey/SmartCardMonitoringThread.cpp.fix14 2012-05-10 15:09:37.250144442 -0700
+++ ./esc/src/lib/coolkey/SmartCardMonitoringThread.cpp 2012-05-10 15:09:37.302143792 -0700
@@ -29,6 +29,9 @@
#include <assert.h>
#include <time.h>
+#ifdef LINUX
+#include <unistd.h>
+#endif
static PRLogModuleInfo *coolKeyLogSC = PR_NewLogModule("coolKeySmart");

724
esc-1.1.0-fix15.patch Normal file
View file

@ -0,0 +1,724 @@
diff -up ./esc/src/app/xpcom/rhCoolKey.cpp.fix15 ./esc/src/app/xpcom/rhCoolKey.cpp
--- ./esc/src/app/xpcom/rhCoolKey.cpp.fix15 2012-11-26 14:34:39.963604936 -0800
+++ ./esc/src/app/xpcom/rhCoolKey.cpp 2012-11-26 14:34:57.012934189 -0800
@@ -16,6 +16,7 @@
* END COPYRIGHT BLOCK **/
#define FORCE_PR_LOG 1
+#define nsnull NULL
#include <stdio.h>
#include "rhCoolKey.h"
#include "CoolKey.h"
diff -up ./esc/src/app/xpcom/rhICoolKey.idl.fix15 ./esc/src/app/xpcom/rhICoolKey.idl
--- ./esc/src/app/xpcom/rhICoolKey.idl.fix15 2012-11-26 14:33:41.730480795 -0800
+++ ./esc/src/app/xpcom/rhICoolKey.idl 2012-11-26 14:34:08.479996487 -0800
@@ -48,11 +48,11 @@ interface rhICoolKey:nsISupports
void CancelCoolKeyOperation(in unsigned long aKeyType, in string aKeyID);
- void GetAvailableCoolKeys(out PRUint32 count,
+ void GetAvailableCoolKeys(out uint32_t count,
[retval, array, size_is(count)] out string str);
void GetCoolKeyCertNicknames(in unsigned long aKeyType, in string aKeyID,
- out PRUint32 count, [retval, array, size_is(count)] out string str);
+ out uint32_t count, [retval, array, size_is(count)] out string str);
unsigned long GetCoolKeyStatus(in unsigned long aKeyType,in string aKeyID);
diff -up ./esc/src/app/xpcom/tray/Makefile.sdk.fix15 ./esc/src/app/xpcom/tray/Makefile.sdk
--- ./esc/src/app/xpcom/tray/Makefile.sdk.fix15 2012-11-21 11:55:24.396959829 -0800
+++ ./esc/src/app/xpcom/tray/Makefile.sdk 2012-11-21 11:55:35.227171392 -0800
@@ -248,7 +248,7 @@ ifeq ($(OS_ARCH),Linux)
$(CXX) $(CPPFLAGS) -shared -o $(TARGET) $(OBJECT) $(GECKO_DEFINES) $(GECKO_INCLUDES) $(GECKO_LDFLAGS) $(COOLKEY_LIBS)
chmod +x $(TARGET)
- strip $(TARGET)
+ #strip $(TARGET)
endif
ifeq ($(OS_ARCH),WINNT)
diff -up ./esc/src/app/xpcom/tray/rhLinuxTray.cpp.fix15 ./esc/src/app/xpcom/tray/rhLinuxTray.cpp
--- ./esc/src/app/xpcom/tray/rhLinuxTray.cpp.fix15 2012-11-21 11:56:16.677981170 -0800
+++ ./esc/src/app/xpcom/tray/rhLinuxTray.cpp 2012-11-26 14:26:03.793664849 -0800
@@ -290,7 +290,7 @@ HRESULT rhTray::Initialize()
PR_LOG( trayLog, PR_LOG_DEBUG, ("%s rhTray::Initialize \n",GetTStamp(tBuff,56)));
g_set_print_handler(rhTray::TrayPrintHandler);
- notify_icon_create_with_image_file(COOLKEY_ICON);
+ notify_icon_create_with_image_file((char *)COOLKEY_ICON);
HRESULT res = notify_icon_created_ok();
@@ -690,7 +690,7 @@ rhITrayWindNotify* rhTray::GetTrayWindNo
PR_LOG( trayLog, PR_LOG_DEBUG, ("%s rhCoolKey::GetNotifyKeyListener: looking for %p returning NULL. \n",GetTStamp(tBuff,56),listener));
- return nsnull;
+ return NULL;
}
int rhTray::GetTrayWindNotifyListSize()
diff -up ./esc/src/app/xpcom/tray/rhTray.h.fix15 ./esc/src/app/xpcom/tray/rhTray.h
--- ./esc/src/app/xpcom/tray/rhTray.h.fix15 2012-11-21 11:57:47.827762126 -0800
+++ ./esc/src/app/xpcom/tray/rhTray.h 2012-11-21 11:57:58.304966858 -0800
@@ -37,7 +37,7 @@ extern "C" {
int maxSize = 55;
if(aSize < maxSize)
return NULL;
- char *tFormat = "[%c]";
+ char *tFormat = (char *) "[%c]";
time_t tm = time(NULL);
struct tm *ptr = localtime(&tm);
strftime(aTime ,maxSize ,tFormat,ptr);
diff -up ./esc/src/app/xul/esc/chrome/content/esc/advancedinfo.xul.fix15 ./esc/src/app/xul/esc/chrome/content/esc/advancedinfo.xul
--- ./esc/src/app/xul/esc/chrome/content/esc/advancedinfo.xul.fix15 2012-11-21 14:23:47.146114600 -0800
+++ ./esc/src/app/xul/esc/chrome/content/esc/advancedinfo.xul 2012-11-21 14:24:57.057408644 -0800
@@ -22,6 +22,9 @@
<window
class="escwindow"
id="esc-window"
+ height="500"
+ width="600"
+ persist="width height"
onload="ShowAdvancedInfo();"
onunload="cleanup();"
title="&escTitle;"
diff -up ./esc/src/app/xul/esc/chrome/content/esc/config.xul.fix15 ./esc/src/app/xul/esc/chrome/content/esc/config.xul
--- ./esc/src/app/xul/esc/chrome/content/esc/config.xul.fix15 2012-11-21 14:25:17.956795502 -0800
+++ ./esc/src/app/xul/esc/chrome/content/esc/config.xul 2012-11-21 14:25:53.737457832 -0800
@@ -26,6 +26,7 @@
onload="InitializePhoneHomeConfigUI();"
width ="650"
height= "400"
+ persist="width height"
onunload="cleanup();"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<stringbundle id="esc_strings" src="chrome://esc/locale/esc.properties"/>
diff -up ./esc/src/app/xul/esc/chrome/content/esc/esc.css.fix15 ./esc/src/app/xul/esc/chrome/content/esc/esc.css
--- ./esc/src/app/xul/esc/chrome/content/esc/esc.css.fix15 2012-11-21 14:26:08.849737580 -0800
+++ ./esc/src/app/xul/esc/chrome/content/esc/esc.css 2012-11-21 14:27:06.947813071 -0800
@@ -334,6 +334,10 @@ tr [COOLKeyPresent="yes"]{
border: black solid 4px;
}
+.BorderedBrowser {
+ border: black solid 4px;
+}
+
.SelectedRow {
color: white;
diff -up ./esc/src/app/xul/esc/chrome/content/esc/ESC.js.fix15 ./esc/src/app/xul/esc/chrome/content/esc/ESC.js
--- ./esc/src/app/xul/esc/chrome/content/esc/ESC.js.fix15 2012-11-20 16:10:36.281805678 -0800
+++ ./esc/src/app/xul/esc/chrome/content/esc/ESC.js 2012-11-21 14:55:47.392037184 -0800
@@ -29,6 +29,7 @@ var gAdminPage = 0;
var gFactoryMode = 0;
var gHiddenPage = 0;
var gExternalUI = 0;
+var gErrorAlready = 0;
loadStringBundle();
@@ -116,9 +117,10 @@ jsNotify.prototype = {
{
// alert("iid: " + iid);
if(!iid.equals(Components.interfaces.rhIKeyNotify) &&
- !iid.equals(Components.interfaces.nsISupports))
+ !iid.equals(Components.interfaces.nsISupports) &&
+ !iid.equals(Components.interfaces.nsIClassInfo))
{
- //MyAlert(getBundleString("errorJsNotifyInterface"));
+ MyAlert(getBundleString("errorJsNotifyInterface"));
throw Components.results.NS_ERROR_NO_INTERFACE;
}
return this;
@@ -885,7 +887,7 @@ function DoShowAdvancedInfo()
textDump += getBundleString("noLogFileOrData");
}
- var wnd = window.openDialog("chrome://esc/content/advancedinfo.xul","Info","chrome,centerscreen,width=600,height=500,modal=yes",textDump);
+ var wnd = window.openDialog("chrome://esc/content/advancedinfo.xul","Info","chrome,centerscreen,modal=yes",textDump);
}
@@ -1279,7 +1281,8 @@ function DoShowFullEnrollmentUI()
}
else
{
- UpdateEnrollmentArea(keyType,keyID,keyInserted,showFullUI);
+ MyAlert(getBundleString("errorPhoneHomeInfo"));
+ window.close();
}
}
@@ -1424,7 +1427,7 @@ function UpdateEnrollmentArea(keyType,ke
HideItem(yes_key_area);
HideItem(enroll_key_message);
HideItem(enrollBtn);
- UpdateESCSize(ESC_ENROLL_WIDTH,ESC_ENROLL_HEIGHT);
+ UpdateESCSize();
}
}
else
@@ -1453,7 +1456,7 @@ function UpdateEnrollmentArea(keyType,ke
if(!alreadyEnrolled && inserted && showExternalUI)
{
- UpdateESCSize(ESC_ENROLL_WIDTH,ESC_ENROLL_HEIGHT);
+ UpdateESCSize();
return;
}
@@ -1792,9 +1795,73 @@ function InitializeEnrollment()
UpdateCoolKeyAvailabilityForEnrollment();
}
+function AdminKeyPressHandler(evt)
+{
+ var newitem = null;
+ var olditem = null;
+ var offset = 0;
+ var selectedIndex = 0;
+
+ var list = document.getElementById("AdminBindingList");
+ if(!list)
+ return;
+
+ var numRows = list.getRowCount();
+ if(numRows == 0)
+ {
+ return;
+ }
+ list.selectItem(gCurrentSelectedRow);
+ selectedIndex = list.selectedIndex;
+
+ if(selectedIndex == -1)
+ {
+ olditem = list.getItemAtIndex(0);
+ if(olditem) {
+ list.selectItem(olditem);
+ olditem.click();
+ }
+ }
+ selectedIndex = list.selectedIndex;
+ olditem = list.getItemAtIndex(selectedIndex);
+
+ if(evt.keyCode == KeyEvent.DOM_VK_UP) {
+ offset = -1;
+ }
+ if(evt.keyCode == KeyEvent.DOM_VK_DOWN) {
+ offset = 1;
+ }
+
+ if(offset == 0)
+ return;
+
+ if(olditem) {
+ list.moveByOffset( offset , 1, 0);
+ newitem = list.getItemAtIndex(list.selectedIndex);
+ olditem.blur();
+ if(newitem)
+ newitem.click();
+ }
+
+ var item = null;
+ for( i = 0; i < list.getRowCount(); i ++) {
+ item = list.getItemAtIndex(i);
+
+ if(item && item != gCurrentSelectedRow) {
+ item.setAttribute("class","UnSelectedRow");
+ }
+ }
+}
+
function InitializeAdminBindingList()
{
+ var list = document.getElementById("AdminBindingList");
+
+ if(list) {
+ list.addEventListener("keypress", AdminKeyPressHandler, false);
+ }
+
gAdminPage = 1;
UpdateAdminBindingListAvailability();
@@ -1802,8 +1869,7 @@ function InitializeAdminBindingList()
DoSetEnrolledBrowserLaunchState();
DoHandleEnrolledBrowserLaunch();
- window.setTimeout('ShowWindow()',250);
-
+ list.focus();
}
//Window related functions
@@ -1974,12 +2040,18 @@ function SelectESCPage(keyType,keyID,pho
var enrollWnd = IsPageWindowPresent(ENROLL_WINDOW);
var adminWnd = IsPageWindowPresent(ADMIN_WINDOW);
- if(keyUninitialized == UNINITIALIZED && !phoneHomeFailed ) //formatted uninitialized card
+ var arr = GetAvailableCoolKeys();
+ var no_launch_external_ui = 0;
+
+ if (arr && arr.length > 1)
+ no_launch_external_ui = 1;
+
+
+ if(keyUninitialized == UNINITIALIZED && !phoneHomeFailed && !no_launch_external_ui ) //formatted uninitialized card
{
if(enrollWnd) //Enrollment window is already up
{
enrollWnd.focus();
- enrollWnd.ShowWindow();
}
else
{
@@ -2332,12 +2404,14 @@ function UpdateAdminKeyDetailsArea(keyTy
}
else
{
+ DisableItem(enrollbtn);
DisableItem(resetpinbtn);
DisableItem(formatbtn);
if(adminkeymenu)
{
DisableItem(menu_format);
DisableItem(menu_resetpassword);
+ DisableItem(menu_enroll);
}
}
@@ -2762,6 +2836,7 @@ function DoEnrollCoolKey()
var tokencode = null;
var failed = 0;
+ gErrorAlready = 0;
if (type == "userKey")
{
@@ -2792,12 +2867,13 @@ function DoEnrollCoolKey()
{
UpdateAdminListRow(keyType,keyID);
UpdateAdminKeyDetailsArea(keyType,keyID);
- if(!failed)
+ if(!failed && !gErrorAlready)
{
AdminToggleStatusProgress(1,keyType,keyID);
UpdateAdminKeyAreaDetailsLabel(getBundleString("enrollingToken"));
}
}
+ gErrorAlready = 0;
}
function DoCollectPassword(operation)
@@ -2822,6 +2898,7 @@ function DoResetSelectedCoolKeyPIN()
var screennamepwd = null;
var failed = 0;
+ gErrorAlready = 0;
if (GetCoolKeyIsEnrolled(keyType, keyID))
{
@@ -2843,12 +2920,13 @@ function DoResetSelectedCoolKeyPIN()
UpdateAdminListRow(keyType,keyID);
UpdateAdminKeyDetailsArea(keyType,keyID);
- if(!failed)
+ if(!failed && !gErrorAlready)
{
AdminToggleStatusProgress(1,keyType,keyID);
UpdateAdminKeyAreaDetailsLabel(getBundleString("resettingTokenPIN"));
}
}
+ gErrorAlready = 0;
}
function DoFormatCoolKey(type)
@@ -2865,6 +2943,7 @@ function DoFormatCoolKey(type)
var failed = 0;
var globalType = GetCachedTokenType(keyID);
+ gErrorAlready = 0;
if(!type)
lType = gKeyEnrollmentType;
else
@@ -2890,12 +2969,13 @@ function DoFormatCoolKey(type)
{
UpdateAdminListRow(keyType,keyID);
UpdateAdminKeyDetailsArea(keyType,keyID);
- if(!failed)
+ if(!failed && !gErrorAlready)
{
AdminToggleStatusProgress(1,keyType,keyID);
UpdateAdminKeyAreaDetailsLabel(getBundleString("formatingToken"));
}
}
+ gErrorAlready = 0;
}
function DoCancelOperation()
{
@@ -3156,6 +3236,7 @@ function OnCoolKeyStateError(keyType, ke
AdminToggleStatusProgress(0,keyType,keyID);
}
+ gErrorAlready = 1;
if(!CheckForSecurityMode())
MyAlert(typeStr);
ClearProgressBar(KeyToProgressBarID(keyType, keyID));
@@ -3261,9 +3342,73 @@ function refresh()
window.resizeBy(0,-1);
}
+//nsIWebProgressListener to oversee the loading of the external UI
+var uiListener = null;
+var esc_enroll_uri = null;
+
+const STATE_START = Components.interfaces.nsIWebProgressListener.STATE_START;
+const STATE_STOP = Components.interfaces.nsIWebProgressListener.STATE_STOP;
+const STATE_IS_DOCUMENT = Components.interfaces.nsIWebProgressListener.STATE_IS_DOCUMENT;
+uiListener =
+{
+ QueryInterface: function(aIID)
+ {
+ if (aIID.equals(Components.interfaces.nsIWebProgressListener) ||
+ aIID.equals(Components.interfaces.nsISupportsWeakReference) ||
+ aIID.equals(Components.interfaces.nsISupports))
+ return this;
+ throw Components.results.NS_NOINTERFACE;
+ },
+
+ onStateChange: function(aWebProgress, aRequest, aFlag, aStatus)
+ {
+ if(aFlag & STATE_START && aFlag & STATE_IS_DOCUMENT)
+ {
+ }
+ if(aFlag & STATE_STOP && aFlag & STATE_IS_DOCUMENT)
+ {
+
+ var url = aWebProgress.DOMWindow.document.URL;
+
+ if(url != esc_enroll_uri)
+ {
+ MyAlert(getBundleString("errorEnrollmentUI"));
+
+ if(uiListener)
+ aWebProgress.removeProgressListener(uiListener);
+
+ var enrollWnd = IsPageWindowPresent(ENROLL_WINDOW);
+
+ if(enrollWnd)
+ {
+ enrollWnd.close();
+ }
+ }
+ else
+ {
+ if(uiListener)
+ aWebProgress.removeProgressListener(uiListener);
+ }
+ }
+ },
+
+ onLocationChange: function(aProgress, aRequest, aURI)
+ {
+ },
+ onProgressChange: function(aWebProgress, aRequest, curSelf, maxSelf, curTot, maxTot)
+ {
+ },
+ onStatusChange: function(aWebProgress, aRequest, aStatus, aMessage)
+ {
+ },
+ onSecurityChange: function(aWebProgress, aRequest, aState)
+ {
+ }
+}
+
function loadExternalESCUI()
{
- var esc_enroll_uri = null;
+ esc_enroll_uri = null;
var keyType= null;
var keyID = null;
@@ -3324,6 +3469,7 @@ function loadExternalESCUI()
if(ui_id)
{
ui_id.setAttribute("src",esc_enroll_uri);
+ ///ui_id.addProgressListener(uiListener,Components.interfaces.nsIWebProgress.NOTIFY_STATE_DOCUMENT);
UpdateEnrollmentArea(keyType,keyID,inserted,showFullUI,showExternalUI)
}
diff -up ./esc/src/app/xul/esc/chrome/content/esc/esc.xul.fix15 ./esc/src/app/xul/esc/chrome/content/esc/esc.xul
--- ./esc/src/app/xul/esc/chrome/content/esc/esc.xul.fix15 2012-11-21 11:14:42.545118881 -0800
+++ ./esc/src/app/xul/esc/chrome/content/esc/esc.xul 2012-11-21 11:16:21.542042804 -0800
@@ -147,7 +147,8 @@
</hbox>
</vbox>
- <iframe id="esc-ui" flex="1" class="BorderedIFrame" hidden="true"/>
+ <browser id="esc-ui" class="BorderedBrowser" height="725" flex="1" hidden="true" src="" />
+
</groupbox>
<hbox id = "enrollment_button_box">
<spacer flex = "4"/>
diff -up ./esc/src/app/xul/esc/chrome/content/esc/password.js.fix15 ./esc/src/app/xul/esc/chrome/content/esc/password.js
--- ./esc/src/app/xul/esc/chrome/content/esc/password.js.fix15 2012-11-21 11:16:28.740186184 -0800
+++ ./esc/src/app/xul/esc/chrome/content/esc/password.js 2012-11-21 11:18:32.722686536 -0800
@@ -42,6 +42,21 @@ function doOperation()
window.close();
}
+//
+// unregister out notify event
+//
+function cleanup()
+{
+ TrayRemoveWindow(null);
+ try {
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ netkey.rhCoolKeyUnSetNotifyCallback(gNotify);
+ } catch(e) {
+ MyAlert(getBundleString("errorUniversalXPConnect") + e);
+ }
+
+}
+
function GetLocalPINValue()
{
diff -up ./esc/src/app/xul/esc/chrome/content/esc/password.xul.fix15 ./esc/src/app/xul/esc/chrome/content/esc/password.xul
diff -up ./esc/src/app/xul/esc/chrome/content/esc/security.xul.fix15 ./esc/src/app/xul/esc/chrome/content/esc/security.xul
--- ./esc/src/app/xul/esc/chrome/content/esc/security.xul.fix15 2012-11-21 14:52:14.192045524 -0800
+++ ./esc/src/app/xul/esc/chrome/content/esc/security.xul 2012-11-21 14:52:57.839863826 -0800
@@ -26,6 +26,7 @@
onload="InitializeSecurityEnrollment()"
width ="600"
height= "575"
+ persist="width height"
onunload="cleanup();OnSecurityPageHidden();"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
diff -up ./esc/src/app/xul/esc/chrome/content/esc/settings.xul.fix15 ./esc/src/app/xul/esc/chrome/content/esc/settings.xul
--- ./esc/src/app/xul/esc/chrome/content/esc/settings.xul.fix15 2012-11-21 14:53:16.829219643 -0800
+++ ./esc/src/app/xul/esc/chrome/content/esc/settings.xul 2012-11-21 14:53:42.456699662 -0800
@@ -28,6 +28,7 @@
width ="720"
height= "415"
name="admin"
+ persist="width height"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<stringbundle id="esc_strings" src="chrome://esc/locale/esc.properties"/>
diff -up ./esc/src/app/xul/esc/chrome/content/esc/TRAY.js.fix15 ./esc/src/app/xul/esc/chrome/content/esc/TRAY.js
--- ./esc/src/app/xul/esc/chrome/content/esc/TRAY.js.fix15 2012-11-21 14:54:00.574038897 -0800
+++ ./esc/src/app/xul/esc/chrome/content/esc/TRAY.js 2012-11-21 14:58:29.722107000 -0800
@@ -47,9 +47,10 @@ jsWindNotify.prototype = {
{
//alert("iid: " + iid);
if(!iid.equals(Components.interfaces.rhITrayWindNotify) &&
- !iid.equals(Components.interfaces.nsISupports))
+ !iid.equals(Components.interfaces.nsISupports) &&
+ !iid.equals(Components.interfaces.nsIClassInfo)
{
- //MyAlert(getBundleString("errorJsNotifyInterface"));
+ MyAlert(getBundleString("errorJsNotifyInterface"));
throw Components.results.NS_ERROR_NO_INTERFACE;
}
return this;
@@ -423,6 +424,13 @@ alert("exception " + e);
}
}
+//Cleanup this window if ESC.js doesn't do it
+function traycleanup()
+{
+ TrayRemoveWindow(null);
+}
+
+
//String bundling related functions
function loadStringBundle()
diff -up ./esc/src/app/xul/esc/chrome/locale/en-US/esc.properties.fix15 ./esc/src/app/xul/esc/chrome/locale/en-US/esc.properties
--- ./esc/src/app/xul/esc/chrome/locale/en-US/esc.properties.fix15 2012-11-21 11:21:31.426280759 -0800
+++ ./esc/src/app/xul/esc/chrome/locale/en-US/esc.properties 2012-11-21 11:22:33.427512763 -0800
@@ -176,6 +176,8 @@ errorSelectKey=Please select a smart car
errorEnrolledFirst=Smart card must be enrolled first! Enroll card and try again.
enrollmentFor=Enrollment of your
errorNeedKeyForSecMode=Please insert enrolled smart card before attempting secure mode.
+errorEnrollmentUI=Problem loading Enrollment UI, check your network connection, re-insert the card, and try again!
+errorPhoneHomeInfo=Problem loading Phone Home Information, check your network connection, re-insert the card, and try again!
wasSuccessful=was successful.
pinResetSuccessful=Password Reset was successfull!
formatOf=Format of
diff -up ./esc/src/lib/coolkey/CoolKey.cpp.fix15 ./esc/src/lib/coolkey/CoolKey.cpp
--- ./esc/src/lib/coolkey/CoolKey.cpp.fix15 2012-11-21 14:58:53.164558727 -0800
+++ ./esc/src/lib/coolkey/CoolKey.cpp 2012-11-21 15:02:47.425039628 -0800
@@ -1412,7 +1412,7 @@ char *GetTStamp(char *aTime,int aSize)
if(aSize < maxSize)
return NULL;
- char *tFormat = "[%c]";
+ char *tFormat = (char *) "[%c]";
time_t tm = time(NULL);
struct tm *ptr = localtime(&tm);
strftime(aTime ,maxSize ,tFormat,ptr);
diff -up ./esc/src/lib/coolkey/CoolKeyHandler.cpp.fix15 ./esc/src/lib/coolkey/CoolKeyHandler.cpp
--- ./esc/src/lib/coolkey/CoolKeyHandler.cpp.fix15 2012-11-21 15:03:00.069280046 -0800
+++ ./esc/src/lib/coolkey/CoolKeyHandler.cpp 2012-11-21 15:04:00.118420187 -0800
@@ -1096,7 +1096,7 @@ HRESULT CoolKeyHandler::HttpBeginOpReque
char ascii_port[50];
char host_port[200];
- char *method = "POST";
+ char *method = (char *) "POST";
if(mCharScreenName && mCharScreenNamePwd)
{
@@ -1131,7 +1131,7 @@ HRESULT CoolKeyHandler::HttpBeginOpReque
string ext_buffer = "";
- char *clientVer = "ESC 1.0.1";
+ char *clientVer = (char *) "ESC 1.0.1";
sprintf(buffer,"clientVersion=%s",clientVer);
ext_buffer = buffer;
diff -up ./esc/src/lib/coolkey/CoolKey_Message.cpp.fix15 ./esc/src/lib/coolkey/CoolKey_Message.cpp
--- ./esc/src/lib/coolkey/CoolKey_Message.cpp.fix15 2012-11-21 11:25:37.996165274 -0800
+++ ./esc/src/lib/coolkey/CoolKey_Message.cpp 2012-11-21 11:27:42.797605767 -0800
@@ -560,7 +560,12 @@ void eCKMessage_LOGIN_RESPONSE::encode(s
string lPassword = getStringValue(pKey);
- aOutputVal += sKey + delim1 + lScreenName + delim + pKey + delim1 + lPassword;
+ string ScreenName_encoded, Password_encoded;
+
+ URLEncode_str(lScreenName, ScreenName_encoded);
+ URLEncode_str(lPassword, Password_encoded);
+
+ aOutputVal += sKey + delim1 + ScreenName_encoded + delim + pKey + delim1 + Password_encoded;
eCKMessage::encode(aOutputVal);
}
diff -up ./esc/src/lib/coolkey/NSSManager.cpp.fix15 ./esc/src/lib/coolkey/NSSManager.cpp
--- ./esc/src/lib/coolkey/NSSManager.cpp.fix15 2012-11-21 15:04:06.329537968 -0800
+++ ./esc/src/lib/coolkey/NSSManager.cpp 2012-11-21 15:04:53.612433763 -0800
@@ -96,7 +96,7 @@ HRESULT NSSManager::InitNSS(const char *
}
}
- char *libName = COOLKEY_PKCS11_LIBRARY ;
+ char *libName = (char *) COOLKEY_PKCS11_LIBRARY ;
PR_LOG( coolKeyLogNSS, PR_LOG_DEBUG, ("%s InitNSS: About to try SECMOD_AddNewModule :%s \n",GetTStamp(tBuff,56),libName));
@@ -330,8 +330,8 @@ NSSManager::GetKeyCertNicknames( const C
CERTCertNicknames *nicknames =
CERT_NicknameStringsFromCertList(certs,
- NICKNAME_EXPIRED_STRING,
- NICKNAME_NOT_YET_VALID_STRING);
+ (char *) NICKNAME_EXPIRED_STRING,
+ (char *) NICKNAME_NOT_YET_VALID_STRING);
char *curName = NULL;
diff -up ./esc/src/lib/coolkey/SmartCardMonitoringThread.cpp.fix15 ./esc/src/lib/coolkey/SmartCardMonitoringThread.cpp
--- ./esc/src/lib/coolkey/SmartCardMonitoringThread.cpp.fix15 2012-11-21 15:05:09.934742670 -0800
+++ ./esc/src/lib/coolkey/SmartCardMonitoringThread.cpp 2012-11-21 15:40:49.570037221 -0800
@@ -35,8 +35,10 @@
static PRLogModuleInfo *coolKeyLogSC = PR_NewLogModule("coolKeySmart");
+static const PRUint32 COOLKEY_SHUTDOWN_WAIT_INTERVAL = 3;
+
SmartCardMonitoringThread::SmartCardMonitoringThread(SECMODModule *aModule)
- : mModule(aModule), mThread(NULL)
+ : mModule(aModule), mThread(NULL), mExitThread(NULL)
{
char tBuff[56];
PR_LOG( coolKeyLogSC, PR_LOG_DEBUG,
@@ -184,6 +186,9 @@ void SmartCardMonitoringThread::Execute(
} while (1);
+ PR_LOG( coolKeyLogSC, PR_LOG_DEBUG,
+ ("%s SmartCardMonitoringThread::Execute Leaving thread : \n",GetTStamp(tBuff,56)));
+
}
void SmartCardMonitoringThread::Interrupt()
@@ -195,6 +200,14 @@ void SmartCardMonitoringThread::Interrup
if(mThread)
{
SECStatus rv;
+
+ if (!mExitThread) {
+ mExitThread = PR_CreateThread(PR_SYSTEM_THREAD, ExitTimeout, this,
+ PR_PRIORITY_NORMAL, PR_GLOBAL_THREAD,
+ PR_JOINABLE_THREAD, 0);
+ }
+
+
rv = SECMOD_CancelWait(mModule);
if (rv !=SECSuccess) {
PR_LOG( coolKeyLogSC, PR_LOG_DEBUG,
@@ -255,3 +268,28 @@ void SmartCardMonitoringThread::LaunchEx
{
((SmartCardMonitoringThread*)arg)->Execute();
}
+
+void SmartCardMonitoringThread::ExitTimeout(void *arg)
+{
+ char tBuff[56];
+ PR_LOG( coolKeyLogSC, PR_LOG_DEBUG,
+ ("%s SmartCardMonitoringThread::ExitTimeout : \n",GetTStamp(tBuff,56)));
+
+
+ if (arg == NULL) {
+ return;
+ }
+
+ PR_Sleep(PR_SecondsToInterval(COOLKEY_SHUTDOWN_WAIT_INTERVAL));
+
+ PR_LOG( coolKeyLogSC, PR_LOG_DEBUG,
+ ("%s SmartCardMonitoringThread::ExitTimeout : wait is done. \n",GetTStamp(tBuff,56)));
+
+ if(((SmartCardMonitoringThread*)arg)->mThread != NULL) {
+
+ PR_LOG( coolKeyLogSC, PR_LOG_DEBUG,
+ ("%s SmartCardMonitoringThread::ExitTimeout : Timeout expired while SECMOD_Cancel is hanging, good-bye..! \n",GetTStamp(tBuff,56)));
+
+ _exit(0);
+ }
+}
diff -up ./esc/src/lib/coolkey/SmartCardMonitoringThread.h.fix15 ./esc/src/lib/coolkey/SmartCardMonitoringThread.h
--- ./esc/src/lib/coolkey/SmartCardMonitoringThread.h.fix15 2012-11-21 15:14:55.270744772 -0800
+++ ./esc/src/lib/coolkey/SmartCardMonitoringThread.h 2012-11-21 15:16:42.068742060 -0800
@@ -45,9 +45,11 @@ class SmartCardMonitoringThread
void Remove(CoolKeyInfo *info);
static void LaunchExecute(void *arg);
+ static void ExitTimeout(void *arg);
SECMODModule *mModule;
PRThread* mThread;
+ PRThread* mExitThread;
char* mCurrentActivation;
};
diff -up ./esc/src/lib/notifytray/notifytray.c.fix15 ./esc/src/lib/notifytray/notifytray.c
--- ./esc/src/lib/notifytray/notifytray.c.fix15 2012-11-21 15:35:54.119380073 -0800
+++ ./esc/src/lib/notifytray/notifytray.c 2012-11-21 15:36:57.948605760 -0800
@@ -218,7 +218,7 @@ void notify_icon_send_tooltip_msg(const
if(!message || !notify)
return;
- gchar *msg_title = NULL;
+ const gchar *msg_title = NULL;
if(!title)

423
esc-1.1.0-fix16.patch Normal file
View file

@ -0,0 +1,423 @@
diff -up ./esc/src/app/xul/esc/chrome/content/esc/ESC.js.fix16 ./esc/src/app/xul/esc/chrome/content/esc/ESC.js
--- ./esc/src/app/xul/esc/chrome/content/esc/ESC.js.fix16 2012-11-28 14:47:47.510976503 -0800
+++ ./esc/src/app/xul/esc/chrome/content/esc/ESC.js 2012-11-28 14:49:58.889984069 -0800
@@ -133,7 +133,6 @@ jsNotify.prototype = {
var gNotify=null;
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
netkey = Components.classes["@redhat.com/rhCoolKey;1"].getService();
netkey = netkey.QueryInterface(Components.interfaces.rhICoolKey);
gNotify = new jsNotify;
@@ -152,7 +151,6 @@ function cleanup()
{
TrayRemoveWindow(null);
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
netkey.rhCoolKeyUnSetNotifyCallback(gNotify);
} catch(e) {
MyAlert(getBundleString("errorUniversalXPConnect") + e);
@@ -425,7 +423,6 @@ function commitConfigValues()
var res = 0;
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
res = netkey.SetCoolKeyConfigValue("esc.tps.url",tps_uri_value);
} catch(e) {
@@ -434,7 +431,6 @@ function commitConfigValues()
}
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
res = netkey.SetCoolKeyConfigValue("esc.enroll.ui.url",esc_enroll_value);
grantPrivilegesURL(esc_enroll_value);
@@ -466,7 +462,6 @@ function InitializeConfigUI()
if(netkey)
{
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
tps_uri = netkey.GetCoolKeyConfigValue("esc.tps.url");
@@ -487,7 +482,6 @@ function InitializeConfigUI()
var esc_enroll_uri = null;
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
esc_enroll_uri = netkey.GetCoolKeyConfigValue("esc.enroll.ui.url");
@@ -550,7 +544,6 @@ function CoolKeySetDataValue(aKeyType,aK
if(netkey)
{
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
netkey.SetCoolKeyDataValue(aKeyType,aKeyID,name,value);
@@ -567,7 +560,6 @@ function CoolKeySetTokenPin(pin)
if(netkey)
{
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
netkey.SetCoolKeyDataValue(gCurKeyType,gCurKeyID,"TokenPin",pin);
} catch(e) {
@@ -581,7 +573,6 @@ function CoolKeySetUidPassword(uid,pwd)
if(netkey)
{
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
netkey.SetCoolKeyDataValue(gCurKeyType,gCurKeyID,"UserId",uid);
netkey.SetCoolKeyDataValue(gCurKeyType,gCurKeyID,"Password",pwd);
@@ -646,7 +637,6 @@ function ReportException(msg, e)
function GetCoolKeyStatus(keyType, keyID)
{
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
return netkey.GetCoolKeyStatus(keyType, keyID);
} catch (e) {
ReportException(getBundleString("errorCoolKeyGetStatus"), e);
@@ -665,7 +655,6 @@ function ConfigValueWithKeyID(keyID,conf
function GetCoolKeyPolicy(keyType, keyID)
{
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
return netkey.GetCoolKeyPolicy(keyType, keyID);
} catch (e) {
//ReportException(getBundleString("errorCoolKeyGetPolicy"), e);
@@ -676,7 +665,6 @@ function GetCoolKeyPolicy(keyType, keyID
function GetCoolKeyRequiresAuth(keyType, keyID)
{
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
return netkey.GetCoolKeyRequiresAuthentication(keyType, keyID);
} catch(e) {
ReportException(getBundleString("errorCoolKeyRequiresAuth"), e);
@@ -687,7 +675,6 @@ function GetCoolKeyRequiresAuth(keyType,
function AuthenticateCoolKey(keyType, keyID,aPIN)
{
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
return netkey.AuthenticateCoolKey(keyType, keyID,"netscape");
} catch(e) {
ReportException(getBundleString("errorAuthCoolKey"), e);
@@ -698,7 +685,6 @@ function AuthenticateCoolKey(keyType, ke
function GetCoolKeyIsAuthed(keyType, keyID)
{
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
return netkey.GetCoolKeyIsAuthenticated(keyType, keyID);
} catch(e) {
ReportException(getBundleString("errorCoolKeyIsAuth"), e);
@@ -717,7 +703,6 @@ function GetCoolKeyIssuer(keyType,keyID)
if(!issuer && (GetStatusForKeyID(keyType, keyID) == getBundleString("statusEnrolled")))
{
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
issuer = netkey.GetCoolKeyIssuer(keyType,keyID);
var issuer_url = ConfigValueWithKeyID(keyID,KEY_ISSUER_URL);
@@ -757,7 +742,6 @@ function GetCoolKeyIssuedTo(keyType,keyI
var issuedTo = null;
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
issuedTo = netkey.GetCoolKeyIssuedTo(keyType,keyID);
} catch (e)
@@ -895,7 +879,6 @@ function GetCoolKeyCertNicknames(aKeyTyp
{
try {
var nameArr;
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var inArray = netkey.GetCoolKeyCertNicknames(aKeyType,aKeyId, {} );
nameArr = new Array(inArray.length);
var i;
@@ -915,7 +898,6 @@ function GetCoolKeyVersion()
var result = null;
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
result = netkey.GetCoolKeyVersion();
return result;
} catch(e) {
@@ -928,7 +910,6 @@ function GetCoolKeyCertInfo(aKeyType,aKe
{
try {
var info = null;
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
info = netkey.GetCoolKeyCertInfo(aKeyType,aKeyId, aCertNickname );
return info;
} catch(e) {
@@ -942,7 +923,6 @@ function GetAvailableCoolKeys()
try {
var keyArr;
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var inArray = netkey.GetAvailableCoolKeys( {} );
keyArr = new Array(inArray.length);
var i;
@@ -963,7 +943,6 @@ function CoolKeyLogMsg(aLogLevel,aMessag
return;
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
netkey.CoolKeyLogMsg(aLogLevel,aMessage);
} catch(e) {
}
@@ -972,7 +951,6 @@ function CoolKeyLogMsg(aLogLevel,aMessag
function ChallengeCoolKey(keyType, keyID, data)
{
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
return netkey.ChallengeCoolKey(keyType, keyID, data);
} catch(e) {
return [];
@@ -982,7 +960,6 @@ function ChallengeCoolKey(keyType, keyID
function EnrollCoolKey(keyType, keyID, enrollmentType, screenname, pin,screennamepwd,tokencode)
{
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
netkey.EnrollCoolKey(keyType, keyID, enrollmentType, screenname, pin,screennamepwd,tokencode);
} catch(e) {
ReportException(getBundleString("errorEnollCoolKey"), e);
@@ -995,7 +972,6 @@ function EnrollCoolKey(keyType, keyID, e
function GetCoolKeyIsEnrolled(keyType, keyID)
{
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
return netkey.GetCoolKeyIsEnrolled(keyType, keyID);
} catch(e) {
ReportException(getBundleString("errorCoolKeyIsEnrolled"), e);
@@ -1006,7 +982,6 @@ function GetCoolKeyIsEnrolled(keyType, k
function ResetCoolKeyPIN(keyType, keyID, screenname, pin,screennamepwd)
{
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
netkey.ResetCoolKeyPIN(keyType, keyID, screenname, pin,screennamepwd);
} catch(e) {
ReportException(getBundleString("errorResetCoolKeyPIN"), e);
@@ -1017,7 +992,6 @@ function ResetCoolKeyPIN(keyType, keyID,
function FormatCoolKey(keyType, keyID, type, screenname, pin,screennamepwd,tokencode)
{
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
netkey.FormatCoolKey(keyType, keyID, type, screenname, pin,screennamepwd,tokencode);
} catch(e) {
ReportException(getBundleString("errorFormatCoolKey"), e);
@@ -1029,7 +1003,6 @@ function FormatCoolKey(keyType, keyID, t
function CancelCoolKeyOperation(keyType, keyID)
{
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
netkey.CancelCoolKeyOperation(keyType, keyID);
} catch(e) {
ReportException(getBundleString("errorCancelCoolKey"), e);
@@ -3653,7 +3626,6 @@ function getESCEnrollmentUI()
if(netkey)
{
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
esc_enroll_uri = netkey.GetCoolKeyConfigValue("esc.enroll.ui.url");
} catch(e) {
@@ -3692,7 +3664,6 @@ function grantPrivilegesURL(aURL)
if(prePath)
{
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
res = netkey.SetCoolKeyConfigValue("capability.principal.codebase.p0.id",prePath);
@@ -3716,7 +3687,6 @@ function DoCoolKeySetConfigValue(configV
if(netkey)
{
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
result = netkey.SetCoolKeyConfigValue(configValue,newValue);
@@ -3739,7 +3709,6 @@ function DoCoolKeyGetConfigValue(configV
if(netkey)
{
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
result = netkey.GetCoolKeyConfigValue(configValue);
@@ -3791,7 +3760,6 @@ function DoGetCoolKeyIsReallyCoolKey(key
return 0;
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var isCool = netkey.GetCoolKeyIsReallyCoolKey(keyType, keyID);
return isCool;
@@ -3824,7 +3792,6 @@ function DoCoolKeyGetIssuerUrl(keyType,k
}
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tries = 0;
while(tries < 3 )
@@ -3908,7 +3875,6 @@ function DoCoolKeyGetATR(keyType,keyID)
{
var atr = null;
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
atr = netkey.GetCoolKeyATR(keyType, keyID);
} catch (e) {
return atr;
@@ -3925,7 +3891,6 @@ function DoCoolKeyGetTokenName(keyType,k
var name = null;
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
name = netkey.GetCoolKeyTokenName(keyType, keyID);
} catch (e) {
return name;
@@ -3940,7 +3905,6 @@ function DoGetCoolKeyGetAppletVer(keyTyp
var ver = -1;
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var ver = netkey.GetCoolKeyGetAppletVer(keyType, keyID,isMajor);
} catch (e) {
ver = -1;
@@ -4633,7 +4597,6 @@ function DoMyAlert(message,title)
{
if(!message || !title)
return; try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
prompts.alert(window,title,message);
diff -up ./esc/src/app/xul/esc/chrome/content/esc/TRAY.js.fix16 ./esc/src/app/xul/esc/chrome/content/esc/TRAY.js
--- ./esc/src/app/xul/esc/chrome/content/esc/TRAY.js.fix16 2012-11-28 14:47:52.965976817 -0800
+++ ./esc/src/app/xul/esc/chrome/content/esc/TRAY.js 2012-11-28 14:48:43.665979745 -0800
@@ -48,7 +48,7 @@ jsWindNotify.prototype = {
//alert("iid: " + iid);
if(!iid.equals(Components.interfaces.rhITrayWindNotify) &&
!iid.equals(Components.interfaces.nsISupports) &&
- !iid.equals(Components.interfaces.nsIClassInfo)
+ !iid.equals(Components.interfaces.nsIClassInfo))
{
MyAlert(getBundleString("errorJsNotifyInterface"));
throw Components.results.NS_ERROR_NO_INTERFACE;
@@ -63,7 +63,6 @@ jsWindNotify.prototype = {
// GECKO ONLY initialization
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
gTray = Components.classes["@redhat.com/rhTray;1"].getService();
@@ -129,7 +128,6 @@ function GetTrayIsInitialized()
try
{
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
rv = gTray.isInitializedAlready();
@@ -155,7 +153,6 @@ function ShowAllWindows()
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
gTray.showall();
@@ -175,7 +172,6 @@ function HideAllWindows()
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
gTray.hideall();
@@ -196,7 +192,6 @@ function ShowWindow()
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
gTray.show(gBaseWindow);
@@ -216,7 +211,6 @@ function HideWindow()
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
gTray.hide(gBaseWindow);
@@ -235,7 +229,6 @@ function TrayRemoveWindowNotify()
{
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
gTray.unsetwindnotifycallback(gWindNotify);
@@ -254,7 +247,6 @@ function TrayRemoveWindow(doPreserveNoti
{
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
gTray.remove(gBaseWindow);
@@ -277,7 +269,6 @@ function TrayAddWindow()
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
gTray.add(gBaseWindow);
@@ -304,7 +295,6 @@ function TraySendNotificationMessage(aTi
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
gTray.sendnotification(aTitle,aMessage,aSeverity,aTimeout,aIcon);
@@ -329,7 +319,6 @@ function TrayHideNotificationIcon()
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
gTray.hideicon();
@@ -361,7 +350,6 @@ function TrayShowNotificationIcon()
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
gTray.settooltipmsg(getBundleString("escTitle"));
gTray.showicon();
@@ -383,7 +371,6 @@ function TrayShowTooltip(aMessage)
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
;
gTray.settooltipmsg(aMessage);
@@ -413,7 +400,6 @@ function TrayChangeMenuItemText(aIndex,
if(gTray && gBaseWindow)
{
try {
- netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
gTray.setmenuitemtext(aIndex,aText);
gTray.showicon();
} catch(e) {

772
esc-1.1.0-fix9.patch Normal file
View file

@ -0,0 +1,772 @@
diff -up ./esc/src/app/daemon/manifest.mn.fix9 ./esc/src/app/daemon/manifest.mn
--- ./esc/src/app/daemon/manifest.mn.fix9 2011-03-24 12:35:31.481712082 -0700
+++ ./esc/src/app/daemon/manifest.mn 2011-03-24 12:35:39.758712086 -0700
@@ -37,7 +37,7 @@ DEFINES += $(shell pkg-config --cflags x
CPPFLAGS += $(DEFINES) -g
LDFLAGS += -lstdc++ -L$(CORE_DIST)/$(OBJDIR)/lib -L$(XULRUNNER_LIBS_LDFLAGS) -lnss3 -lnspr4 -lssl3 -lckyapplet $(shell pkg-config --libs xft)
-LDFLAGS += -lckymanager -lhttpchunked -lm -lnss3 -lplc4 -lplds4
+LDFLAGS += -lckymanager -lhttpchunked -lm -lnss3 -lplc4 -lplds4 -lX11
# MODULE public and private header directories are implicitly REQUIRED.
CPPSRCS = \
diff -up ./esc/src/app/xpcom/rhCoolKey.cpp.fix9 ./esc/src/app/xpcom/rhCoolKey.cpp
--- ./esc/src/app/xpcom/rhCoolKey.cpp.fix9 2011-03-24 12:37:10.273712093 -0700
+++ ./esc/src/app/xpcom/rhCoolKey.cpp 2011-03-24 12:37:18.813712092 -0700
@@ -70,6 +70,7 @@
#define PSM_COMPONENT_CONTRACTID "@mozilla.org/psm;1"
#define NS_CERTOVERRIDE_CONTRACTID "@mozilla.org/security/certoverride;1"
+#define RH_COOLKEY_CONTRACTID "@redhat.com/rhCoolKey;1"
static const nsIID kIModuleIID = NS_IMODULE_IID;
static const nsIID kIFactoryIID = NS_IFACTORY_IID;
@@ -1711,297 +1712,36 @@ NS_IMETHODIMP rhCoolKey::GetCoolKeyVersi
NS_GENERIC_FACTORY_CONSTRUCTOR(rhCoolKey)
-NS_IMPL_ISUPPORTS1(rhCoolKey,rhICoolKey)
-
-// Implement full module and factory dance so we can see what is going on
-
-class rhCoolKeyFactory: public nsIFactory{
-private:
-nsrefcnt mRefCnt;
-public:
-rhCoolKeyFactory();
-virtual ~rhCoolKeyFactory();
-
-NS_IMETHOD QueryInterface(const nsIID &aIID, void **aResult);
-NS_IMETHOD_(nsrefcnt) AddRef(void);
-NS_IMETHOD_(nsrefcnt) Release(void);
-
-NS_IMETHOD CreateInstance(nsISupports *aOuter, const nsIID & iid, void * *result);
-NS_IMETHOD LockFactory(PRBool lock);
-
+// Build a table of ClassIDs (CIDs) which are implemented by this module. CIDs
+// // should be completely unique UUIDs.
+// // each entry has the form { CID, service, factoryproc, constructorproc }
+// // where factoryproc is usually NULL.
+static const mozilla::Module::CIDEntry kCoolKeyCIDs[] = {
+ { &kCoolKeyCID, false, NULL, rhCoolKeyConstructor },
+ { NULL }
+ };
+
+// Build a table which maps contract IDs to CIDs.
+// // A contract is a string which identifies a particular set of functionality. In some
+// // cases an extension component may override the contract ID of a builtin gecko component
+// // to modify or extend functionality.
+//
+static const mozilla::Module::ContractIDEntry kCoolKeyContracts[] = {
+ { RH_COOLKEY_CONTRACTID, &kCoolKeyCID },
+ { NULL }
};
-rhCoolKeyFactory::rhCoolKeyFactory()
-{
-mRefCnt = 0;
-}
-rhCoolKeyFactory::~rhCoolKeyFactory()
-{
-}
-
-NS_IMETHODIMP rhCoolKeyFactory::QueryInterface(const nsIID &aIID,
-void **aResult)
-{
-if (aResult == NULL) {
-return NS_ERROR_NULL_POINTER;
-}
-*aResult = NULL;
-if (aIID.Equals(kISupportsIID)) {
-*aResult = (void *) this;
-}
-else
-if (aIID.Equals(kIFactoryIID)) {
-*aResult = (void *) this;
-}
-
-if (*aResult == NULL) {
-return NS_ERROR_NO_INTERFACE;
-}
-
-AddRef();
-return NS_OK;
-}
-
-NS_IMETHODIMP_(nsrefcnt) rhCoolKeyFactory::AddRef()
-{
-return ++mRefCnt;
-}
-
-
-NS_IMETHODIMP_(nsrefcnt) rhCoolKeyFactory::Release()
-{
-if (--mRefCnt == 0) {
-delete this;
-return 0;
-}
-return mRefCnt;
-}
-
-
-NS_IMETHODIMP
-rhCoolKeyFactory::CreateInstance(nsISupports *aOuter, const nsIID & iid, void * *result)
-{
-if (!result)
-return NS_ERROR_INVALID_ARG;
-
-rhCoolKey* sample = new rhCoolKey();
-if (!sample)
-return NS_ERROR_OUT_OF_MEMORY;
-
-nsresult rv = sample->QueryInterface(iid, result);
-
-if (NS_FAILED(rv)) {
-*result = nsnull;
-delete sample;
-}
-
-return rv;
-}
-
-
-NS_IMETHODIMP
-rhCoolKeyFactory::LockFactory(PRBool lock)
-{
-return NS_ERROR_NOT_IMPLEMENTED;
-}
-
-// Module implementation
-class rhCoolKeyModule : public nsIModule
-{
-public:
-rhCoolKeyModule();
-virtual ~rhCoolKeyModule();
-
-// nsISupports methods:
-NS_IMETHOD QueryInterface(const nsIID & uuid, void * *result);
-NS_IMETHOD_(nsrefcnt) AddRef(void);
-NS_IMETHOD_(nsrefcnt) Release(void);
-
-// nsIModule methods:
-NS_IMETHOD GetClassObject(nsIComponentManager *aCompMgr, const nsCID & aClass, const nsIID & aIID, void * *aResult);
-NS_IMETHOD RegisterSelf(nsIComponentManager *aCompMgr, nsIFile *aLocation, const char *aLoaderStr, const char *aType);
-NS_IMETHOD UnregisterSelf(nsIComponentManager *aCompMgr, nsIFile *aLocation, const char *aLoaderStr);
-NS_IMETHOD CanUnload(nsIComponentManager *aCompMgr, PRBool *_retval);
-
-private:
-nsrefcnt mRefCnt;
+static const mozilla::Module kCoolKeyModule = {
+ mozilla::Module::kVersion,
+ kCoolKeyCIDs,
+ kCoolKeyContracts,
+ NULL
};
+// The following line implements the one-and-only "NSModule" symbol exported from this
+// // shared library.
+ NSMODULE_DEFN(rhCoolKeyModule) = &kCoolKeyModule;
+//
-//----------------------------------------------------------------------
-
-rhCoolKeyModule::rhCoolKeyModule()
-{
-mRefCnt = 0;
-}
-
-rhCoolKeyModule::~rhCoolKeyModule()
-{
-}
-
-// nsISupports implemention
-NS_IMETHODIMP_(nsrefcnt)
-rhCoolKeyModule::AddRef(void)
-{
-char tBuff[56];
-PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKeyModule::AddRef \n",GetTStamp(tBuff,56)));
-++mRefCnt;
-return mRefCnt;
-}
-
-
-NS_IMETHODIMP_(nsrefcnt)
-rhCoolKeyModule::Release(void)
-{
-char tBuff[56];
-PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKeyModule::Release : mRefCnt %d \n",GetTStamp(tBuff,56),mRefCnt - 1));
---mRefCnt;
-if (mRefCnt == 0) {
-mRefCnt = 1; /* stabilize */
-PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKeyModule::Release deleting Module \n",GetTStamp(tBuff,56)));
-delete this;
-return 0;
-}
-return mRefCnt;
-}
-
-
-NS_IMETHODIMP
-rhCoolKeyModule::QueryInterface(REFNSIID aIID, void** aInstancePtr)
-{
-char tBuff[56];
-PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKeyModule::QueryInterface \n",GetTStamp(tBuff,56)));
-if ( !aInstancePtr )
-return NS_ERROR_NULL_POINTER;
-
-nsISupports* foundInterface;
-
-if ( aIID.Equals(kIModuleIID) )
-foundInterface = (nsIModule*) this;
-
-else if ( aIID.Equals(kISupportsIID) )
-foundInterface = (nsISupports*) this;
-
-else
-foundInterface = 0;
-
-if (foundInterface) {
-foundInterface->AddRef();
-*aInstancePtr = foundInterface;
-return NS_OK;
-}
-
-*aInstancePtr = foundInterface;
-return NS_NOINTERFACE;
-}
-
-
-// Create a factory object for creating instances of aClass.
-NS_IMETHODIMP
-rhCoolKeyModule::GetClassObject(nsIComponentManager *aCompMgr,
-const nsCID& aClass,
-const nsIID& aIID,
-void** result)
-{
-char tBuff[56];
-PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKeyModule::GetClassObject \n",GetTStamp(tBuff,56)));
-if (!kCoolKeyCID.Equals(aClass))
-return NS_ERROR_FACTORY_NOT_REGISTERED;
-
-if (!result)
-return NS_ERROR_INVALID_ARG;
-
-rhCoolKeyFactory* factory = new rhCoolKeyFactory();
-if (!factory)
-return NS_ERROR_OUT_OF_MEMORY;
-
-nsresult rv = factory->QueryInterface(aIID, result);
-
-if (NS_FAILED(rv)) {
-*result = nsnull;
-delete factory;
-}
-
-return rv;
-}
-
-
-NS_IMETHODIMP
-rhCoolKeyModule::RegisterSelf(nsIComponentManager *aCompMgr,
-nsIFile* aPath,
-const char* registryLocation,
-const char* componentType)
-{
-
-char tBuff[54];
-nsIComponentRegistrar* compReg = nsnull;
-
-PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKeyModule::RegisterSelf \n",GetTStamp(tBuff,56)));
-nsresult rv = aCompMgr->QueryInterface(kIComponentRegistrarIID, (void**)&compReg);
-if (NS_FAILED(rv))
-return rv;
-
-rv = compReg->RegisterFactoryLocation(kCoolKeyCID,
-"CoolKey",
-"@redhat.com/rhCoolKey",
-aPath,
-registryLocation,
-componentType);
-
-compReg->Release();
-
-return rv;
-}
-
-NS_IMETHODIMP
-rhCoolKeyModule::UnregisterSelf(nsIComponentManager* aCompMgr,
-nsIFile* aPath,
-const char* registryLocation)
-{
-char tBuff[56];
-PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKeyModule::UnregisterSelf \n",GetTStamp(tBuff,56)));
-nsIComponentRegistrar* compReg = nsnull;
-
-nsresult rv = aCompMgr->QueryInterface(kIComponentRegistrarIID, (void**)&compReg);
-if (NS_FAILED(rv))
-return rv;
-
-rv = compReg->UnregisterFactoryLocation(kCoolKeyCID, aPath);
-
-compReg->Release();
-
-return rv;
-}
-
-NS_IMETHODIMP
-rhCoolKeyModule::CanUnload(nsIComponentManager *aCompMgr, PRBool *okToUnload)
-{
-*okToUnload = PR_FALSE; // we do not know how to unload.
-return NS_OK;
-}
-
-
-//----------------------------------------------------------------------
-
-extern "C" NS_EXPORT nsresult NSGetModule(nsIComponentManager *servMgr,
-nsIFile* location,
-nsIModule** return_cobj)
-{
-nsresult rv = NS_OK;
-
-char tBuff[56];
-PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s rhCoolKeyModule::NSGetModule \n",GetTStamp(tBuff,56)));
-
-// Create and initialize the module instance
-rhCoolKeyModule *m = new rhCoolKeyModule();
-if (!m) {
-return NS_ERROR_OUT_OF_MEMORY;
-}
+NS_IMPL_ISUPPORTS1(rhCoolKey,rhICoolKey)
-// Increase refcnt and store away nsIModule interface to m in return_cobj
-rv = m->QueryInterface(kIModuleIID, (void**)return_cobj);
-if (NS_FAILED(rv)) {
-delete m;
-}
-return rv;
-}
diff -up ./esc/src/app/xpcom/rhCoolKey.h.fix9 ./esc/src/app/xpcom/rhCoolKey.h
--- ./esc/src/app/xpcom/rhCoolKey.h.fix9 2011-03-24 12:40:07.291712102 -0700
+++ ./esc/src/app/xpcom/rhCoolKey.h 2011-03-24 12:40:15.644712108 -0700
@@ -19,7 +19,9 @@
#define RH_COOLKEY_H
#include "rhICoolKey.h"
-#include "nsIGenericFactory.h"
+/*#include "nsIGenericFactory.h" */
+#include "mozilla/ModuleUtils.h"
+#include "nsIClassInfoImpl.h"
#include "nsEmbedString.h"
#include <list>
#include "nspr.h"
diff -up ./esc/src/app/xpcom/rhICoolKey.idl.fix9 ./esc/src/app/xpcom/rhICoolKey.idl
--- ./esc/src/app/xpcom/rhICoolKey.idl.fix9 2011-03-24 12:42:27.595712113 -0700
+++ ./esc/src/app/xpcom/rhICoolKey.idl 2011-03-24 12:42:39.069712124 -0700
@@ -17,12 +17,11 @@
#include "nsISupports.idl"
#include "rhIKeyNotify.idl"
-#include "nsIObserver.idl"
+//#include "nsIObserver.idl"
-interface nsIDOMHTMLDocument;
[scriptable,uuid(ea54eee4-9548-4b63-b94d-c519ffc91d09)]
-interface rhICoolKey: nsISupports
+interface rhICoolKey:nsISupports
{
void rhNotifyKeyStateChange(in unsigned long aKeyType, in string aKeyID, in unsigned long aKeyState, in unsigned long aData, in string strData);
diff -up ./esc/src/app/xpcom/tray/rhLinuxTray.cpp.fix9 ./esc/src/app/xpcom/tray/rhLinuxTray.cpp
--- ./esc/src/app/xpcom/tray/rhLinuxTray.cpp.fix9 2011-03-24 12:43:20.262712118 -0700
+++ ./esc/src/app/xpcom/tray/rhLinuxTray.cpp 2011-03-24 12:43:34.767712121 -0700
@@ -18,14 +18,17 @@
#define FORCE_PR_LOG 1
#include "rhTray.h"
-#include "nsIGenericFactory.h"
+#include "mozilla/ModuleUtils.h"
#include <prlog.h>
#include "notifytray.h"
#include "nsIStringBundle.h"
#include <gdk/gdkx.h>
#include <stdlib.h>
-NS_IMPL_ISUPPORTS1(rhTray, rhITray)
+#define RH_COOLKEY_TRAY_CONTRACTID "@redhat.com/rhTray;1"
+
+static const nsCID kCoolKeyTrayCID = RH_TRAY_CID;
+
GtkWidget* rhTray::mWnd = NULL;
GtkWidget* rhTray::mIconMenu = NULL;
@@ -861,15 +864,36 @@ gboolean rhTrayWindowListener::WndDelete
NS_GENERIC_FACTORY_CONSTRUCTOR(rhTray)
-//rhTray Module Implementation
+// Build a table of ClassIDs (CIDs) which are implemented by this module. CIDs
+// // // should be completely unique UUIDs.
+// // // each entry has the form { CID, service, factoryproc, constructorproc }
+// // // where factoryproc is usually NULL.
+
+static const mozilla::Module::CIDEntry kCoolKeyTrayCIDs[] = {
+ { &kCoolKeyTrayCID, false, NULL, rhTrayConstructor },
+ { NULL }
+};
-static const nsModuleComponentInfo components[] =
-{
- { "rhTray",
- RH_TRAY_CID,
- "@redhat.com/rhTray",
- rhTrayConstructor
- }
+// Build a table which maps contract IDs to CIDs.
+// A contract is a string which identifies a particular set of functionality. In some
+// cases an extension component may override the contract ID of a builtin gecko component
+// to modify or extend functionality.
+
+static const mozilla::Module::ContractIDEntry kCoolKeyTrayContracts[] = {
+ { RH_COOLKEY_TRAY_CONTRACTID, &kCoolKeyTrayCID },
+ { NULL }
};
-NS_IMPL_NSGETMODULE(rhTrayModule, components)
+static const mozilla::Module kCoolKeyTrayModule = {
+ mozilla::Module::kVersion,
+ kCoolKeyTrayCIDs,
+ kCoolKeyTrayContracts,
+ NULL
+};
+
+// The following line implements the one-and-only "NSModule" symbol exported from this
+// shared library.
+NSMODULE_DEFN(rhCoolKeyTrayModule) = &kCoolKeyTrayModule;
+
+NS_IMPL_ISUPPORTS1(rhTray,rhITray)
+
diff -up ./esc/src/app/xpcom/tray/rhTray.h.fix9 ./esc/src/app/xpcom/tray/rhTray.h
--- ./esc/src/app/xpcom/tray/rhTray.h.fix9 2011-03-24 12:44:10.035712119 -0700
+++ ./esc/src/app/xpcom/tray/rhTray.h 2011-03-24 12:44:19.059712129 -0700
@@ -19,7 +19,8 @@
#define RH_TRAY_H
#include "rhITray.h"
-#include "nsIGenericFactory.h"
+//#include "nsIGenericFactory.h"
+//#include mozilla/ModuleUtils.h
#include "nsEmbedString.h"
#include <list>
#include "nsCOMPtr.h"
diff -up ./esc/src/app/xul/esc/application.ini.fix9 ./esc/src/app/xul/esc/application.ini
--- ./esc/src/app/xul/esc/application.ini.fix9 2011-03-24 12:45:51.087712126 -0700
+++ ./esc/src/app/xul/esc/application.ini 2011-03-24 12:46:01.780712129 -0700
@@ -25,11 +25,11 @@ Vendor=RedHat
Name=ESC
;
; This field specifies your application's version. This field is optional.
-Version=1.1.0-12
+Version=1.1.0-13
;
; This field specifies your application's build ID (timestamp). This field is
; required.
-BuildID=0000001012
+BuildID=0000001013
;
; This ID is just an example. Every XUL app ought to have it's own unique ID.
; You can use the microsoft "guidgen" or "uuidgen" tools, or go on
@@ -41,12 +41,12 @@ ID={6380471b-1924-4b48-b652-49f42951af86
; This field is required. It specifies the minimum Gecko version that this
; application requires. Specifying 1.8 matches all releases with a version
; prefixed by 1.8 (e.g., 1.8a4, 1.8b, 1.8.2).
-MinVersion=1.9
+MinVersion=1.99
;
; This field is optional. It specifies the maximum Gecko version that this
; application requires. It should be specified if your application uses
; unfrozen interfaces. Specifying 1.8 matches all releases with a version
; prefixed by 1.8 (e.g., 1.8a4, 1.8b, 1.8.2).
-MaxVersion=1.99
+MaxVersion=2.99
[Shell]
diff -up ./esc/src/app/xul/esc/chrome/chrome.manifest.fix9 ./esc/src/app/xul/esc/chrome/chrome.manifest
--- ./esc/src/app/xul/esc/chrome/chrome.manifest.fix9 2011-03-24 12:52:14.601712157 -0700
+++ ./esc/src/app/xul/esc/chrome/chrome.manifest 2011-03-24 12:52:23.723712155 -0700
@@ -1,19 +0,0 @@
-# BEGIN COPYRIGHT BLOCK
-# This Program is free software; you can redistribute it and/or modify it under
-# the terms of the GNU General Public License as published by the Free Software
-# Foundation; version 2 of the License.
-#
-# This Program is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along with
-# this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
-# Place, Suite 330, Boston, MA 02111-1307 USA.
-#
-# Copyright (C) 2005 Red Hat, Inc.
-# All rights reserved.
-# END COPYRIGHT BLOCK
-
-content esc content/esc/
-locale esc en-US locale/en-US/
diff -up ./esc/src/app/xul/esc/chrome/content/esc/ESC.js.fix9 ./esc/src/app/xul/esc/chrome/content/esc/ESC.js
--- ./esc/src/app/xul/esc/chrome/content/esc/ESC.js.fix9 2011-03-24 12:52:49.995712156 -0700
+++ ./esc/src/app/xul/esc/chrome/content/esc/ESC.js 2011-03-24 12:52:59.829712160 -0700
@@ -132,7 +132,7 @@ jsNotify.prototype = {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
- netkey = Components.classes["@redhat.com/rhCoolKey"].getService();
+ netkey = Components.classes["@redhat.com/rhCoolKey;1"].getService();
netkey = netkey.QueryInterface(Components.interfaces.rhICoolKey);
gNotify = new jsNotify;
netkey.rhCoolKeySetNotifyCallback(gNotify);
diff -up ./esc/src/app/xul/esc/chrome/content/esc/TRAY.js.fix9 ./esc/src/app/xul/esc/chrome/content/esc/TRAY.js
--- ./esc/src/app/xul/esc/chrome/content/esc/TRAY.js.fix9 2011-03-24 12:53:21.344712157 -0700
+++ ./esc/src/app/xul/esc/chrome/content/esc/TRAY.js 2011-03-24 12:53:28.456712159 -0700
@@ -63,7 +63,7 @@ jsWindNotify.prototype = {
// GECKO ONLY initialization
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
- gTray = Components.classes["@redhat.com/rhTray"].getService();
+ gTray = Components.classes["@redhat.com/rhTray;1"].getService();
gTray = gTray.QueryInterface(Components.interfaces.rhITray);
diff -up ./esc/src/app/xul/esc/chrome.manifest.fix9 ./esc/src/app/xul/esc/chrome.manifest
--- ./esc/src/app/xul/esc/chrome.manifest.fix9 2011-03-24 12:49:14.983712140 -0700
+++ ./esc/src/app/xul/esc/chrome.manifest 2011-03-24 12:49:47.350712147 -0700
@@ -0,0 +1,33 @@
+# BEGIN COPYRIGHT BLOCK
+# This Program is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free Software
+# Foundation; version 2 of the License.
+#
+# This Program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
+# Place, Suite 330, Boston, MA 02111-1307 USA.
+#
+# Copyright (C) 2005 Red Hat, Inc.
+# All rights reserved.
+# END COPYRIGHT BLOCK
+
+content esc chrome/content/esc/
+locale esc en-US chrome/locale/en-US/
+
+interfaces components/rhICoolKey.xpt
+interfaces components/rhIKeyNotify.xpt
+interfaces components/rhITray.xpt
+interfaces components/rhITrayWindNotify.xpt
+
+
+binary-component components/librhCoolKey.so
+binary-component components/librhTray.so
+
+
+component {36c65861-52a8-4ce9-aa3b-235b88216ed4} components/escCLH.js
+contract @redhat.com/esc-clh;1 {36c65861-52a8-4ce9-aa3b-235b88216ed4}
+category command-line-handler escCLH @redhat.com/esc-clh;1
diff -up ./esc/src/app/xul/esc/components/escCLH.js.fix9 ./esc/src/app/xul/esc/components/escCLH.js
--- ./esc/src/app/xul/esc/components/escCLH.js.fix9 2011-03-24 12:54:15.072712160 -0700
+++ ./esc/src/app/xul/esc/components/escCLH.js 2011-03-24 12:54:53.868712165 -0700
@@ -2,6 +2,8 @@
* -myapp commandline handler; starts up My App.
*/
+ Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
+
const nsIAppShellService = Components.interfaces.nsIAppShellService;
const nsISupports = Components.interfaces.nsISupports;
const nsICategoryManager = Components.interfaces.nsICategoryManager;
@@ -20,20 +22,26 @@
consoleService.logStringMessage("esc: " + message + "\n");
}
+Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
+
/*
* Classes
*/
+
+function escCLH() {}
- const escCLH = {
+ escCLH.prototype = {
+
+
+ contractID: "@redhat.com/esc-clh;1",
+ classID: Components.ID("{36c65861-52a8-4ce9-aa3b-235b88216ed4}"),
+ // const clh_category = "c-esc";
+
+
/* nsISupports */
- QueryInterface : function clh_QI(iid) {
- if (iid.equals(nsICommandLineHandler) ||
- iid.equals(nsIFactory) ||
- iid.equals(nsISupports))
- return this;
- throw Components.results.NS_ERROR_NO_INTERFACE;
- },
+ QueryInterface : XPCOMUtils.generateQI([nsICommandLineHandler]),
+
/* nsICommandLineHandler */
@@ -91,76 +99,8 @@
helpInfo : " -myapp Open the My App.\n",
- /* nsIFactory */
-
- createInstance : function clh_CI(outer, iid) {
- if (outer != null)
- throw Components.results.NS_ERROR_NO_AGGREGATION;
-
- return this.QueryInterface(iid);
- },
-
- lockFactory : function clh_lock(lock) {
- /* no-op */
- }
- };
-
- const clh_contractID = "@redhat.com/esc-clh;1";
- const clh_CID = Components.ID("{36c65861-52a8-4ce9-aa3b-235b88216ed4}");
- const clh_category = "c-esc";
-
- const escCLHModule = {
- /* nsISupports */
-
- QueryInterface : function mod_QI(iid) {
- if (iid.equals(nsIModule) ||
- iid.equals(nsISupports))
- return this;
-
- throw Components.results.NS_ERROR_NO_INTERFACE;
- },
-
- /* nsIModule */
- getClassObject : function mod_gch(compMgr, cid, iid) {
- if (cid.equals(clh_CID))
- return escCLH.QueryInterface(iid);
-
- throw Components.results.NS_ERROR_NOT_REGISTERED;
- },
-
- registerSelf : function mod_regself(compMgr, fileSpec, location, type) {
- compMgr.QueryInterface(nsIComponentRegistrar);
-
- compMgr.registerFactoryLocation(clh_CID,
- "escCLH",
- clh_contractID,
- fileSpec,
- location,
- type);
-
- var catMan = Components.classes["@mozilla.org/categorymanager;1"]
- .getService(nsICategoryManager);
- catMan.addCategoryEntry("command-line-handler",
- clh_category,
- clh_contractID, true, true);
- },
-
- unregisterSelf : function mod_unreg(compMgr, location, type) {
- compMgr.QueryInterface(nsIComponentRegistrar);
-
- compMgr.unregisterFactoryLocation(clh_CID, location);
-
- var catMan = Components.classes["@mozilla.org/categorymanager;1"]
- .getService(nsICategoryManager);
- catMan.deleteCategoryEntry("command-line-handler", clh_category);
- },
-
- canUnload : function (compMgr) {
- return true;
- }
};
/* Module initialisation */
- function NSGetModule(comMgr, fileSpec) {
- return escCLHModule;
- }
+
+var NSGetFactory = XPCOMUtils.generateNSGetFactory([escCLH]);
diff -up ./esc/src/lib/notifytray/notifyareaicon.c.fix9 ./esc/src/lib/notifytray/notifyareaicon.c
--- ./esc/src/lib/notifytray/notifyareaicon.c.fix9 2011-03-24 12:57:00.410712173 -0700
+++ ./esc/src/lib/notifytray/notifyareaicon.c 2011-03-24 12:57:21.501712174 -0700
@@ -90,19 +90,7 @@ notify_area_icon_class_init (NotifyAreaI
static void
notify_area_icon_unrealize (GtkWidget *widget)
{
- NotifyAreaIcon *icon = (NotifyAreaIcon *) widget;
-
- GdkWindow *root_window;
-
g_print("notify_area_icon_unrealize \n");
- if (icon->manager_wnd != None)
- {
- GdkWindow *gdkwin;
- gdkwin = gdk_window_lookup (icon->manager_wnd);
-
- }
-
- root_window = gdk_window_lookup (gdk_x11_get_default_root_xwindow ());
if (GTK_WIDGET_CLASS (plug_parent_class)->unrealize)
(* GTK_WIDGET_CLASS (plug_parent_class)->unrealize) (widget);
@@ -159,14 +147,6 @@ notify_area_icon_update_manager_wnd(Noti
xdisplay = gdk_display;
- if (icon->manager_wnd != None)
- {
- GdkWindow *gdkwin;
-
- gdkwin = gdk_window_lookup (icon->manager_wnd);
-
- }
-
XGrabServer (xdisplay);
icon->manager_wnd = XGetSelectionOwner (xdisplay, icon->selection_atom);
@@ -235,7 +215,7 @@ notify_area_icon_new(const gchar *name)
{
NotifyAreaIcon *icon;
char buff[256];
- GdkWindow *root;
+ /* GdkWindow *root; */
Screen *xscreen = DefaultScreenOfDisplay (gdk_display);
@@ -275,8 +255,6 @@ notify_area_icon_new(const gchar *name)
notify_area_icon_update_manager_wnd(icon);
g_print ("attempted to update_manager_wnd: %p",(void *)icon->manager_wnd);
-
- root = gdk_window_lookup (gdk_x11_get_default_root_xwindow ());
icon->tooltips = gtk_tooltips_new ();
diff -up ./esc/src/lib/notifytray/notifytray.c.fix9 ./esc/src/lib/notifytray/notifytray.c
--- ./esc/src/lib/notifytray/notifytray.c.fix9 2011-03-24 12:57:57.680712175 -0700
+++ ./esc/src/lib/notifytray/notifytray.c 2011-03-24 12:58:07.243712165 -0700
@@ -239,7 +239,7 @@ void notify_icon_send_tooltip_msg(const
}
g_print("icon %s", icon);
- NotifyNotification *not = notify_notification_new(msg_title, message,icon, GTK_WIDGET(notify));
+ NotifyNotification *not = notify_notification_new(msg_title, message,icon); /*, GTK_WIDGET(notify));*/
if(not)
{

View file

@ -1,21 +1,37 @@
Name: esc
Version: 1.1.0
Release: 14%{?dist}
Release: 20%{?dist}
Summary: Enterprise Security Client Smart Card Client
License: GPL
License: GPL+
URL: http://directory.fedora.redhat.com/wiki/CoolKey
Group: Applications/Internet
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
#Fix to build against XUlrunner SDK.
Patch1: esc-1.1.0-fix1.patch
#Fix to the smart card handling thread
Patch2: esc-1.1.0-fix2.patch
#Simple fix to some smart card error messages.
Patch3: esc-1.1.0-fix3.patch
#Add -fno-strict-aliasing compile flag.
Patch4: esc-1.1.0-fix4.patch
#Fix error with reporting a certain smart card error message.
Patch5: esc-1.1.0-fix5.patch
#Allow the http library the ability to observe security exceptions for incoming server certs.
Patch6: esc-1.1.0-fix6.patch
#Ipv6 support for the http library.
Patch7: esc-1.1.0-fix7.patch
Patch8: esc-1.1.0-fix8.patch
Patch9: esc-1.1.0-fix9.patch
Patch10: esc-1.1.0-fix10.patch
Patch11: esc-1.1.0-fix11.patch
Patch12: esc-1.1.0-fix12.patch
Patch13: esc-1.1.0-fix13.patch
Patch14: esc-1.1.0-fix14.patch
Patch15: esc-1.1.0-fix15.patch
Patch16: esc-1.1.0-fix16.patch
BuildRequires: doxygen fontconfig-devel freetype-devel >= 2.1
BuildRequires: glib2-devel libIDL-devel atk-devel gtk2-devel libjpeg-devel
@ -52,12 +68,12 @@ AutoReqProv: 0
%define escxuldir src/app/xul/esc
%define escxulchromeicons %{escxuldir}/chrome/icons/default
%define escdaemon escd
%define geckoversion 17.0
Source0: %{escname}.tar.bz2
Source1: esc
Source2: esc.desktop
Source3: esc.png
Source0: http://pki.fedoraproject.org/pki/sources/%name/%{escname}.tar.bz2
Source1: http://pki.fedoraproject.org/pki/sources/%name/esc
Source2: http://pki.fedoraproject.org/pki/sources/%name/esc.desktop
Source3: http://pki.fedoraproject.org/pki/sources/%name/esc.png
%description
@ -78,12 +94,21 @@ cryptographic smartcards.
%patch6 -p1 -b .fix6
%patch7 -p1 -b .fix7
%patch8 -p1 -b .fix8
%patch9 -p1 -b .fix9
%patch10 -p1 -b .fix10
%patch11 -p1 -b .fix11
%patch12 -p1 -b .fix12
%patch13 -p1 -b .fix13
%patch14 -p1 -b .fix14
%patch15 -p1 -b .fix15
%patch16 -p1 -b .fix16
%build
GECKO_SDK_PATH=%{_libdir}/xulrunner-sdk-1.9.2/sdk
GECKO_BIN_PATH=%{_libdir}/xulrunner-1.9.2
GECKO_INCLUDE_PATH=%{_includedir}/xulrunner-sdk-1.9.2
GECKO_SDK_PATH=%{_libdir}/xulrunner-devel-%{geckoversion}/sdk
GECKO_BIN_PATH=%{_libdir}/xulrunner
GECKO_INCLUDE_PATH=%{_includedir}/xulrunner-%{geckoversion}
GECKO_IDL_PATH=/usr/share/idl/xulrunner-%{geckoversion}
%ifarch x86_64 ppc64 ia64
USE_64=1
@ -93,6 +118,7 @@ export USE_64
export GECKO_SDK_PATH
export GECKO_BIN_PATH
export GECKO_INCLUDE_PATH
export GECKO_IDL_PATH
# last setup call moved the current directory
cd esc
@ -102,7 +128,7 @@ cp %{SOURCE3} %{escxuldir}/%{esc_chromepath}
rm -f %{escxulchromeicons}/*.ico
cp %{escxulchromeicons}/esc-window.xpm %{escxulchromeicons}/default.xpm
make BUILD_OPT=1 HAVE_LIB_NOTIFY=1 ESC_VERSION=%{version}-%{release} USE_XUL_SDK=1
make HAVE_LIB_NOTIFY=1 ESC_VERSION=%{version}-%{release} USE_XUL_SDK=1
%install
@ -129,11 +155,11 @@ export USE_64
%endif
make BUILD_OPT=1 USE_XUL_SDK=1 install DESTDIR=$RPM_BUILD_ROOT/%{escdir}
make USE_XUL_SDK=1 install DESTDIR=$RPM_BUILD_ROOT/%{escdir}
rm -rf $RPM_BUILD_ROOT/%{escdir}/usr
cd ../../../dist/*OPT*/esc_build/esc
cd ../../../dist/*DBG*/esc_build/esc
cp %{esc_chromepath}/esc.png $RPM_BUILD_ROOT/%{icondir}
ln -s $RPMBUILD_ROOT%{icondir}/esc.png $RPM_BUILD_ROOT/%{pixmapdir}/esc.png
@ -144,6 +170,11 @@ cp %{SOURCE2} $RPM_BUILD_ROOT/%{autostartdir}
cd %{_builddir}
cp %{escname}/esc/LICENSE $RPM_BUILD_ROOT/%{docdir}
rm -f $RPM_BUILD_ROOT/%{escdir}/esc
echo "xulrunner ./application.ini \$* &" > $RPM_BUILD_ROOT/%{escdir}/esc
chmod 755 $RPM_BUILD_ROOT/%{escdir}/esc
chmod 755 -R $RPM_BUILD_ROOT/%{escdir}/chrome
chmod 755 -R $RPM_BUILD_ROOT/%{escdir}/defaults
chmod 755 $RPM_BUILD_ROOT/%{escdir}/application.ini
@ -161,6 +192,7 @@ rm -rf $RPM_BUILD_ROOT
%{escbindir}/esc
%{escdir}/application.ini
%{escdir}/chrome.manifest
%{escdir}/chrome/chrome.manifest
%{escdir}/chrome/content
@ -195,12 +227,21 @@ if [ -x %{_bindir}/gtk-update-icon-cache ]; then
fi
%changelog
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.0-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.0-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Wed Nov 28 2012 Jack Magne <jmagne@redhat.com>= 1.1.0-20
- Gecko no longer supports UniversalXPConnect, remove it.
* Wed Nov 21 2012 Jack Magne <jmagne@redhat.com>= 1.1.0-19
- Pick up latest fixes.
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.0-18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Fri Jun 22 2012 Jack Magne <jmagne@redhat.com>= 1.1.0-17
- Related #688361 - Get ESC to run on Gecko 2.0, again.
* Thu May 10 2012 Jack Magne <jmagne@redhat.com>= 1.1.0-16
- Related #688361 - Get ESC to run on Gecko 2.0.
* Mon Feb 20 2012 Jack Magne <jmagne@redhat.com>= 1.1.0-15
- Related #688361 - Get ESC to run on Gecko 2.0.
* Tue Nov 19 2011 Jack Magne <jmagne@redhat.com>= 1.1.0-14
- Related #688361 - Get ESC to run on Gecko 2.0.
* Thu Apr 15 2010 Jack Magne <jmagne@redhat.com>= 1.1.0-11
- Adjust for new linking rules.
* Tue Sep 15 2009 Jack Magne <jmagne@redhat.com>= 1.1.0-10

View file

@ -1,124 +0,0 @@
Index: mozilla/security/coreconf/location.mk
===================================================================
RCS file: /cvsroot/mozilla/security/coreconf/location.mk,v
retrieving revision 1.9
diff -u -r1.9 location.mk
--- mozilla/security/coreconf/location.mk 25 Apr 2004 15:02:17 -0000 1.9
+++ mozilla/security/coreconf/location.mk 11 Apr 2005 20:21:57 -0000
@@ -61,6 +61,8 @@
DIST = $(SOURCE_PREFIX)/$(PLATFORM)
+NSPR_LIBDIR = $(DIST)/lib
+
ifdef BUILD_DEBUG_GC
DEFINES += -DDEBUG_GC
endif
Index: mozilla/security/manager/Makefile.in
===================================================================
RCS file: /cvsroot/mozilla/security/manager/Makefile.in,v
retrieving revision 1.56
diff -u -r1.56 Makefile.in
--- mozilla/security/manager/Makefile.in 14 Mar 2005 10:00:58 -0000 1.56
+++ mozilla/security/manager/Makefile.in 11 Apr 2005 20:21:57 -0000
@@ -76,12 +76,23 @@
endif
endif
+ABS_DIST := $(shell cd $(DIST) && pwd)
+ifeq ($(OS_ARCH),WINNT)
+ABS_DIST := $(shell cygpath -w $(ABS_DIST) | sed -e 's|\\\\|/|g')
+endif
+NSPR_LIBDIR = $(firstword $(filter -L%,$(NSPR_LIBS)))
+ifneq (,$(strip $(NSPR_LIBDIR)))
+NSPR_LIBDIR := $(subst -L,,$(subst -L$(DIST),-L$(ABS_DIST),$(NSPR_LIBDIR)))
+else
+NSPR_LIBDIR = $(ABS_DIST)/lib
+endif
# NSS makefiles are not safe for parallel execution.
DEFAULT_GMAKE_FLAGS = MAKE="$(MAKE) -j1" -j1
DEFAULT_GMAKE_FLAGS += CC="$(CC)"
-DEFAULT_GMAKE_FLAGS += MOZILLA_INCLUDES="-I$(MOZ_BUILD_ROOT)/dist/include/nspr -I$(MOZ_BUILD_ROOT)/dist/include/dbm"
-DEFAULT_GMAKE_FLAGS += SOURCE_MD_DIR=$(MOZ_BUILD_ROOT)/dist
-DEFAULT_GMAKE_FLAGS += DIST=$(MOZ_BUILD_ROOT)/dist
+DEFAULT_GMAKE_FLAGS += MOZILLA_INCLUDES="$(subst -I$(DIST),-I$(ABS_DIST),$(NSPR_CFLAGS) -I$(DIST)/include/dbm)"
+DEFAULT_GMAKE_FLAGS += SOURCE_MD_DIR=$(ABS_DIST)
+DEFAULT_GMAKE_FLAGS += DIST=$(ABS_DIST)
+DEFAULT_GMAKE_FLAGS += NSPR_LIBDIR=$(NSPR_LIBDIR)
DEFAULT_GMAKE_FLAGS += MOZILLA_CLIENT=1
DEFAULT_GMAKE_FLAGS += NO_MDUPDATE=1
ABS_topsrcdir := $(shell cd $(topsrcdir); pwd)
Index: mozilla/security/nss/lib/ckfw/builtins/Makefile
===================================================================
RCS file: /cvsroot/mozilla/security/nss/lib/ckfw/builtins/Makefile,v
retrieving revision 1.14
diff -u -r1.14 Makefile
--- mozilla/security/nss/lib/ckfw/builtins/Makefile 20 Jan 2005 02:25:46 -0000 1.14
+++ mozilla/security/nss/lib/ckfw/builtins/Makefile 11 Apr 2005 20:21:57 -0000
@@ -53,23 +53,23 @@
# This is merely an expedient hack and not the right solution.
ifdef NS_USE_GCC
EXTRA_LIBS += \
- -L$(DIST)/lib \
+ -L$(NSPR_LIBDIR) \
-lplc4 \
-lplds4 \
-lnspr4 \
$(NULL)
else
EXTRA_LIBS += \
- $(DIST)/lib/$(NSPR31_LIB_PREFIX)plc4_s.lib \
- $(DIST)/lib/$(NSPR31_LIB_PREFIX)plds4_s.lib \
+ $(NSPR_LIBDIR)/$(NSPR31_LIB_PREFIX)plc4_s.lib \
+ $(NSPR_LIBDIR)/$(NSPR31_LIB_PREFIX)plds4_s.lib \
$(NULL)
endif
else
EXTRA_LIBS += \
- $(DIST)/lib/$(LIB_PREFIX)plc4.$(LIB_SUFFIX) \
- $(DIST)/lib/$(LIB_PREFIX)plds4.$(LIB_SUFFIX) \
+ $(NSPR_LIBDIR)/$(LIB_PREFIX)plc4.$(LIB_SUFFIX) \
+ $(NSPR_LIBDIR)/$(LIB_PREFIX)plds4.$(LIB_SUFFIX) \
$(NULL)
endif
Index: mozilla/security/nss/lib/fortcrypt/swfort/pkcs11/Makefile
===================================================================
RCS file: /cvsroot/mozilla/security/nss/lib/fortcrypt/swfort/pkcs11/Makefile,v
retrieving revision 1.18
diff -u -r1.18 Makefile
--- mozilla/security/nss/lib/fortcrypt/swfort/pkcs11/Makefile 25 Apr 2004 15:03:08 -0000 1.18
+++ mozilla/security/nss/lib/fortcrypt/swfort/pkcs11/Makefile 11 Apr 2005 20:21:57 -0000
@@ -63,7 +63,7 @@
$(DIST)/lib/$(LIB_PREFIX)softokn.$(LIB_SUFFIX) \
$(CRYPTO_LIB) \
$(DIST)/lib/$(LIB_PREFIX)secutil.$(LIB_SUFFIX) \
- -L$(DIST)/lib \
+ -L$(NSPR_LIBDIR) \
-lplc4 \
-lplds4 \
-lnspr4 \
@@ -76,8 +76,8 @@
$(DIST)/lib/softokn.lib \
$(CRYPTO_LIB) \
$(DIST)/lib/secutil.lib \
- $(DIST)/lib/$(NSPR31_LIB_PREFIX)plc4_s.lib \
- $(DIST)/lib/$(NSPR31_LIB_PREFIX)plds4_s.lib \
+ $(NSPR_LIBDIR)/$(NSPR31_LIB_PREFIX)plc4_s.lib \
+ $(NSPR_LIBDIR)/$(NSPR31_LIB_PREFIX)plds4_s.lib \
wsock32.lib \
winmm.lib \
$(NULL)
@@ -98,8 +98,8 @@
$(DIST)/lib/$(LIB_PREFIX)softokn.$(LIB_SUFFIX) \
$(CRYPTO_LIB) \
$(DIST)/lib/$(LIB_PREFIX)secutil.$(LIB_SUFFIX) \
- $(DIST)/lib/$(LIB_PREFIX)plc4.$(LIB_SUFFIX) \
- $(DIST)/lib/$(LIB_PREFIX)plds4.$(LIB_SUFFIX) \
+ $(NSPR_LIBDIR)/$(LIB_PREFIX)plc4.$(LIB_SUFFIX) \
+ $(NSPR_LIBDIR)/$(LIB_PREFIX)plds4.$(LIB_SUFFIX) \
$(NULL)
endif