Commit Graph

55 Commits

Author SHA1 Message Date
Greg Lewis
008ccf15cd . Backport parts of the 1.5 plugin to address plugin vulnerabilities.
. Bump PORTVERSION.

Submitted by:	Kurt Miller <truk@optonline.net>
2004-12-03 19:53:44 +00:00
Greg Lewis
1816314216 . Take into account that pthread_mutex_trylock() can return EDEADLK as
well as EBUSY with libkse on FreeBSD 5.x.

Inspired by:	green
2004-11-02 05:24:05 +00:00
Brian Feldman
52602010f0 The BSD patchset for the Sun JDK modeled its thread behavior mostly after
existing the Solaris base, and similarly to what happened with NSPR, made
a bad assumption on undefined behavior.  This broke locking in various
places in Java, for example, causing the the debugging support to be
totally broken.  It is worth someone who knows the Java codebase taking
a look to see what other things could have been broken by this on
FreeBSD 5.x+.

The assumption is that pthread_mutex_trylock(3) on a default-type
mutex will fail with EBUSY.  This assumption is wrong for our
libpthread, which returns EDEADLK if the owner thread is trying to
acquire the mutex again with trylock.  The behavior of performing a
locking operation on a self-locked default-type mutex is explicitly
undefined for pthread_mutex_lock(3).

The POSIX specification is still not very clear.  It defines
pthread_mutex_trylock(3) in terms of pthread_mutex_lock(3) yet
does not say what the defined behavior should be for a self-locked
pthread_mutex_trylock(3) for any of the various mutex types, so it is
ambiguous whether the result is clearly undefined or clearly to return
EBUSY.

It is a one line change whether or not to make libpthread return
EDEADLK in this case, where it seems that most implementations do not.

Reference:	http://www.opengroup.org/onlinepubs/009695399/functions/pthread_mutex_lock.html
2004-10-20 23:22:56 +00:00
Greg Lewis
7298661664 . Fix the Server VM for gcc 3.4 part 2/2.
The HotSpot code (ab)uses named enums as ints in a number of places.
  The problem with this is that according the the C++ spec, the compiler
  (essentially) only needs to use an integral type wide enough to hold
  the values defined in the enum.  Earlier versions of gcc appear to have
  just used an int whether they could have got away with a narrower type
  or not, hence the code worked as expected.  gcc 3.4 now appears to
  implement this part of the spec, so using an enum blindly as an int
  causes various problems due to overflow.

  In this case the enum, Bytecodes::Code, appears to be a genuine enum,
  its just assumed to be wide enough to hold an arbitrary int in various
  places in the code.  The correct fix would be to track down all those
  places in the code and fix them.  Since there are quite a lot of these
  places and 5.3 is close to release for now we just add a value to the
  enum set to INT_MAX, forcing the compiler to use at least an int for the
  type.

Sleuth work, discussion and code suggestions:	peadar
2004-10-16 17:16:40 +00:00
Greg Lewis
67fad41225 . Fix the Server VM for gcc 3.4 part 1/2.
The HotSpot code (ab)uses named enums as ints in a number of places.
  The problem with this is that according the the C++ spec, the compiler
  (essentially) only needs to use an integral type wide enough to hold
  the values defined in the enum.  Earlier versions of gcc appear to have
  just used an int whether they could have got away with a narrower type
  or not, hence the code worked as expected.  gcc 3.4 now appears to
  implement this part of the spec, so using an enum blindly as an int
  causes various problems due to overflow.

  This case is particularly bogus since the enums are merely to define
  a named integral type within a class (VMReg::Name doesn't even have
  any values enumerated in the declaration).  So, convert these two
  enums to simply be typedef'ed ints.

Sleuth work, discussion and code suggestions:	peadar
2004-10-16 17:12:22 +00:00
Greg Lewis
e3262fa4db . In the ReadChunk() function, change an assert() to be a "test for a
condition and return NULL".  Take account of the NULL in the
  appropriate place (which is somewhat worrisome in itself since
  ReadChunk() has always had the possibility of returning NULL).
  This makes loading a font file a little more resilient to specially
  crafted font data which can be used, for example, by an applet to
  crash the browser plugin by triggering the assert().  Such an applet
  was mentioned on Bugtraq:

  http://www.securityfocus.com/archive/1/367331/2004-06-26/2004-07-02/0

  and can be found at

  http://www.illegalaccess.org/cms/?q=node/view/9

  This change stops the browser plugin from crashing.
