diff options
author | Volkmar W. Pogatzki <gentoo@pogatzki.net> | 2022-06-08 07:10:50 +0200 |
---|---|---|
committer | Florian Schmaus <flow@gentoo.org> | 2022-06-08 10:12:12 +0200 |
commit | 57b73b8034e374fe7b963ff34086c1b6d327008c (patch) | |
tree | c177914f2e5006bc6d7e87cfad2b3e8433784b95 /dev-java | |
parent | dev-cpp/highway: version bump to 0.17.0 (diff) | |
download | gentoo-57b73b8034e374fe7b963ff34086c1b6d327008c.tar.gz gentoo-57b73b8034e374fe7b963ff34086c1b6d327008c.tar.bz2 gentoo-57b73b8034e374fe7b963ff34086c1b6d327008c.zip |
dev-java/sbt: EAPI 8, restrict to jdk:1.8
Closes: https://bugs.gentoo.org/831297
Signed-off-by: Volkmar W. Pogatzki <gentoo@pogatzki.net>
Closes: https://github.com/gentoo/gentoo/pull/25802
Signed-off-by: Florian Schmaus <flow@gentoo.org>
Diffstat (limited to 'dev-java')
-rw-r--r-- | dev-java/sbt/sbt-0.13.18-r1.ebuild | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/dev-java/sbt/sbt-0.13.18-r1.ebuild b/dev-java/sbt/sbt-0.13.18-r1.ebuild new file mode 100644 index 000000000000..13fbc7b910f9 --- /dev/null +++ b/dev-java/sbt/sbt-0.13.18-r1.ebuild @@ -0,0 +1,147 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit java-pkg-2 + +L_PN="sbt-launch" +L_P="${L_PN}-${PV}" + +DESCRIPTION="sbt is a build tool for Scala and Java projects that aims to do the basics well" +HOMEPAGE="https://www.scala-sbt.org/" +EGIT_COMMIT="v${PV}" +EGIT_REPO_URI="https://github.com/sbt/sbt.git" +SRC_URI=" + !binary? ( + https://github.com/sbt/sbt/archive/v${PV}.tar.gz -> ${P}.tar.gz + https://dev.gentoo.org/~gienah/snapshots/${P}-ivy2-deps.tar.xz + https://dev.gentoo.org/~gienah/snapshots/${P}-sbt-deps.tar.xz + https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/${L_PN}/${PV}/${L_PN}.jar -> ${L_P}.jar + ) + binary? ( + https://dev.gentoo.org/~gienah/files/dist/${P}-gentoo-binary.tar.xz + )" +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="binary" + +# Restrict to jdk:1.8 +# Missing dependency 'object java.lang.Object in compiler mirror', bug #831297 +DEPEND=" + virtual/jdk:1.8 +" + +RDEPEND=" + >=virtual/jre-1.8:* +" + +# test hangs or fails +RESTRICT="test" + +# Note: to bump sbt, some things to try are: +# 1. remove the https://dev.gentoo.org/~gienah/snapshots/${P}-ivy2-deps.tar.xz +# https://dev.gentoo.org/~gienah/snapshots/${P}-sbt-deps.tar.xz and +# binary? ( https://dev.gentoo.org/~gienah/files/dist/${P}-gentoo-binary.tar.xz ) +# from SRC_URI +# 2. Comment the sbt publishLocal line in src_compile. +# 3. try: +# FEATURES='noclean -test' emerge -v -1 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: +# cd to ${S} +# export EROOT=/ +# export WORKDIR='/var/tmp/portage/dev-java/${P}/work' +# export L_P=${P} +# export PATH="${WORKDIR}/${L_P}:${PATH}" +# sbt compile +# cd ${WORKDIR} +# find .ivy2 .sbt -uid 0 -exec chown portage:portage {} \; +# 5. cd ${WORKDIR} +# XZ_OPT=-9 tar --owner=portage --group=portage \ +# -cJf /usr/portage/distfiles/${P}-ivy2-deps.tar.xz .ivy2/cache +# XZ_OPT=-9 tar --owner=portage --group=portage \ +# -cJf /usr/portage/distfiles/${P}-sbt-deps.tar.xz .sbt +# Uncomment the sbt publishLocal line in src_compile. +# 6. It *might* download 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. As root: +# cd ${S} +# ${S}/${P} test +# cd ${WORKDIR} +# XZ_OPT=-9 tar --owner=portage --group=portage \ +# -cJf /usr/portage/distfiles/${P}-test-deps.tar.xz \ +# $(find .ivy2/cache .sbt -uid 0 -type f -print) +# Note: It might not download anything in src_test, in which case +# ${P}-test-deps.tar.xz is not required. +# 7. Create the binary +# cd $WORDKIR +# XZ_OPT=-9 tar --owner=portage --group=portage \ +# -cJf /usr/portage/distfiles/${P}-gentoo-binary.tar.xz ${P} .ivy2/local +# 9. Undo the earlier temporary edits to the ebuild. + +src_unpack() { + # Unpack tar files only. + for f in ${A} ; do + [[ ${f} == *".tar."* ]] && unpack ${f} + done +} + +src_prepare() { + default + if ! use binary; then + mkdir "${WORKDIR}/${L_P}" || die + cp -p "${DISTDIR}/${L_P}.jar" "${WORKDIR}/${L_P}/${L_PN}.jar" || die + cat <<- EOF > "${WORKDIR}/${L_P}/sbt" + #!/bin/sh + SBT_OPTS="-Xms512M -Xmx3072M -Xss1M -XX:+CMSClassUnloadingEnabled" + java -Djavac.args="-encoding UTF-8" -Duser.home="${WORKDIR}" \${SBT_OPTS} -jar "${WORKDIR}/${L_P}/sbt-launch.jar" "\$@" + EOF + cat <<- EOF > "${S}/${P}" + #!/bin/sh + SBT_OPTS="-Xms512M -Xmx3072M -Xss1M -XX:+CMSClassUnloadingEnabled" + java -Djavac.args="-encoding UTF-8" -Duser.home="${WORKDIR}" \${SBT_OPTS} -jar "${S}/launch/target/sbt-launch.jar" "\$@" + EOF + chmod u+x "${WORKDIR}/${L_P}/sbt" "${S}/${P}" || die + + # suppress this warning in build.log: + # [warn] Credentials file /var/tmp/portage/dev-java/${P}/work/.bintray/.credentials does not exist + mkdir -p "${WORKDIR}/.bintray" || die + cat <<- EOF > "${WORKDIR}/.bintray/.credentials" + realm = Bintray API Realm + host = api.bintray.com + user = + password = + EOF + fi +} + +src_compile() { + if ! use binary; then + einfo "=== sbt compile ..." + local vm_version="$(java-config -g PROVIDES_VERSION)" + "${WORKDIR}/${L_P}/sbt" -Dsbt.log.noformat=true compile || die + einfo "=== sbt publishLocal with jdk ${vm_version} ..." + cat <<- EOF | "${WORKDIR}/${L_P}/sbt" -Dsbt.log.noformat=true || die + set every javaVersionPrefix in javaVersionCheck := Some("${vm_version}") + publishLocal + EOF + fi +} + +src_test() { + "${S}/${P}" -Dsbt.log.noformat=true test || die +} + +src_install() { + # Place sbt-launch.jar at the end of the CLASSPATH + java-pkg_dojar $(find "${WORKDIR}"/.ivy2/local -name \*.jar -print | grep -v sbt-launch.jar) \ + $(find "${WORKDIR}"/.ivy2/local -name sbt-launch.jar -print) + local ja="-Dsbt.version=${PV} -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled" + java-pkg_dolauncher sbt --jar sbt-launch.jar --java_args "${ja}" +} |