can't use -j in general since the build of the other bits is almost
certainly not -j safe. If set, this will speed up the build for those
with an SMP box. [1]
. Install the cacerts file from Sun's JDK 1.5.0_06 release rather than
using the almost empty one that comes with the SCSL source. [2]
. Bump PORTREVISION for the second change.
PR: 87552 [1]
Submitted by: leafy <leafy@leafy.idv.tw> [1]
Prompted by: Panagiotis Astithas <past@ebs.gr> [2]
copy. This should have the following effects:
. Fix problems experienced by programmes that dynamically create their
own copy of the JVM and are linked against the system's zlib (e.g.,
eclipse).
. Reduce the potential for zlib based security problems affecting the
JDK.
Submitted by: mi@
in the systems libz.so. This conflict broke applications such as
Eclipse which is linked with libz.so (via gtk+ I believe).
This is a slightly modified version of the submitter's patch.
A better solution may be to link with the system's libz.so and remove
the JDK's internal zlib code altogether, but I'd like to test that a
little more first. Until then this solves the problem.
. Bump PORTREVISION since Eclipse seems to be quite widely used.
Submitted by: "Arno J. Klaassen" <arno@heho.snv.jussieu.fr>
valid one doesn't currently exist.
. Add a pkg-deinstall which removes the symbolic link if this port owns it.
. Produce pkg-install and pkg-deinstall with SUB_FILES and SUB_LIST rather
than manually using ${SED} ourselves.
Approved by: maintainer timeout
http://java.sun.com/j2se/1.5.0/docs/guide/awt/1.5/xawt.html
it has some advantages over XToolkit. Its also the default on Linux
and Solaris will be switching to it. Some people have reported that
it fixes a crash in the browser plugin for them.
Please let me know straight away if this causes problems, particularly
with Swing, as it hasn't been extensively tested. The web page
mentioned above explains how to switch the toolkits dynamically so you
can compare them.
Submitted by: Huang wen hui <hwh@gddsn.org.cn>
(the awt_LoadLibrary.c patch)
Approved by: phantom (maintainer)
. Many patches are now unnecessary as they are included in the new
patchset.
. The browser plugin and Java Web Start is enabled on i386 (there are
64 bit issues with both the plugin and Mozilla/Firefox which prevent
enabling it on amd64).
. Update the amount of disk space needed.
. Update the status of the port.
. Disable building the shared class data archive. This broke the build
on amd64 and appears to also be problematic on some i386 versions
(4.11 is broken at least). It will reappear in future, probably
initially on a limited set of FreeBSD versions and architectures
(6.0/i386 is reported to work).
Reviewed by: freebsd-java@
Approved by: maintainer timeout (1 week)
encoding. It is even easier to do the same thing to jdk14 and jdk13,
where only one charset-interface exists (jdk15 has two with the old one
considered obsolete).
Approved by: Alexey Zelkin (maintainer)
in or below the current working directory. Fixes a security problem with
jar(1).
This fix may change to be compatible with whatever fix Sun applies when
they release the next version of 1.5.
. Bump PORTREVISION for this fix.
Security: http://vuxml.FreeBSD.org/18e5428f-ae7c-11d9-837d-000e0c2e438a.html
Reviewed by: maintainer timeout
. /etc/localtime is a symlink.
. /etc/localtime contains a time zone not recognised by the JDK.
Submitted by: Kurt Miller <truk@optonline.net>
Reviewed by: maintainer timeout
hence the path for the shared libraries doesn't always work on FreeBSD.
It definitely fails on FreeBSD 4.11 and FreeBSD 6-CURRENT under the
tested environments. In fact, the dladdr(3) man page even warns of
these problems. While there is work under way to fix this, it isn't
available yet.
Given that situation, switch to trying /proc/curproc/file, which is
similar to what Linux does, and if that fails, drop back to checking
argv[0] and iterating through $PATH as in jdk 1.4. Both these methods
work correctly in testing.
Reported by: das
Reviewed by: maintainer timeout
unfortunately sending it to stdout. When using such a JDK to bootstrap
this line ends up at the head of generated classes, leaving them
uncompilable. Add a filter to the class generation to strip out such
lines with egrep.
A similar patch is present in the jdk14 port and prevents a semi-common
class of error reports.
Approved by: phantom (maintainer)
files that are generated by the post-install script (which runs after
the dynamic packing list has been generated).
Approved by: portmgr (krion), phantom (maintainer)
This ensures that this command is run before the files in the package
are deleted (which is necessary for it to correctly delete the symbolic
links created by registervm).
Approved by: phantom (maintainer)
family -- first public patchset of native Sun JDK 1.5.0 port.
Most valuable addition of this patchset is native amd64 support.
And special thanks goes to Daniel Seuffert <ds@freeBSD.org> for
making it possible by providing amd64 hardware.
This patchset was tested on following configurations: i386/4.10,
i386/5.3, amd64/5.3. 5.3-RELEASE support is quite strong and
shown no huge visible problems over last week.
But even mentioning above note, keep in mind -- THIS IS ALPHA
PATCHSET and suitable for testers/developers ONLY!
Known issues are including (but for sure not limited to):
. Browser plugin support is missing
. JVMTI, JDWP and JMX are not tested yet
. FreeBSD i386/4.10 support is suffering from hidden memory
allocation failres (ideas and patches are welcome)
NOTE ABOUT BOOTSTRAPING: It's possible to bootstrap jdk 1.5.0 using
jdk 1.4.2 (either native or linux one). There's no need to have
java/linux_jdk15 installed and working.
Supported by: FreeBSD Foundation
a generated file will be overwritten with a warning, causing the
build to fail. There is a check for linprocfs in pre-build, but it
seems as though this problem can somehow trigger anyway, based on
semi-regular reports to the mailing lists.
PR: 74999
Approved by: phantom
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
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
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
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.
(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.
override the MAKEFLAGS ARCH value in the main HotSpot Makefile. Fix
this by passing in a blank MAKEFLAGS up front so there is nothing to
(try to) override.
Submitted by: truckman
Requested by: kris
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]
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
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.
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.
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.
. Add j2se/ext/plugin/build/solaris/GNUmakefile to PTHREAD_FILES. Should
fix plugin compilation on -CURRENT. Mea culpa.
PR: 58269
Submitted by: Scott Dodson <sdodson@sdodson.com>
. 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)
start native JDK port build. linprocfs mounted become pre-requisite of
build after Linux SUN JDK port was updated to 1.4.2.
Add run-time (pre-build) check for linprocfs mounted as well.
Bump space requirements note about disk space required for build of
whole JDK 1.4.1 port and package to more appropriate value (as reported
by many people).
include/bsd -> include/freebsd in sources, but not reflected
this change in pkg-plist)
Reported by: Holger Kipp <Holger.Kipp@alogis.com>,
Kunihiro Arai <kunihiro-arai@seagreen.ocn.ne.jp>
. 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
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
2. Enable compiling the HotSpot JVM. This is experimental and there are a
number of caveats with its use that are reported by the port. The flag
to enable this is WITH_HOTSPOT.
3. Try to pick some OSVERSION settings appropriate for the current native
threads implementation.
PR: 47397 (2)
Submitted by: Munehiro Matsuda <haro@h4.dion.ne.jp> (2)
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
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>
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>.
.if defined(BATCH) || defined(PACKAGE_BUILDING)
IGNORE= "You can not legally distribute binaries"
.endif
This was superfluous and inhibiting package builds of things that
depend on the port. Having RESTRICTED and NO_CDROM is enough to
ensure that a package will not appear on the FTP site or a CDROM
(it will be built and used as a basis for other packages to build
with, but will be deleted at the end of the build run).
Requested by: kris
Reviewed by: portmgr (silence)
PR: 42758
TAR and add gtar to BUILD_DEPENDS unless the OSVERSION is old enough.
Small tweak by me to note that sobomax has MFC'ed the tar update.
Submitted by: Mikhail Teterin <mi@aldan.algebra.com>
result in the InvokerGen.java target failing. The bootstrapping Linux
JDK will confuse itself if WRKDIRPREFIX also exists in /compat/linux
as a symbolic link to the directory in the standard FreeBSD hierarchy.
Much appreciated sleuth work by: dillon
PR: 39231
. Don't use -p with ${MKDIR}, its the default.
. Define (if necessary) and use ${SORT}, ${CPIO} and ${FIND} rather than
hardwiring them as /usr/bin/sort, etc.
Apologies to sobomax for not asking for a review, I thought it important
to unbreak the port as quickly as possible.
Submitted by: alane (dependencies), znerd
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
an already installed native JDK rather than insisting on the
hardcoded Sun Linux JDK as the bootstrapper. This also means
that one can remove the Sun Linux JDK after the initial build
if so desired.
This may be superseded by a more general method of specifying
the bootstrap compiler from bsd.java.mk at a later date.
Reviewed by: sobomax
Approved by: sobomax
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
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
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
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
built by someone other than root. Instead of moving the files with tar,
move them with cpio and set up ownership.
Note that I have not closed the PR as there are 12 other ports named in
the PR with this problem.
PR: 36411
Submitted by: Alan Eldridge <ports@geeksrus.net>
Reviewed by: sobomax
Approved by: sobomax
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.