public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Mark Wright" <gienah@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-java/sbt/
Date: Sat,  5 Sep 2015 12:08:44 +0000 (UTC)	[thread overview]
Message-ID: <1441454888.59a0d07ac6423dc541e3e0e0b9275a96b368cbf7.gienah@gentoo> (raw)

commit:     59a0d07ac6423dc541e3e0e0b9275a96b368cbf7
Author:     Mark Wright <gienah <AT> gentoo <DOT> org>
AuthorDate: Sat Sep  5 12:08:08 2015 +0000
Commit:     Mark Wright <gienah <AT> gentoo <DOT> org>
CommitDate: Sat Sep  5 12:08:08 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=59a0d07a

dev-java/sbt: Add sbt-0.13.8-r1 that builds with jdk 1.7

Try to fix: Bug 558142 - =dev-java/sbt-0.13.8: fails to compile
thanks to Patrice Clement (monsieurp) for reporting.
Fix Bug 558848 - dev-java/sbt-0.13.8 : java.lang.NoClassDefFoundError:
Could not initialize class scala.tools.nsc.Main$
Thanks to Toralf Forster for reporting.

Package-Manager: portage-2.2.20.1

 dev-java/sbt/sbt-0.13.8-r1.ebuild | 151 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 151 insertions(+)

diff --git a/dev-java/sbt/sbt-0.13.8-r1.ebuild b/dev-java/sbt/sbt-0.13.8-r1.ebuild
new file mode 100644
index 0000000..3c3360f
--- /dev/null
+++ b/dev-java/sbt/sbt-0.13.8-r1.ebuild
@@ -0,0 +1,151 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+
+# repoman gives LIVEVCS.unmasked even with EGIT_COMMIT, so create snapshot
+inherit eutils java-pkg-2 # git-r3
+
+L_PN="sbt-launch"
+L_P="${L_PN}-${PV}"
+
+B_PV="0.13.7"
+BL_P="${L_PN}-${B_PV}"
+B_P="${PN}-${B_PV}"
+
+SV="2.10"
+
+# creating the sbt src snapshot:
+# git clone https://github.com/sbt/sbt.git sbt-0.13.8
+# cd sbt-0.13.8
+# git checkout v0.13.8
+# cd ..
+# tar --owner=portage --group=portage -cjf sbt-0.13.8-src.tar.bz2 sbt-0.13.8
+
+# creating the binary:
+# cd $WORDKIR
+# tar -cjf sbt-0.13.8-gentoo-binary.tar.bz2 sbt-0.13.8/sbt-launch/target/sbt-launch.jar
+
+DESCRIPTION="sbt is a build tool for Scala and Java projects that aims to do the basics well"
+HOMEPAGE="http://www.scala-sbt.org/"
+EGIT_COMMIT="v${PV}"
+EGIT_REPO_URI="https://github.com/sbt/sbt.git"
+SRC_URI="!binary?
+(
+	https://dev.gentoo.org/~gienah/snapshots/${P}-src.tar.bz2
+	https://dev.gentoo.org/~gienah/snapshots/${P}-ivy2-deps.tar.bz2
+	https://dev.gentoo.org/~gienah/snapshots/${P}-sbt-deps.tar.bz2
+	https://dev.gentoo.org/~gienah/snapshots/${P}-test-deps.tar.bz2
+	http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/${L_PN}/${PV}/${L_PN}.jar -> ${BL_P}.jar
+)
+binary? ( https://dev.gentoo.org/~gienah/files/dist/${P}-gentoo-binary.tar.bz2 )"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="binary"
+
+DEPEND="=virtual/jdk-1.7*
+	>=dev-lang/scala-2.10.4-r1:${SV}"
+RDEPEND=">=virtual/jre-1.7
+	dev-lang/scala:*"
+
+# test hangs or fails
+RESTRICT="test"
+
+src_unpack() {
+	# if ! use binary; then
+	# 	git-r3_src_unpack
+	# fi
+	# Unpack tar files only.
+	for f in ${A} ; do
+		[[ ${f} == *".tar."* ]] && unpack ${f}
+	done
+}
+
+java_prepare() {
+	if ! use binary; then
+		# Note: to bump sbt, some things to try are:
+		# 1. remove the https://dev.gentoo.org/~gienah/snapshots/${P}-ivy2-deps.tar.bz2
+		# https://dev.gentoo.org/~gienah/snapshots/${P}-sbt-deps.tar.bz2 and
+		# https://dev.gentoo.org/~gienah/snapshots/${P}-test-deps.tar.bz2 from SRC_URI
+		# 2. Comment the sbt publishLocal line in src_compile.
+		# 3. try:
+		# FEATURES='noclean -test' emerge -v dev-java/sbt
+		# It should fail in src_install since the sbt publishLocal is not done.
+		# Check if it downloads more stuff in
+		# src_compile to ${WORKDIR}/.ivy2 and ${WORKDIR}/.sbt.
+		# 4. If some of the downloads fail, it might be necessary to run the sbt compile
+		# again manually to obtain all the dependencies, if so (with jdk 1.6):
+		# cd to ${S}
+		# export EROOT=/
+		# export WORKDIR='/var/tmp/portage/dev-java/sbt-0.13.8/work'
+		# export SV="2.10"
+		# export B_P=sbt-0.13.7
+		# export PATH="/usr/share/scala-${SV}/bin:${WORKDIR}/${B_P}:${PATH}"
+		# sbt compile
+		# cd ${WORKDIR}
+		# find .ivy2 .sbt -uid 0 -exec chown portage:portage {} \;
+		# 5. cd ${WORKDIR}
+		# tar -cjf sbt-0.13.8-ivy2-deps.tar.bz2 .ivy2
+		# tar -cjf sbt-0.13.8-sbt-deps.tar.bz2 .sbt
+		# 6. It downloads more dependencies for src_test, however the presence of some of these may cause
+		# the src_compile to fail.  So download them seperately as root so we can identify the
+		# additional files.  Note: src_test creates some files in ${WORKDIR}/.m2 which are can
+		# hopefully be ignored. As root:
+		# cd ${S}
+		# sbt test
+		# cd ${WORKDIR}
+		# find .ivy2 .sbt -uid 0 -print
+		# Then add those files to sbt-0.13.8-ivy2-test-deps.tar.bz2 except the files in the directories
+		# .ivy2/local
+		# .ivy2/cache/org.scala-sbt
+		# Something like:
+		# tar --owner=portage --group=portage -cjf sbt-0.13.8-test-deps.tar.bz2 <list of files as described above>
+		# 7. Undo the earlier temporary edits to the ebuild.
+
+		mkdir "${WORKDIR}/${B_P}" || die
+		cp -p "${DISTDIR}/${BL_P}.jar" "${WORKDIR}/${B_P}/${L_PN}.jar" || die
+		cat <<- EOF > "${WORKDIR}/${B_P}/sbt"
+			#!/bin/sh
+			SBT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=512M"
+			java -Djavac.args="-encoding UTF-8" -Duser.home="${WORKDIR}" \${SBT_OPTS} -jar "${WORKDIR}/${B_P}/sbt-launch.jar" "\$@"
+		EOF
+		chmod u+x "${WORKDIR}/${B_P}/sbt" || die
+		local SCALA_PVR="$(java-config --query=PVR --package=scala-${SV})"
+		local SFV="${SCALA_PVR/-*}"
+		sed -e "s@scalaVersion := \"2.10.4\",@scalaVersion := \"${SFV}\",\n  scalaHome := Some(file(\"/usr/share/scala-${SV}\")),@" \
+			-i "${S}/build.sbt" || die
+	fi
+}
+
+src_compile() {
+	if ! use binary; then
+		export PATH="${EROOT}usr/share/scala-${SV}/bin:${WORKDIR}/${B_P}:${PATH}"
+		einfo "=== sbt compile ..."
+		"${WORKDIR}/${B_P}/sbt" -Dsbt.log.noformat=true compile || die
+		einfo "=== sbt publishLocal ..."
+		cat <<- EOF | "${WORKDIR}/${B_P}/sbt" -Dsbt.log.noformat=true || die
+			set every javaVersionPrefix in javaVersionCheck := Some("1.7")
+			publishLocal
+		EOF
+	fi
+}
+
+src_test() {
+	if ! use binary; then
+		export PATH="${EROOT}usr/share/scala-${SV}/bin:${WORKDIR}/${B_P}:${PATH}"
+		"${WORKDIR}/${B_P}/sbt" -Dsbt.log.noformat=true test || die
+	fi
+}
+
+src_install() {
+	if ! use binary; then
+		pushd sbt-launch/target || die
+		mv ${L_P}.jar ${L_PN}.jar || die
+		popd
+	fi
+	java-pkg_dojar sbt-launch/target/${L_PN}.jar
+	java-pkg_dolauncher sbt --main xsbt.boot.Boot --java_args "-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=512M"
+}


             reply	other threads:[~2015-09-05 12:08 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-05 12:08 Mark Wright [this message]
  -- strict thread matches above, loose matches on Subject: below --
2016-02-06  9:30 [gentoo-commits] repo/gentoo:master commit in: dev-java/sbt/ Mark Wright
2016-02-06 10:11 Mark Wright
2016-02-09 12:17 Mark Wright
2016-02-13  0:06 Mark Wright
2016-02-23 13:45 Mark Wright
2016-12-28 21:54 Mark Wright
2017-11-05 13:56 James Le Cuirot
2018-06-13 21:18 Aaron Bauman
2018-06-25 23:20 Thomas Deutschmann
2018-06-26  1:28 Aaron Bauman
2018-11-01 21:27 Patrice Clement
2020-01-14 12:15 Mark Wright
2021-12-25 13:21 Benda XU
2022-06-08  8:12 Florian Schmaus
2022-06-09  6:45 Sam James
2022-06-23  5:49 Sam James
2022-06-26  8:46 Agostino Sarubbo
2022-08-05  8:17 Arthur Zamarin
2022-10-15 23:26 Sam James
2024-05-09 10:52 Florian Schmaus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1441454888.59a0d07ac6423dc541e3e0e0b9275a96b368cbf7.gienah@gentoo \
    --to=gienah@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox