Closed Bug 316369 Opened 19 years ago Closed 18 years ago

JSS native library for Mac OS X.

Categories

(JSS Graveyard :: Library, enhancement)

PowerPC
macOS
enhancement
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: joaquin.sanchez, Assigned: wtc)

Details

Attachments

(1 file, 1 obsolete file)

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
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
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?
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
Attached patch CVS Diffs for OS X JSS support (obsolete) — Splinter Review
With these changes, I'm able to build JSS on OS X 10.3.9.
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
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.
What is the status on getting this patch reviewed and checked into the tree?
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 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+
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
Closed: 18 years ago
Resolution: --- → FIXED
Target Milestone: --- → 4.2.5
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.

Attachment

General

Creator:
Created:
Updated:
Size: