JSS native library for Mac OS X.

VERIFIED FIXED in 4.2.5

Status

JSS
Library
--
enhancement
VERIFIED FIXED
12 years ago
11 years ago

People

(Reporter: Joaquin Sanchez Jimenez, Assigned: Wan-Teh Chang)

Tracking

unspecified
4.2.5
PowerPC
Mac OS X

Details

Attachments

(1 attachment, 1 obsolete attachment)

(Reporter)

Description

12 years ago
User-Agent:       Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
Build Identifier: 

Need JSS native library for Mac OS X or make script

Reproducible: Always
(Assignee)

Comment 1

12 years ago
Joaquin: we've never built JSS on Mac OS X.  It should not
be hard to make it build and run, but we need to spend some
time to try it and fix any problems we find.

I'd like to know exactly what you need.  Would you like us
to provide an official JSS native library for Mac OS X, or
would you like to be able to build JSS on Mac OS X yourself?
Severity: normal → enhancement
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
(Reporter)

Comment 2

12 years ago
I would like to be able to build JSS on Mac OS X myself. NSS has been built on MAC OS X, what is the problem with JSS?
(Assignee)

Comment 3

12 years ago
Could you try to build JSS on Mac OS X and post the
build failures here?

I believe that you will need to at least add a MacOSX
section to mozilla/security/coreconf/jdk.mk.  You should
be able to model it after the Linux (or some other OS)
section in that file.

None of our JSS-based applications need to support
Mac OS X, so we don't need to build JSS on Mac OS X.
It should not be hard to port JSS to Mac OS X, and
I hope you can help us do that.

Here is what the Linux section in mozilla/security/coreconf/jdk.mk
looks like:

# set [Redhat Linux] platforms
ifeq ($(OS_ARCH), Linux)
	JAVA_CLASSES = $(JAVA_HOME)/jre/lib/rt.jar

	ifeq ($(JRE_HOME),)
		JRE_HOME = $(JAVA_HOME)
		JRE_CLASSES = $(JAVA_CLASSES)
	else
		ifeq ($(JRE_CLASSES),)
			JRE_CLASSES = $(JRE_HOME)/lib/rt.jar
		endif
	endif

	PATH_SEPARATOR = :

	# (2) specify "header" information
	JAVA_ARCH = linux

	INCLUDES += -I$(JAVA_HOME)/include
	INCLUDES += -I$(JAVA_HOME)/include/$(JAVA_ARCH)

	# no JIT option available on this platform
	JDK_JIT_OPT =
endif

So you need to add a section for MacOSX.  The most
important part is the -I pathnames we add to INCLUDES.

To do this work, check out the tip of JSS:

cvs co mozilla/nsprpub
cvs co mozilla/dbm mozilla/security/dbm
cvs co mozilla/security/coreconf mozilla/security/nss
cvs co mozilla/security/jss

You need to set the environment variable JAVA_HOME to
be the pathname of the JDK.

To build JSS, do this:

cd mozilla/security/nss
gmake nss_build_all
cd ../jss
gmake

Comment 4

12 years ago
Created attachment 212801 [details] [diff] [review]
CVS Diffs for OS X JSS support

With these changes, I'm able to build JSS on OS X 10.3.9.
(Assignee)

Comment 5

12 years ago
Created attachment 213135 [details] [diff] [review]
CVS Diffs for OS X JSS support, v2

I regenerated Nathan's patch against the current JSS
tip and without the -t option to cvs diff.  (The -t
option helps code review but makes it impossible to
apply the patch with the 'patch' command.)

Nathan, does the JDK on Mac OS X have the
$(JAVA_HOME)/../Classes/classes.jar file instead of
the $(JAVA_HOME)/jre/lib/rt.jar file?  It's strange
to have the ".." in the pathname.
Attachment #212801 - Attachment is obsolete: true

Comment 6

12 years ago
Wan-Teh: The classes.jar file does replace the rt.jar file on OS X.  Unfortunately, this jar does not exist inside of JAVA_HOME.  It is one level above the JAVA_HOME location, so we have to use ".." in the pathname to get the proper jarfile.

Comment 7

12 years ago
What is the status on getting this patch reviewed and checked into the tree?
(Assignee)

Comment 8

12 years ago
Comment on attachment 213135 [details] [diff] [review]
CVS Diffs for OS X JSS support, v2

r=wtc.  I checked in the patch on the JSS trunk.

Checking in coreconf/jdk.mk;
/cvsroot/mozilla/security/coreconf/jdk.mk,v  <--  jdk.mk
new revision: 1.19; previous revision: 1.18
done
Checking in jss/lib/config.mk;
/cvsroot/mozilla/security/jss/lib/config.mk,v  <--  config.mk
new revision: 1.21; previous revision: 1.20
done

I believe we also need the coreconf change in this patch checked
in on NSS_3_11_BRANCH because Sun builds the JSS trunk using
the coreconf from NSS_3_11_BRANCH.
Attachment #213135 - Flags: superreview?(julien.pierre.bugs)
Attachment #213135 - Flags: review+

Comment 9

12 years ago
Comment on attachment 213135 [details] [diff] [review]
CVS Diffs for OS X JSS support, v2

Sun doesn't build JSS on Mac, to the best of my knowledge. I don't have access to a Mac, and I can't verify that the content of this patch is correct. r+ if you have tested this patch.
Attachment #213135 - Flags: superreview?(julien.pierre.bugs) → superreview+
(Assignee)

Comment 10

11 years ago
I checked in the coreconf change on the NSS_3_11_BRANCH
for JSS 4.2.5.

Checking in jdk.mk;
/cvsroot/mozilla/security/coreconf/jdk.mk,v  <--  jdk.mk
new revision: 1.18.2.1; previous revision: 1.18
done
Status: ASSIGNED → RESOLVED
Last Resolved: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → 4.2.5
(Assignee)

Comment 11

11 years ago
I tested a JSS trunk build (with NSPR_4_6_BRANCH and
NSS_3_11_BRANCH) on Mac OS X 10.4.3.  I set the environment
variable JAVA_HOME to /Library/Java/Home.  (I didn't install
Java, so I am using either the built-in Java or the latest
version obtained by Software Update.)  I verified that
both changes in the patch are required to build JSS.

I also found that more changes are needed to run the JSS
test suite (mozilla/security/jss/org/mozilla/jss/tests/all.pl)
on Mac OS X.  Let's do that in a separate bug report.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.