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.
agree to the company's license requirement before downloading (although
the agreement mostly pertains to their software available for purchase).
PR: ports/71510
Submitted by: mitsuru at riken dot jp (maintainer)
Approved by: portmgr (implicit)
- Use LOCALBASE rather than PREFIX in RUN_DEPENDS
- Now bsd.java.mk 2.0 compliant
- Use CPIO rather than CP
- Use JAVAJARDIR and JAVASHAREDIR
- Removed pkg-plist (use dynamic plist and PORTDOCS)
- Honor NOPORTDOCS
- Honor hier(7): documentation in DOCSDIR and examples in EXAMPLESDIR [2]
- Honor "best practices for a Java library" from Porter's handbook, Java
section: JARs in JAVAJARDIR. [2]
- SIZEify
- Added 'mail' category
PR: 71235 [1]
Submitted by: Rainer Duffner <rainer@ultra-secure.de> [1]
Reviewed by: glewis [2]
Approved by: glewis (mentor)
- Now bsd.java.mk 2.0 compliant
- Use CPIO rather than CP
- Use JAVAJARDIR and JAVASHAREDIR
- Removed pkg-plist (use dynamic plist and PORTDOCS)
- Honor NOPORTDOCS
- Honor hier(7): documentation in DOCSDIR and examples in EXAMPLESDIR
- Honor "best practices for a Java library" from Porter's handbook, Java
section: JARs in JAVAJARDIR.
- Added 'devel' category
- SIZEify
Pointed out by: Rainer Duffner <rainer@ultra-secure.de> [1]
Approved by: glewis (mentor)
. Make the comment for the registervm call consistent with the conventional
naming scheme and the one in Makefile.
. Add missing creation and deletion of %%PREFIX%%/share/doc/java for
consistency with other JDK pkg-plists.
. Make the comment for the registervm call consistent with the conventional
naming scheme and the one in Makefile.
. Add missing creation and deletion of %%PREFIX%%/share/doc/java for
consistency with other JDK pkg-plists.
- Cosmetic changes: removed some unnecessary variable
- Use CPIO rather than MKDIR/INSTALL_DATA
- Added 'textproc' category
- Use my FreeBSD address for maintainership purposes
- Removed my name from pkg-descr
Approved by: glewis (mentor)
not really a fix)
- Now bsd.java.mk 2.0 compliant
- Cosmetic changes: ECHO_CMD -> ECHO_MSG and removed unnecessary variables
- Use CPIO rather than MKDIR/INSTALL_MAN/INSTALL_DATA
- Removed JAR file for pkg-plist
- Added 'devel' category
- Removed unnecessary 'post-install' target
- Updated homepage in pkg-descr
- Use my FreeBSD address for maintainership purposes
Approved by: glewis (mentor)
- Use USE_ANT
- Now bsd.java.mk 2.0 compliant
- Cosmetic changes: ECHO_CMD -> ECHO_MSG and removed unnecessary variables
- Use CPIO rather than MKDIR/INSTALL_MAN
- Removed pkg-plist
- Install LICENSE.txt
- SIZEify (!)
- Use my FreeBSD address for maintainership purposes
- Removed my name from pkg-descr
Approved by: glewis (mentor)
%D/share/doc/java.
. Assume (un)registervm is in LOCALBASE _not_ PREFIX.
. Call unregistervm with the VM we registered, not the comment associated
with (as comments should be optional).
By the way, in the future, you can put the Class as 'maintainer-update'.
PR: ports/70796
Submitted by: Gerrit Beine <tux at pinguru dot net> (maintainer)
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
- Use USE_ANT
- Set USE_JIKES=no to forbid the use of Jikes to build the port
- Use %%JAVAJARDIR%%
- Use ${INSTALL_DATA} and ${CPIO} rather than ${CP} [1]
- Use ${ECHO_MSG} rather than ${ECHO}
- Add 'textproc' category
- Fix LOCALBASE/PREFIX issue with JAVAJARDIR [1]
PR: 68511
Submitted by: me
Reviewed by: glewis [1]
Approved by: znerd (maintainer), glewis (mentor)
- Use USE_ANT
- Use %%JAVAJARDIR%%
- Use ${INSTALL_DATA} and ${CPIO} rather than ${CP} [1]
- ECHO_CMD -> ECHO_MSG
- Fix homepage in pkg-descr (and arrange the text a little)
- Add 'devel' category
PR: 70213
Submitted by: me
Reviewed by: glewis [1]
Approved by: glewis (mentor), znerd (maintainer)
additional patches.
This patch is taken almost verbatim from PR 69853 which was
submitted by Jake Hamby <jhamby@anobject.com>. I've applied it to
jdk13 rather than jdk14 though.
o Update to 3.0.1.
PR: java/69751
Submitted by: SUGIMURA Takashi <sugimura@jp.FreeBSD.org> (maintainer)
Pointed out by: Oliver Lietz <freebsd-java@oliverlietz.de>
o Fix build on 4-stable. [2]
o Fix a problem expect using JDK1.4.2. [3]
o Respect CC/CXX. [4]
o Bump PORTREVISION Accordingly.
Reported by: Jiawei Ye <leafy7382@gmail.com> [2]
SUGIMURA Takashi <sugimura@jp.FreeBSD.org> [3]
Jan-Peter Koopmann <Jan-Peter.Koopmann@seceidos.de> [4]
Submitted by: Jeremy Faulkner <gldisater@gldis.ca> [1] [3]
Fernan Aguero <fernan@iib.unsam.edu.ar> [2]
Reviewed by: Panagiotis Astithas <past@ebs.gr> [1] [3] [4]
Pointy hat to: myself [2]
. Don't define local copies of JAVASHAREDIR and JAVAJARDIR.
. Use %%JAVAJARDIR%% in the packing list now that bsd.java.mk supports it.
PR: 69525 [1]
Submitted by: Anton Yudin <toha@toha.org.ua> (maintainer) [1]
Poseidon for UML to the port.
It is possible to switch the edition using the knobs
POSEIDON_SE=yes for the Standard Edition or
POSEIDON_PE=yes for the Professional Edition.
The download mechanism also changed. The packages will be fetched
automatically from Gentleware's FTP server from now on.
PR: ports/68929
Submitted by: maintainer.
its recommendation to use MASTER_SITE_APACHE_JAKARTA -- maintainer, I hope
that's ok.)
PR: java/66061
Submitted by: Dave Glowacki <dglo at glowacki.dyndns.org> (maintainer)
bsd.java.mk testing on bento.
Done now to get this fixed for 4.10.
PR: 65614
Submitted by: Herve Quiroz <herve.quiroz@esil.univ-mrs.fr>
Hopefully not objected to by: znerd
The Discovery Component is about discovering, or finding, implementations for
pluggable interfaces. It provides facilities intantiating classes in general,
and for lifecycle management of singleton (factory) classes.
Fundamentally, Discovery locates classes that implement a given Java interface.
The discovery pattern, though not necessarily this package, is used in many
projects including JAXP (SaxParserFactory and others) and commons-logging
(LogFactory). By extracting this pattern, other projects can (re)use it and
take advantage of improvements to the pattern as Discovery evolves.
Discovery improves over previous implementations by establishing facilities for
working within managed environments. These allow configuration and property
overrides without appealing to the global System properties (which are scoped
across an entire JVM).
PR: 65490
Submitted by: Herve Quiroz <herve.quiroz@esil.univ-mrs.fr>
. Use MASTER_SITE_APACHE_JAKARTA. [1]
. bsd.java.mk 2.0 compliant. [1]
. Removed pkg-plist using PLIST_FILES. [1]
. Forced ANT to use the selected version of Java.
PR: 65617 [1], 65349 [2]
Submitted by: Herve Quiroz <herve.quiroz@esil.univ-mrs.fr>
Anton Yudin <toha@toha.org.ua>
Approved by: Anton Yudin <toha@toha.org.ua> (maintainer)
Java Development Kit 1.5 Documentation. Contains release information,
API documentation, guides to new features and tool documentation.
The documentation will be installed in ${PREFIX}/share/doc/jdk1.5/
WWW: http://java.sun.com/j2se/1.5/
- Use the PORTDOCS macro to build dynamically pkg-plist (no more
Javadoc 1.3/1.4 issues hopefully, and pkg-plist is now one line
long)
- Define the ANT_INCLUDE_SHARED_JARS variable so Ant now correctly
gets JARs from ${JAVAJARDIR}
PR: 61357
Submitted by: Herve Quiroz <herve.quiroz@esil.univ-mrs.fr>
- Now using PORTDOCS macro for automated PLIST build (should fix the deinstall
issue)
- Now using OPTIONS macro for dependency setting:
- WITH_LOG4J: Enable Jakarta Log4j log factory (default: on)
- WITH_LOGKIT: Enable Avalon LogKit log factory (default: off)
- WITH_JDK14LOG: Enable JDK 1.4 log factory (default: off)
- Changed Ant target 'dist' to 'compile' (to produce only JAR when NOPORTDOCS
is set)
- Now using Ant target 'javadoc' (see above)
- Fixed an issue with shared JARs not in classpath (by setting
ANT_INCLUDE_SHARED_JARS=YES)
- Now bsd.java.mk 2.0 compliant
- Fixed a bug with ant targets (adding rather than overwriting)
- Use JAVAJARDIR everywhere
- Fixed the ugly '*' in PORTDOCS
- ECHO -> ECHO_CMD
- Fixed indentation (previously 4 spaces)
- Use MASTER_SITE_APACHE_JAKARTA
- Removed the WRKSRC override stuff (it's the default value anyway)
PR: 63928
Submitted by: Herve Quiroz <herve.quiroz@esil.univ-mrs.fr>
- Update to version 3.0
- Now using PORTDOCS macro for automated PLIST build (should fix the deinstall
issue)
- Now using MASTER_SITE_APACHE_JAKARTA
- Now installs various additional docs: e.g. DEVELOPERS-GUIDE.html
- Now using JAVAJARDIR instead of JAVASHAREDIR/classes
- bsd.java.mk 2.0 compliant
- ECHO_CMD instead of ECHO
- Make JAVAJARDIR
- Echo doc files as they are installed
- Removed pkg-plist entirely (use PLIST_FILES)
- Changed the name of the installed JAR (no more version number in it as
it is the case for other Java libraries)
PR: 64171
Submitted by: Herve Quiroz <herve.quiroz@esil.univ-mrs.fr>
- Now using JAVAJARDIR instead of PREFIX/share/java/classes
- Now using PORTDOCS macro (to reduce pkg-plist size and fix the apidocs
deinstall issue with some JDKs)
- Now using PLIST_FILES macro (to reduce pkg-plist size)
- No longer installing JARs from 'lib' directory (but rather have them
declared
as run dependencies)
- No longer installing junk files (such as perl CVS commiter scripts)
- No longer installing class nor source files
- Now installing samples in EXAMPLESDIR
- Now installing README and such in DOCSDIR
- Will not install docs and samples when NOPORTDOCS is set
- Bumped PORTREVISION
PR: 64703
Submitted by: Herve Quiroz <herve.quiroz@esil.univ-mrs.fr>
. Use PLIST_FILES and get rid of pkg-plist.
. Switch MASTER_SITES to MASTER_SITE_SOURCEFORGE_EXTENDED
. Cleaned up the Makefile.
PR: 65298
Submitted by: Herve Quiroz <herve.quiroz@esil.univ-mrs.fr> (maintainer)
. Respect NOPORTDOCS [1]
. Install documentation in DOCSDIR [1]
. Use PORTDOCS and PLIST_FILES so that pkg-plist is no longer required. [1]
. Use JAVAJARDIR [1]
. More informative install messages [1]
. SIZEify [1]
. More informative message regarding fetching the distfile.
PR: 65215
Submitted by: Herve Quiroz <herve.quiroz@esil.univ-mrs.fr>
for older versions of XEmacs; many other minor bugfixes and improvements.
See lisp/ChangeLog for details.
Changes to the port involve respecting ANT_HOME, and, from the PR:
One conceivably controversial thing I added was a
second symlink from %%EMACS_VERSION_SITE_LISP%%/java to
$PREFIX/share/java/jde.
Otherwise jde cannot find the BeanShell jar files.
PR: ports/64388
Submitted by: David Bremner <bremner@unb.ca> (maintainer)