. Fix some warnings regarding formats in debugging printf's.
2004-10-16 17:00:27 +00:00
Greg Lewis
4e95ec3207 . At least on FreeBSD, O_SYNC and O_DSYNC aren't both defined
(for FreeBSD 4.x neither are defined and for FreeBSD 5.x
  O_DSYNC isn't defined).  This caused them to be defined to
  some bogus values.  In particular, O_SYNC would be defined
  as 0x800, which is O_EXCL (at least on FreeBSD 4.x).  The
  result being that the RandomAccessFile class would fail to
  open an existing file if you specified "s" as part of the mode.
  Fix this by defining O_SYNC and O_DSYNC to O_FSYNC if they
  aren't defined.
2004-10-16 16:58:12 +00:00
Greg Lewis
e551896df5 . Fix the build for gcc 3.4.
PR:		69853
Submitted by:	Jake Hamby <jhamby@anobject.com>
Approved by:	phantom (maintainer)
2004-08-12 21:54:01 +00:00
Alexey Zelkin
17eaf80bc2 . Set LATEST_LINK [1]
. Fix rare NULL pointer de-reference bug in plugin code [2]

. Use better chinese fonts [3]

. Bump PORTREVISION

Requested by:	kris [1]
Submitted by:	Georg-W. Koltermann <gwk@rahn-koltermann.de> [2],
		Clive Lin <clive@tongi.org> [3]
2004-03-05 13:43:41 +00:00
Alexey Zelkin
ae179afb91 1. Switch 5.x version of jdk14 back to libc_r as default threading library.
We switched FreeBSD-5.x port to libkse as default threading library before
   releasing of patchset 6, but users who has most of stuff linked against
   libc_r and attempted to use jdk linked against libkse got into local hell
   of threading libraries mix.  So, rollback to libc_r by default and add
   PTHREAD_LIBS support for this port.

   IMPORTANT: In order to use libkse as threading library for jdk14 you
   have to use rtld's libmap feature or recompile your ports stuff (like
   mozilla) with libkse.

   NOTE: libkse still has issues with java debug support, so if you're going
   to use debuging (JVMDI) stuff - leave with libc_r for now.

2. Disable IPv6 support by default.  Unfortunatelly due to security reasons
   IPv4-to-IPv6 addresses mapping is disabled by default in FreeBSD-5.x, so
   those who would like to use Java Networking stuff had to manually
   enable it.  To make jdk14 port more user-friendly IPv6 is disabled now
   on compile time.  Those who need this stuff enabled have to use WITH_IPV6
   compile time option.

3. Add MINIMAL compile option.  If this option is used to build
   jdk14 port then plugin, javaws and demos stuff will not be installed
   and/or packaged.  Also (as noted in [5]) X11 runtime dependancy will
   not be registered into built package.

4. Strip runtime depends of jdk14 port.  There's no need to require open-motif
   to be runtime depends since libXm is staticly linked into libawt.so.

5. Make X11 runtime dependancy conditional (via urwfonts) in !WITHOUT_PLUGIN
   case only.  This should affect only prebuilt package users:  there's no
   need to install X11 libraries if you're going to use non-GUI stuff only
   (i.e. tomcat or jboss)

6. Add ${LOCALBASE}/lib to the deafult search path for JNI libraries.

7. Bump PORTVERSION

Reported by:	many [1]
Submitted by:	glewis [6]
Requested by:	marcus [6]
2004-01-28 14:00:27 +00:00
Greg Lewis
db3bca7b78 . Check the return value of stat(2) when trying to read the javaws
configuration file and behave appropriately if its -1.  Fixes a SEGV
  caused by ignoring the return value and just carrying on.
. Bump PORTREVISION.

PR:		61392
2004-01-17 07:11:12 +00:00
Greg Lewis
df0cd23644 . Update to 1.4.2 patchset 6.
. Install the cacerts file from Sun's 1.4.2_03 release to avoid some
  problems associated with expired root certificates described in:

  http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fsalert%2F57436

Hopefully not objected to by:	phantom
2004-01-14 21:21:53 +00:00
Alexey Zelkin
1db29d0ac9 Fix path to patched file.
Reported by:	Nelis Lamprecht <nelis@brabys.co.za>
2003-11-12 14:11:39 +00:00
Alexey Zelkin
37eb6bfcea Add patch to fix build problems on 5.x system reported by many people.
It was last minute change and since this tool (unpack) is not used while
building jdk14 port, I did not paid enough attention to test this change
at -CURRENT system.  Sorry.
2003-11-12 12:13:35 +00:00
Alexey Zelkin
371e6b4b5c Update to 1.4.2p5.
Important changes since last patchset:

