remove support for them from bsd.java.mk. As Jikes is not available in Java 1.5
or higher, remove it from bsd.java.mk too (suggested by hq@) and from the ports
which used it (only occurences were USE_JIKES=no). Support for the Blackdown VM
is also removed, as it is not available in Java 1.5 and higher.
Also remove the mapping from Java 1.1-1.4 to Java 1.5+ in bsd.java.mk to detect
old, broken ports; therefore bump the minimal value of JAVA_VERSION to 1.5.
While here, replace static values of JAVA_VERSION in files/*.in by
%%JAVA_VERSION%% .
PR: ports/158969
Submitted by: rene
Tested on: pointyhat-west -exp
targets.
* Use /rescue/sh for index builds instead of /bin/sh, when it exists.
The former is statically linked and faster to execute, which becomes
significant when executing it tens of thousands of times. This
trick can be used with other recursive targets by passing in
__MAKE_SHELL.
* Get rid of make variable assignments that use != command invocations
in the critical path, using several methods:
- rewriting logic to use shell or make builtins instead of external command executions
- macroizing commands and executing them in the targets where they
are needed instead of with every invocation of make
- precomputing the results of invariant commands in
bsd.port.subdir.mk and passing them in explicitly to child makes,
and using this to avoid recalculation in all the children. NB: the
commands are still run one per top-level subdirectory but this
does not currently seem to be a major issue. They could be moved
further up into the top-level Makefile at the cost of some
cleanliness.
- Committers are strongly discouraged from adding further "bare" !=
assignments to the ports tree, even in their own ports. One of
the above strategies should be used to avoid future bloat.
* Rewrite the core 'describe' target to work entirely within a single
shell process using only builtin commands. The old version is
retained as a backup for use on systems older than 603104, which
does not have the make :u modifier. This cuts down the number of
processes executed during the course of a 'make index' by an order
of magnitude, and we are essentially now amortized to the minimum of
a single make + sh instance per port, plus whatever commands the
port makefile itself executes (which are usually unnecessary and
bogus).
* Less validation of the WWW: target is performed; this can become
policed at a port level by portlint. Specifically we look at the
second word of the first line beginning with "WWW:" in pkg-descr,
and append "http://" to it unless it already begins with "http://",
"https://" or "ftp://". Thanks to dougb for the idea of how to
extract WWW: using shell builtins.
* Use the "true" shell builtin instead of echo > /dev/null for a
measurable decrease in CPU use.
* Add a note about dubious escaping strategy in bsd.port.subdir.mk
* Minor change in output of 'make describe': it no longer strips
trailing CR characters from pkg-descr files with MSDOS CR/LF
termination. Instead the makeindex perl script that post-processes
make describe into the INDEX is tweaked to strip on input.
The bottom line is that on my test hardware INDEX builds are now
faster by more than a factor of 2 and with a reduction in system time
by a factor of 4-8 depending on configuration.
To ease upgrade, bsd.java.mk now substitutes JAVA_VERSION values of 1.1+ and
1.2+ as 1.3+.
The related JDK ports that have been marked as deprecated and scheduled for
removal some time ago are now safe to be removed.
The patch has been tested successfully on the cluster.
PR: 116724
[1] Remove DEPENDS
[2] Add a new pkg-plist keyword @stopdaemon
[3] Provide rc.subr script suffix as RC_SUBR_SUFFIX
[4] Add USE_CDRTOOLS to abstract dependency on sysutils/cdrtool[-cjk]
[5] Add DOS2UNIX_REGEX, allowing to pass a filename regex to CRLF replacement
routine
[6] Support partially translated manpages in MAN* variables
[7] Fix USE_LDCONFIG on ports with @cwd in pkg-plist
[8] Remove support for XFree86 3.X
[9] Add user settable WITH_DEBUG flag that turns on -g in CFLAGS and resets
STRIP
[9] Fix `make install' to refuse overwriting of older version of the port
[10] New category ports-mgmt
[11] New category gnustep
[12] Removed category picobsd
bsd.java.mk
[13] Remove deprecated syntax
bsd.tcl.mk
[14] Provide TCL_VER when USE_TK[_BUILD] is defined. Fixes cad/netgen
ports/Makefile
[15] Make csup default `make update' method on FreeBSD 6.2 and up
PR: ports/99742 [1], ports/93373 [2], ports/100915 [3],
ports/105161 [4], ports/106029 [5], ports/106252 [6],
ports/106235 [7], ports/100939 [9], ports/97507 [10],
ports/103931 [11], ports/106921 [12], ports/104136 [13],
ports/105215 [15]
Submitted by: sem [1] [2], Matthias Andree <matthias.andree@gmx.de> [3],
nork [4], pav [5] [7] [14], Nick Barkas <snb@threerings.net> [6],
flz [8], gabor [9], shaun [10], erwin [12], hq [13],
Gurkan Sengun <gurkan@linuks.mine.nu> [11]
. Make Diablo Caffe 1.5.0 the default JDK for all the versions/architecture
that its available for.
. Make the standard jdk15 the default on FreeBSD 4.x as this should now be
stable with the release of patchset 3.
Reviewed by: hq
of Jikes not does support all of Java 1.5 extensions.
Porters may still enforce the use of Jikes with Java 1.5 by explicitely
setting:
USE_JIKES= yes
This fix is a temporary one and is bound to be removed whenever Java 1.5 gets
fully supported in Jikes.
Reported by: lawrance
Approved by: glewis (co-maintainer)
NOTE: these are only added if the related variables are defined by the port.
This should ease the configuration of launcher shell scripts used for Java
application ports, when they are using javavmwrapper to invoke a JVM. From now,
a simple launcher that suits most of the Java application ports can be writen
using the following scheme:
#!/bin/sh
JAVA_VERSION="%%JAVA_VERSION%%" \
"%%LOCALBASE%%/bin/java" -jar "%%JAVAJARDIR%%/myport.jar" "$@"
As mentioned above, this is of course only correct provided that the port
defines JAVA_VERSION.
Approved by: glewis (co-maintainer)
conflicts with the default values for JAVA_BUILD and JAVA_RUN. Those variables
are indeed set a default value when none of the them (together with
JAVA_EXTRACT) is defined. Having USE_ANT set a value for JAVA_BUILD will cause
JAVA_RUN not to be set its default value.
This has RUN_DEPENDS not correctly set (missing the JDK entry) on many ports
that use USE_ANT.
This patch addresses this issue by moving the statements dealing with default
values to have them executed before USE_ANT handling.
Approved by: glewis (co-maintainer)
this patch, for instance:
$ cd /usr/port/devel/apache-ant
$ make JAVA_HOME=toto
apache-ant-1.6.2: Environement error: "JAVA_HOME" should not be defined.
*** Error code 1
PR: 70914
Reported by: Rong-En Fan <rafan@infor.org>
Approved by: glewis (co-maintainer)
building the port but not added to BUILD_DEPENDS)
- Use ${VAR:U} to test YES/NO values a more simple way
- Refactor: Jikes now has its own sub-stages (error-handling and support)
together in Stage 6
- New variable to be used by porters (and used internally by bsd.java.mk),
HAVE_JIKES
Approved by: glewis (mentor)
performing all of the recent changes.
. Add to the header comment to document JAVASHAREDIR, JAVAJARDIR and
JAVALIBDIR.
. Add a definition for JAVALIBDIR. This is where other ports have
installed their JAR files (a port should install in JAVAJARDIR but
look for other JARs in JAVALIBDIR).
Java-based port with ant, using MAKE_ENV, MAKE_ARGS and ALL_TARGET but
using ant instead of make. When a port is built this way it also
causes ant to respect the JDK selected by bsd.java.mk rather than
using the JDK that ant was build with.
Most ports should just be able to do
USE_ANT= yes
You may also need to set ALL_TARGET if your port doesn't use the
default ant target.
See the comments on USE_ANT at the head of bsd.java.mk for more
information.
PR: 59997
Reviewed by: hq (who spotted a bug and provided the comments
documenting USE_ANT).
got spammed in the update to bsd.java.mk 2.0. They replace .BEGIN blocks
with check-makevars:: targets.
PR: 68516
Submitted by: Herve Quiroz <herve.quiroz@esil.univ-mrs.fr>
PLIST_SUB.
. Define java utility variables such as JAVA, JAVAC, JAVAH, APPLETVIEWER,
etc. conditionally (?=) rather than explicitly (=). This is in line with
both bsd.port.mk and the earlier version of bsd.java.mk.
Reviewed by: Herve Quiroz <herve.quiroz@esil.univ-mrs.fr>
. Added '-bootclasspath ${JAVA_CLASSES}' to the command-line for JAVAC when
jikes is used as a substitute for javac.
PR: 66349
Submitted by: Herve Quiroz <herve.quiroz@esil.univ-mrs.fr>
line with bsd.port.mk and prevents errors when ${OSVERSION} is (somehow)
undefined.
Problem report from: Thomas Abthorpe <thomas@stthomas.stthomasanglican.org>
. Make the USE_JIKES setting to actually work.
. Simplified backwards compatibility with the old bsd.java.mk.
. Allowed java dependency selection with JAVA_PREFERRED_PORTS.
. More error checking on variable settings.
. Allowed USE_JAVA=yes to work without specifying a version.
. Expanded the meta-info for the individual ports so the full version
is now available, among other things.
Submitted by: Herve Quiroz <herve.quiroz@esil.univ-mrs.fr>