commit: da25fe1aa0acbb7f1c5a2eabc47cd34236fd03d5 Author: Andrew John Hughes <gnu_andrew <AT> member <DOT> fsf <DOT> org> AuthorDate: Wed Jul 8 19:19:23 2015 +0000 Commit: Andrew John Hughes <gnu_andrew <AT> member <DOT> fsf <DOT> org> CommitDate: Wed Jul 8 19:19:23 2015 +0000 URL: https://gitweb.gentoo.org/proj/java.git/commit/?id=da25fe1a
Sync JamVM build with changes to GNU Classpath and CACAO ebuilds. Package-Manager: portage-2.2.17 Manifest-Sign-Key: 35964222 dev-java/jamvm/ChangeLog | 8 ++- dev-java/jamvm/Manifest | 23 ++----- dev-java/jamvm/files/jamvm.env | 11 +++- dev-java/jamvm/files/javac.in | 57 +++++++++++++++++ dev-java/jamvm/jamvm-2.0.0-r1.ebuild | 120 +++++++++++++++++++++++++++++++++++ dev-java/jamvm/jamvm-2.0.0.ebuild | 88 ------------------------- 6 files changed, 199 insertions(+), 108 deletions(-) diff --git a/dev-java/jamvm/ChangeLog b/dev-java/jamvm/ChangeLog index 726914a..51118ed 100644 --- a/dev-java/jamvm/ChangeLog +++ b/dev-java/jamvm/ChangeLog @@ -1,7 +1,13 @@ # ChangeLog for dev-java/jamvm -# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 +# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2 # $Header: /var/cvsroot/gentoo-x86/dev-java/jamvm/ChangeLog,v 1.53 2014/08/10 20:16:11 slyfox Exp $ +*jamvm-2.0.0-r1 (08 Jul 2015) + + 08 Jul 2015; Andrew John Hughes <gnu_and...@member.fsf.org> +files/javac.in, + +jamvm-2.0.0-r1.ebuild, -jamvm-2.0.0.ebuild, files/jamvm.env: + Sync JamVM build with changes to GNU Classpath and CACAO ebuilds. + 10 Aug 2014; Sergei Trofimovich <sly...@gentoo.org> jamvm-1.5.4-r2.ebuild: QA: drop trailing '.' from DESCRIPTION diff --git a/dev-java/jamvm/Manifest b/dev-java/jamvm/Manifest index 798b298..93f76ea 100644 --- a/dev-java/jamvm/Manifest +++ b/dev-java/jamvm/Manifest @@ -2,25 +2,16 @@ Hash: SHA256 AUX classes-location.patch 1276 SHA256 98ecad3eeb0623b3dc01155c9cbd9aacf31e5d5854b183a7be11b64bfdd838a6 SHA512 c399cb8ebce0556a778a1511fec43eeedc2e8d4b1ca732ebd201faf49d6a607baef914fb54e34f2c5b494ace6f5c072d296fb30c65038461e97a518c9e1924bd WHIRLPOOL 91d9c75a260f6f5943d1221bfba77032fc1ce1f8d85217ec4a80aa50b826f36816aa4fe0e1a2ae7cb27c171ec029d8ee3ad512a506c1d31e02276a02b1858e42 -AUX jamvm.env 320 SHA256 0bdb8b07a21509ff5650629546a0bfd1a0fe40e5c7b8e9a8d2a1c3797bfa9f04 SHA512 5924972c0f91eef7b7c04e33dba8458b495aed131c4a587dc19626d060f8d0c92ee2bba221fbc14ed9f965d954cc4d87ecaf6881b5a1052e34c9216b6516ef1f WHIRLPOOL 688aa1051d65839eeb3cd7fcc0b31b39803b71957dbcd7f9bf04a54c5777ccc7ce180888081ff2526ce749af5fc2a9dc61996f1b634bda50090015416d056d13 +AUX jamvm.env 557 SHA256 c8185ae5da1d7313874d74f7af9a9f43f24456916733e11ad8f2e5b37acb85d7 SHA512 cd2390afa41c5c82a6848b1f033936211675b1235a82b9af59a10588c5eeff6b07e35594811d3e913098319dccd342f36887c1318744cbc2cef2472c433b48cb WHIRLPOOL 706986f259343d12ca2007dcfd62ced48eca458d48324f855b038a9b26cac6855891bf57f89459adad590e8175f29f8ff471b7f57ad811c365ce1984510d2ced +AUX javac.in 1739 SHA256 3bb23cff0a6e5a7a820e19cce4b9b0f51a7b84ee9e0eeb048b463a5f3e996db0 SHA512 65170b747012e114b072cd28a688089cdf2f54ddd151ba0cea92241b9b75fd0c7c410bfa4186cf9d233af4328bf962e13e8838a0cc09a1fbf2c28d29b13e36cb WHIRLPOOL 2237edd6abffdfb762d178e611768396f0b93a38f8a70f83c986049b60e26bb7084e3a38b70ed29c09df739091cdbfbfdd688e5eccee6ca4ea4006c23cf2b7d8 DIST jamvm-2.0.0.tar.gz 741459 SHA256 76428e96df0ae9dd964c7a7c74c1e9a837e2f312c39e9a357fa8178f7eff80da SHA512 8ac27787ee94fa8fde962635d3c08d1dc1e5244c9d56bb693e73f3fd9b58e944ad3f7a0127afeed727d7c00d904a775d2c483157f5ac87e7eab6ecade1aad21d WHIRLPOOL 7e80be683fafb444cd417502b96089ce4f6879a049ca49e33691b4d5d6755814654ab4ed7626b666dd48f9d6101567b2a12de43b916055ea1d067c5d4df06443 -EBUILD jamvm-2.0.0.ebuild 2414 SHA256 a9e5b24e0fa1f6156057ac2f576535cc6a02de94b06e8e944bcddcd45182ef98 SHA512 f9bb605b61c01dfd1f1309899544761cb716a59b4de08ac49d254f788bb54099ed4e4a26b60ad28c339bd8a4f0f948f702dc0fccb6f361b50d97214f57e62e9d WHIRLPOOL 9ee1d455dfd0e8bc7bec726e339ee0471c11ceeff38f0d9cd16560972419fd00a6aa455c0b6ca2540f5d8ca26e3414490391c7ec4604db2e35988a4ea8a28db6 -MISC ChangeLog 7671 SHA256 cf7970a21433802bfc41c5c35cdc9134e55331e3cad40b0115bbd66341981e54 SHA512 abce934cce721b758e8bd2323be4936e73555b439e38128d68d8795096b8b5ed210ea9c409bad7ef3b44c14f901543e362d2e71a1eeac4737b29db74f47979c4 WHIRLPOOL 201e30191bbf5e69ca26c9c0c8defd44d5b32f07d0e886d510ae13b34b36d3cd9c1ba9e5ec0069171c8f91c437a8fd68b428148d7c67729afd5294c73e50e38b +EBUILD jamvm-2.0.0-r1.ebuild 3638 SHA256 eb50d4ffd77ba4530ec5db91b7781f94ca20f6578c0dd39723e33505c5553a5c SHA512 2725c9a8c881c15be5c7a4b9c66e55f0ecd81403b7755c5edaa42241552a0d40202212a771b004c100a7f18f00d44ac1cc6061300b5b1e44428c353bcb3a0eec WHIRLPOOL ebecc34e5569e707a3af7857cbbd1f7aacdeb05320c3f61a008047a0dd26286056a4657f7c8777d9191f8051bf0872eea070db83240ca763e50cd659d1a94f4e +MISC ChangeLog 7914 SHA256 4b8d70ebea77b97dbb49677123aa859e82db4c8c62d79c3c1bfc07eed966c457 SHA512 dda1f1208eef826f97750cd6394e454622093e9da5a3dee4943256a6ac61cd226fb3906858e01fe0ab19b8a495a6540c0229feaf5c353cfcccc8cbb3c21009d0 WHIRLPOOL 5a0da761b104c9cf717843a4ae8db72ba43f3d1ba1ef88b3e115ae9a71521908377dec0735012da05927ef715bcd0483ccf0649e889dcfa39cd4e45be8588e6f MISC metadata.xml 159 SHA256 a4ced33e98b00e3a3f725c4c40ef8e76c338db53389465ef871105fbe6e8cbbb SHA512 74dc9ada199a90543b8e1c168c7054f2e973fbfa2551e2b959d67501f2538e269cfb4b2f0905a88a1afa04c20b33961336310ba876f80d47c8e7615b2d7c830a WHIRLPOOL a0ac49efeca233ec4d8f63eb69c8e46e1d4ecbd926693c25b1b8c7415e4c565680936aec46f0c4197116fd7a19a3bb571beee493c18bdae1e5e978e3db84f17a -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 -iQIcBAEBCAAGBQJUeMygAAoJEDuWpXgki9wHFuQP/2X4m1uJPAuanOmtMFXFXwAq -uvoUaQcj2D8PbyQWzkmHO3SZjEq86xPwJD2mmAy62aTbkEyWzOQJnliGVYRNs4gr -PeVnnlZepvuSdqRU9dzJ+fjvZY0bH8XIt21iQk6jno2z+3yGgdMJpV59/XSBorO9 -mNNAP2FbMYR6zVO13ev3pVUawg/oELAa2olOYbCtIW1O/rTL5FF/Lz/SSyOdcqV3 -zwsKMHMnto8CDvxc5uMuC/LcmpNaZf+LPAlsI22IMrvO3iGs8okyheKVx2ab1aGC -FMxTmk9bJCMEMFU8TXul4PtZ/sni65m+o5PZb88Vfm0ZmUwweRVVwwmryH2INYIn -Gl7vugYUtlnN9UBcqDH4jO5qb6lOTPz7yBWw+Z8lGAJdb6z04qtdc1O1IQIhdmad -PQnUDlE2t6126bz+Nnv3l32gTwjNV63SymyNkYhFDtT4RN1aUgW0fRpzGC39TUGu -8QoiBheKBbG7FWkqiAY3/DAZMbOf7HTxuFHh23r5VNPkuHKY4F6OSMwt0PLSWI06 -9PWoel7TuZPNzlIdqFRDmpO/SHcRQlBEUFRwvRunMmnw+xdR3arPULnimtjEhrhr -LC04a4yMtC70eghxkElgfyuXHEf/2qabr6WnYxI9xl5J2WzeGpJsSL3bO5QR1XpL -2EdDXERmsPNmuIu4NIXP -=ZpoU +iF4EARYIAAYFAlWdd7cACgkQz9oPmzWWQiKk5wEApG/PTylRLGExVrBfAmOh0mMU +f/S5VAdIjlr1FPtA0XUA/3hK6D80/enHZFOIMAZo6fzwHx9NeIS8DTFOyiBMLT0D +=oUeK -----END PGP SIGNATURE----- diff --git a/dev-java/jamvm/files/jamvm.env b/dev-java/jamvm/files/jamvm.env index 85c551e..ba330e0 100644 --- a/dev-java/jamvm/files/jamvm.env +++ b/dev-java/jamvm/files/jamvm.env @@ -1,6 +1,11 @@ -VERSION="JamVM JRE @PV@" -JAVA_HOME="/usr/@LIBDIR@/@PN@" -BOOTCLASSPATH="${JAVA_HOME}/classes.zip:${JAVA_HOME}/lib/rt.jar" +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +VERSION="JamVM JDK @PV@" +JAVA_HOME="@GENTOO_PORTAGE_EPREFIX@/usr/@LIBDIR@/@PN@-jdk" +JDK_HOME="@GENTOO_PORTAGE_EPREFIX@/usr/@LIBDIR@/@PN@-jdk" +BOOTCLASSPATH="@GENTOO_PORTAGE_EPREFIX@/usr/@LIBDIR@/@PN@/classes.zip:${JAVA_HOME}/lib/rt.jar" JAVAC="${JAVA_HOME}/bin/javac" PATH="${JAVA_HOME}/bin" ROOTPATH="${JAVA_HOME}/bin" diff --git a/dev-java/jamvm/files/javac.in b/dev-java/jamvm/files/javac.in new file mode 100644 index 0000000..8eeda68 --- /dev/null +++ b/dev-java/jamvm/files/javac.in @@ -0,0 +1,57 @@ +#!/usr/bin/perl -w +use strict; +use constant NO_DUP_ARGS => qw(-source -target -d -encoding); +use constant STRIP_ARGS => qw(-Werror -implicit:none -J-Xbootclasspath/p:); + +my $ECJ_WARNINGS="-nowarn"; + +my ( @bcoption, @source15, @target15, @cp ); +push @bcoption, '-bootclasspath', '@RT_JAR@:@TOOLS_JAR@' + unless grep {$_ eq '-bootclasspath'} @ARGV; +push @source15, '-source', '1.5' + unless grep {$_ eq '-source'} @ARGV; +push @target15, '-target', '1.5' + unless grep {$_ eq '-target'} @ARGV; +push @cp, '-cp', '.' + unless grep {$_ =~ '\-c(p|lasspath)'} @ARGV or $ENV{CLASSPATH}; +my @ecj_parms = ($ECJ_WARNINGS, @bcoption, @source15, @target15, @cp); + +# Work around ecj's inability to handle duplicate command-line +# options and unknown javac options. +sub gen_ecj_opts +{ + my @new_args = @{$_[0]}; + + for my $opt (NO_DUP_ARGS) + { + my @indices = reverse grep {$new_args[$_] eq $opt} 0..$#new_args; + if (@indices > 1) { + shift @indices; # keep last instance only + splice @new_args, $_, 2 for @indices; + } + } + + for my $opt (STRIP_ARGS) + { + my @indices = reverse grep {$new_args[$_] eq $opt} 0..$#new_args; + splice @new_args, $_, 1 for @indices; + } + + return \@new_args; +} + +sub split_vm_args +{ + my @new_args = @{$_[0]}; + + my @vm_args = map { substr $_, 2 } grep $_ =~ /^-J/, @new_args; + my @javac_args = grep $_ !~ /^-J/, @new_args; + + return (\@vm_args, \@javac_args); +} + +my ($vm_args, $javac_args) = split_vm_args (gen_ecj_opts( \@ARGV )); +my @CLASSPATH = ('@ECJ_JAR@'); +push @CLASSPATH, split /:/, $ENV{"CLASSPATH"} if exists $ENV{"CLASSPATH"}; +$ENV{"CLASSPATH"} = join ':', @CLASSPATH; +exec '@JAVA@', @$vm_args, 'org.eclipse.jdt.internal.compiler.batch.Main', @ecj_parms, @$javac_args; diff --git a/dev-java/jamvm/jamvm-2.0.0-r1.ebuild b/dev-java/jamvm/jamvm-2.0.0-r1.ebuild new file mode 100644 index 0000000..0d8d443 --- /dev/null +++ b/dev-java/jamvm/jamvm-2.0.0-r1.ebuild @@ -0,0 +1,120 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-java/jamvm/jamvm-1.5.4-r2.ebuild,v 1.5 2014/08/10 20:16:11 slyfox Exp $ + +EAPI=5 + +inherit eutils flag-o-matic multilib java-vm-2 autotools + +DESCRIPTION="An extremely small and specification-compliant virtual machine" +HOMEPAGE="http://jamvm.sourceforge.net/" +SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64" +IUSE="debug libffi" + +DEPEND="dev-java/gnu-classpath:0 + || ( dev-java/eclipse-ecj:* dev-java/ecj-gcj:* ) + libffi? ( virtual/libffi ) + amd64? ( virtual/libffi )" +RDEPEND="${DEPEND}" + +src_prepare() { + # without this patch, classes.zip is not found at runtime + epatch "${FILESDIR}/classes-location.patch" + eautoreconf + + # These come precompiled. + # configure script uses detects the compiler + # from PATH. I guess we should compile this from source. + # Then just make sure not to hit + # https://bugs.gentoo.org/show_bug.cgi?id=163801 + # + #rm -v lib/classes.zip || die +} + +src_configure() { + filter-flags "-fomit-frame-pointer" + + if use amd64 || use libffi; then + append-cflags "$(pkg-config --cflags-only-I libffi)" + fi + + local fficonf="--enable-ffi" + use !amd64 && fficonf="$(use_enable libffi ffi)" + + econf ${fficonf} \ + --disable-dependency-tracking \ + $(use_enable debug trace) \ + --libdir="${EPREFIX}"/usr/$(get_libdir)/${PN} \ + --includedir="${EPREFIX}"/usr/include/${PN} \ + --with-classpath-install-dir=/usr +} + +create_launcher() { + local script="${D}/${INSTALL_DIR}/bin/${1}" + cat > "${script}" <<-EOF + #!/bin/sh + exec /usr/bin/jamvm \ + -Xbootclasspath/p:/usr/share/classpath/tools.zip" \ + gnu.classpath.tools.${1}.Main "\$@" + EOF + chmod +x "${script}" +} + +src_install() { + local libdir=$(get_libdir) + local CLASSPATH_DIR=/usr/libexec/gnu-classpath + local JDK_DIR=/usr/${libdir}/${PN}-jdk + + emake DESTDIR="${D}" install + + dodoc ACKNOWLEDGEMENTS AUTHORS ChangeLog NEWS README + + set_java_env "${FILESDIR}/${PN}.env" + + dodir ${JDK_DIR}/bin + dosym /usr/bin/jamvm ${JDK_DIR}/bin/java + for files in ${CLASSPATH_DIR}/g*; do + if [ $files = "${CLASSPATH_DIR}/bin/gjdoc" ] ; then + dosym $files ${JDK_DIR}/bin/javadoc || die + else + dosym $files \ + ${JDK_DIR}/bin/$(echo $files|sed "s#$(dirname $files)/g##") || die + fi + done + + dodir ${JDK_DIR}/jre/lib + dosym /usr/share/classpath/glibj.zip ${JDK_DIR}/jre/lib/rt.jar + dodir ${JDK_DIR}/lib + dosym /usr/share/classpath/tools.zip ${JDK_DIR}/lib/tools.jar + + local ecj_jar="$(readlink "${EPREFIX}"/usr/share/eclipse-ecj/ecj.jar)" + exeinto ${JDK_DIR}/bin + cat "${FILESDIR}"/javac.in | sed -e "s#@JAVA@#/usr/bin/jamvm#" \ + -e "s#@ECJ_JAR@#${ecj_jar}#" \ + -e "s#@RT_JAR@#/usr/share/classpath/glibj.zip#" \ + -e "s#@TOOLS_JAR@#/usr/share/classpath/tools.zip#" \ + | newexe - javac + + local libarch="${ARCH}" + [ ${ARCH} == x86 ] && libarch="i386" + [ ${ARCH} == x86_64 ] && libarch="amd64" + dodir ${JDK_DIR}/jre/lib/${libarch}/client + dodir ${JDK_DIR}/jre/lib/${libarch}/server + dosym /usr/${libdir}/${PN}/libjvm.so ${JDK_DIR}/jre/lib/${libarch}/client/libjvm.so + dosym /usr/${libdir}/${PN}/libjvm.so ${JDK_DIR}/jre/lib/${libarch}/server/libjvm.so + dosym /usr/${libdir}/classpath/libjawt.so ${JDK_DIR}/jre/lib/${libarch}/libjawt.so + + # Can't use java-vm_set-pax-markings as doesn't work with symbolic links + # Ensure a PaX header is created. + local pax_markings="C" + # Usally disabeling MPROTECT is sufficent. + local pax_markings+="m" + # On x86 for heap sizes over 700MB disable SEGMEXEC and PAGEEXEC as well. + use x86 && pax_markings+="sp" + + pax-mark ${pax_markings} "${ED}"/usr/bin/jamvm +} diff --git a/dev-java/jamvm/jamvm-2.0.0.ebuild b/dev-java/jamvm/jamvm-2.0.0.ebuild deleted file mode 100644 index a391b2b..0000000 --- a/dev-java/jamvm/jamvm-2.0.0.ebuild +++ /dev/null @@ -1,88 +0,0 @@ -# Copyright 1999-2014 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-java/jamvm/jamvm-1.5.4-r2.ebuild,v 1.5 2014/08/10 20:16:11 slyfox Exp $ - -EAPI=4 - -inherit eutils flag-o-matic multilib java-vm-2 autotools - -DESCRIPTION="An extremely small and specification-compliant virtual machine" -HOMEPAGE="http://jamvm.sourceforge.net/" -SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64" -IUSE="debug libffi" - -CLASSPATH_SLOT=0.99 -DEPEND="dev-java/gnu-classpath:${CLASSPATH_SLOT} - libffi? ( virtual/libffi ) - amd64? ( virtual/libffi )" -RDEPEND="${DEPEND}" - -src_prepare() { - # without this patch, classes.zip is not found at runtime - epatch "${FILESDIR}/classes-location.patch" - eautoreconf - - # These come precompiled. - # configure script uses detects the compiler - # from PATH. I guess we should compile this from source. - # Then just make sure not to hit - # https://bugs.gentoo.org/show_bug.cgi?id=163801 - #rm -v lib/classes.zip || die -} - -CLASSPATH_DIR="/usr/gnu-classpath-${CLASSPATH_SLOT}" - -src_configure() { - # Keep libjvm.so out of /usr - # http://bugs.gentoo.org/show_bug.cgi?id=181896 - INSTALL_DIR="/usr/$(get_libdir)/${PN}" - - filter-flags "-fomit-frame-pointer" - - if use amd64 || use libffi; then - append-cflags "$(pkg-config --cflags-only-I libffi)" - fi - - local fficonf="--enable-ffi" - use !amd64 && fficonf="$(use_enable libffi ffi)" - - econf ${fficonf} \ - --disable-dependency-tracking \ - $(use_enable debug trace) \ - --prefix=${INSTALL_DIR} \ - --datadir=/usr/$(get_libdir) \ - --bindir=/usr/bin \ - --libdir=${INSTALL_DIR}/lib \ - --with-classpath-install-dir=${CLASSPATH_DIR} -} - -create_launcher() { - local script="${D}/${INSTALL_DIR}/bin/${1}" - cat > "${script}" <<-EOF - #!/bin/sh - exec /usr/bin/jamvm \ - -Xbootclasspath/p:"${CLASSPATH_DIR}/share/classpath/tools.zip" \ - gnu.classpath.tools.${1}.Main "\$@" - EOF - chmod +x "${script}" -} - -src_install() { - emake DESTDIR="${D}" install - - dodoc ACKNOWLEDGEMENTS AUTHORS ChangeLog NEWS README - - set_java_env "${FILESDIR}/${PN}.env" - - dosym /usr/bin/jamvm ${INSTALL_DIR}/bin/java - dosym ${CLASSPATH_DIR}/share/classpath/glibj.zip ${INSTALL_DIR}/jre/lib/rt.jar - dosym ${CLASSPATH_DIR}/share/classpath/tools.zip ${INSTALL_DIR}/lib/tools.jar - for file in ${CLASSPATH_DIR}/bin/*; do - base=$(basename ${file}) - create_launcher ${base#g} - done -}