. jdk14 port is now JDK 1.4.2 based!
. JavaWS distributing with jdk
. Runway problem fixed (fork() is no more problem for java apps)
. Sound support updated
. IPv6 support overhauled
. Drag'n'Drop support fixed (require open-motif mods)

As for now there's no more outstanding issues with this port!

FreeBSD port is also got a important of changes:

. optimized setup is now default (to get debuging bins/libs use WITH_DEBUG)

. bootstrap jdk autodetection.  If WITH_LINUX_BOOTSTRAP is not set, then
  it checks all known to work JDKs installed.  If nothing found, forces
  to install of linux-sun-jdk14

. Because of above change there's no NATIVE_BOOTSTRAP option anymore.  If
  native jdk14 is installed, it will be used by default.
2003-11-11 16:16:20 +00:00
Alexey Zelkin
7d2d0599c7 . Add fix for "runaway process" problem. It should fix of stalled
processes problem for people who use Runtime.getRuntime.exec() method
  and related things.  Least five people reported that this patch fixed
  problem for them.

  IMPORTANT: I'd also suggested to all jdk14 users who runs FreeBSD 4.x
  and use libc_r at FreeBSD 5.x to upgrade.

. Stop removing "src.zip" from installation bundle.  Since -p4 it builds
  correctly and there's no reason to forbit people to use it.

. Bump PORTREVISION.
2003-10-29 08:20:59 +00:00
Greg Lewis
4bb0df0d3b . Update to 1.4.1p4.
. Use ${PTHREAD_LIBS} rather than -pthread or -lc_r.
. Install system preferences to avoid annoying and constant error messages.

Approved by:	phantom (the update, anyway)
2003-10-11 05:16:50 +00:00
Greg Lewis
97c3e77bbb . Unset -Werror when compiling the NIO stuff. GCC 3.3.1 tends to generate
warnings that 2.95 doesn't and breaks the build on -CURRENT.
2003-10-11 05:13:11 +00:00
Greg Lewis
118f931690 . Add $FreeBSD$
. Put the MD JNI headers in include/freebsd _not_ include/bsd.  This
  brings the 1.4 port in line with 1.1, 1.2 and 1.3, and arguably inline
  with Solaris and Linux.

Not-objected-to by:	phantom
2003-05-02 15:49:02 +00:00
Alexey Zelkin
ccb8609092 Add runtime test to check of required libc_r functionality. I.e. warn
people about requirement of libc_r updates as early as possible.

Bump PORTREVISION

Approved by:	portmgr (kris) (implicitly)
2003-03-13 21:43:36 +00:00
Alexey Zelkin
3b10183596 Fix build on 5.0-RELEASE 2003-03-13 11:13:16 +00:00
Alexey Zelkin
7cea82075d Since we have problems with running debuging binaries on some machines
(old K6 and some SMP machines) don't use javah_g in build process.

Reported by:	many people
2003-03-11 08:54:30 +00:00
Alexey Zelkin
4b12e892bf Add patch which backouts some of my early compile hacks which now preventing
MulticastSocket.joinGroup() from behaving correctly.

Submitted by:	Stefan Farfeleder <stefan@fafoe.dyndns.org>
2003-03-11 08:13:53 +00:00
Alexey Zelkin
6513eda595 I am pleased to announce first public -beta patchset of FreeBSD/Java port
for JDK 1.4.1.  This is complete and close to production quality
native JDK with both working client and server native JVMs.  Local micro
benchmarks shown very little difference between Linux and FreeBSD JVMs in
speed.

One of important points of this patchset that it marks point when we are
very close to passing of Sun TCK tests.  Currently about 20 of >27000 tests
are known to be broken (tests were run at -STABLE).  If testing of this
patchset will be smooth and founding of this work will be continued we
may expect to have binary distribution of JDK 1.4.1 in April or begining
of May.

BUT, don't forget that even TCK tests can't cover all possible problems
and this is -beta patchset.  Keep your eyes open and report your problems
to freebsd-java mailing list or to me directly!

* About supported FreeBSD releases:

Altough 4.8-RELEASE will be first officially supported FreeBSD release,
you may use JDK 1.4.1-p3 at stock post-02-Feb-2003 -STABLE or -CURRENT.

You also may use it at post-07-Jan-2003 -STABLE and -CURRENT (including
5.0-RELEASE), but it's required to apply libc_r patch, distributed with
patchset3 archive, and rebuild libc_r first.

* About compiler:

This port is supposed to be built with stock FreeBSD compiler (3.2.[12]
for -CURRENT and 2.95.4 for -STABLE)!

* Following issues are known, but not yet addressed:

. IPv6 networking.  IPv6 support is disabled in this patchset.
. Asian languages support.  Patches are welcome!
. K6 (586-class) processors support.  There're issues with building on
  old K6 processors.  If you've problems with 586-class machines other than
  K6 - please let me know.
. Mozilla plugin is not yet ported.

* Following areas should be used with increased attention:

. Java Virtual Machine Profiling Interface (JVMPI)
. Java Virtual Machine Debugging Interface (JVMDI)
. Host Porting Interface (HPI)

If you have problems with these interfaces please let me know.

* THANKS!

I would thank very much to FreeBSD Foundation, without which support
and sponsorship JDK 1.4.1 port would not happen in such timeframes (less
than 2 months).

Sponsored by:	FreeBSD Foundation
Approved by:	portmgr
2003-03-06 23:18:24 +00:00
Greg Lewis
dcef90030b . Updated version of native threads for FreeBSD. This uses recently
committed enhancements to libc_r and is only suitable for very recent
  versions of FreeBSD.  The big benefit is that it removes almost all
  the previous grovelling about in the pthreads internals.

  The change only comes into effect when WITH_NATIVE_THREADS is set.
  A separate Makefile commit will attempt to enforce appropriate
  OSVERSION settings for using it.

Submitted by:	fjoe
2003-02-28 17:47:38 +00:00
Greg Lewis
f0d4b083fc . Rename our internal gethostby{name,addr}_r functions to avoid collisions.
Currently gethostbyaddr_r collides with the implementation (in libc!) for
  FreeBSD 5.x which both uses a different prototype (as per the Linux
  version) and is marked temporary and not thread safe.  Also, limit the
  scope of these internal implementations to this file.

  This fixes crashes in networked applications for FreeBSD 5.x.

  Some tweaks (making the functions static, naming, BSD ifdefs) by me.

Submitted by:	"Georg-W. Koltermann" <g.w.k@web.de>
2003-02-28 17:33:10 +00:00
Greg Lewis
3ed8e2b166 . Respect LOCALBASE in the DEVTOOLS_PATH setting.
PR:		47668
Submitted by:	Mike Meyer <mwm-dated-1044336154.329122@mired.org>
2003-02-28 17:18:43 +00:00
Greg Lewis
da27056044 . Add missing include of <sys/time.h>, needed by <sys/resource.h> for
FreeBSD 5.x.  This fixes native threads compilation on FreeBSD 5.x.

Submitted by:	Munehiro Matsuda <haro@h4.dion.ne.jp>
2003-02-28 17:16:21 +00:00
Greg Lewis
79371b8e8e . Be consistent about our compiler settings. Using gcc32 here was both
inconsistent with the rest of the code and only relevant on 4.x (since
  5.x has gcc 3.2.x as its default compiler).
2003-02-28 17:12:24 +00:00
Greg Lewis
30ab46c12b . Resurrect patch accidentally removed in last commit. 2003-02-12 19:01:39 +00:00
Greg Lewis
a3d89c1e3c . Update to patchset 8. 2003-02-12 19:00:42 +00:00
Greg Lewis
e4956ee696 . Fix UDP packet broadcasting.
. Bump PORTREVISION.

Submitted by:	daichi, Tetsuo Suzuki <tetsuo@ss-lab.net>
2002-10-31 17:56:56 +00:00
Greg Lewis
b962656ac3 . Chinese font.properties and make glue.
Submitted by:	Huang wen hui <hwh@ns.gddsn.org.cn>
2002-10-25 05:51:52 +00:00
Greg Lewis
daaab4406a . More XIM fixes for Japanese users (and presumably others with similar
character sets).
. Bump PORTREVISION.

Submitted by:	daichi
2002-10-18 21:45:45 +00:00
Greg Lewis
68eb5d0400 . Link the Netscape 4 plugin against libintl to avoid a runtime link
error.  This may allow browsers which use Netscape 4 plugins (e.g.
  Konqueror) to make use of it.

Code change by me, problem report by Dylan Carlson <absinthe@pobox.com>.
2002-10-18 21:44:13 +00:00
Greg Lewis
4d9ad417ed . Russian and Ukrainian font property files and appropriate build changes.
Submitted by:	mi
2002-10-18 21:41:25 +00:00
Greg Lewis
5e9fbe3fad Improved font.properties.ja based on the Kochi fonts rather than the
Watanabe/Wadalab fonts.

Submitted by:	daichi <daichi@ongs.co.jp>
2002-08-05 18:26:16 +00:00
Greg Lewis
3341a3cd35 Add in a patch from the porting repository that allows people to build
HotSpot if they wish (by hand, not via the port yet).
2002-08-05 18:16:05 +00:00
Greg Lewis
833af3b828 Update to patchset 7. 2002-07-25 18:31:26 +00:00
Greg Lewis
991bc4e41a . Fix compilation on FreeBSD 4.2 by including <sys/param.h>
PR:	36871

. Fix compilation on -CURRENT using gcc 3.1 by including <string.h>
  (for strlen(3))

Reported and tested by:	 John Angelmo <john@veidit.net>

Reviewed by:	sobomax
Approved by:	sobomax
2002-06-11 19:03:47 +00:00
Kris Kennaway
9f5a2bc787 Rename monstrously long patch filenames that were causing tar to exceed
length limitations (100 characters) and fail.
2002-06-05 21:43:14 +00:00
Greg Lewis
b2841c8077 Really fix the incompatibilities with gettext 0.11. The previous
bandaid is reverted by this commit and instead patches are added
which will remove duplicate message entries from the .po files for
the plugin.

These are essentially the patches of marius@alchemy.franken.de, with
the first part of each patch removed (the message does actually have
two spaces in the code!).  These patches were verified with the script
submitted by KANOU Hiroki-san and against the patches submitted by
SUGIMURA Takashi-san.  Thanks to all of these people.

Apologies for the increasingly long patch names.

PR:		37087, 37147
Submitted by:	marius@alchemy.franken.de
Reviewed by:	sobomax
Approved by:	sobomax
2002-05-03 05:32:23 +00:00
Greg Lewis
4a6fa7fd6f Fix the build of libaudio.so on 5-CURRENT by using <sys/soundcard.h>
rather than <machine/soundcard.h>.  This doesn't affect the build
on 4-STABLE.

PR:		36988
Submitted by:	Motoyuki Konno <motoyuki@bsdclub.org>
Reviewed by:	sobomax
Approved by:	sobomax
2002-04-16 19:34:24 +00:00
Greg Lewis
8716a1907f Add a temporary dependency on gettext-old and use msgfmt-old to process
messages for the browser plugin.

This is a bandaid for the problem expressed in the PR while I evaluate
a number of other proposed patches for the correct fix.  Hence the PR
currently remains open.

PR:	37087
Reviewed by:	sobomax
Approved by:	sobomax
2002-04-16 18:24:44 +00:00
Greg Lewis
3b5594fd6b Fix some crash bugs in the browser plugin code by using
the correct functions to call static Java methods.

Submitted by:	Richard Tobin <richard@cogsci.ed.ac.uk>
Reviewed by:	sobomax
Approved by:	sobomax
2002-04-16 06:07:05 +00:00
Greg Lewis
d33b274b3b Add Taiwan Chinese font properties support (if I understand
the locale correctly).

Submitted by:	Zhenbang Wei <forth@zbwei.net> (via clive)
Reviewed by:	sobomax
Approved by:	sobomax
2002-04-16 06:04:20 +00:00
Greg Lewis
51a22b820e A better fix for creating src.jar. Using tar by itself fails because the
argument list is too long.  Hence the first patch invoked tar once for
each file.  This works, but is inefficient.  This version of the patch
uses cpio in pass through mode to copy all the files at once.

PR:		35658
Submitted by:	"Remco van 't Veer" <rwvtveer@xs4all.nl>
Reviewed by:	sobomax
Approved by:	sobomax
2002-04-12 05:00:52 +00:00
Maxim Sobolev
0b5fbf9067 Link Mozilla pligin with libXt to make it working with Mozilla-0.9.9. This
resolves the following error when starting Mozilla:

  LoadPlugin: failed to initialize shared library
  /usr/local/jdk1.3.1/jre/plugin/i386/ns600/libjavaplugin_oji.so
  [/usr/local/jdk1.3.1/jre/plugin/i386/ns600/libjavaplugin_oji.so: Undefined
  symbol "XtShellStrings"]

While I'm here add a tweak to prune empty directories before installing
JDK, so that JDK installed from a pre-built package deinstalls properly.

Bump PORTREVISION.
2002-03-13 15:06:16 +00:00
Ernst de Haan
efdbdc5974 Fixes the problem that the source JAR is too small.
Submitted by:	Greg Lewis
PR:		ports/35658
2002-03-11 10:36:27 +00:00
Maxim Sobolev
a5d43336b4 Update to patchlevel 5.
PR:		31257
Submitted by:	Greg Lewis <glewis@eyesbeyond.com>
2001-10-16 12:43:07 +00:00