blob: 53fbba19c17e6db8e400a9d304a33f906a1d65ba (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="8"
# repoman gives LIVEVCS.unmasked even with EGIT_COMMIT, so create snapshot
inherit java-pkg-2 git-r3
L_PN="sbt-launch"
L_P="${L_PN}-${PV}"
SV="2.12"
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://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tgz -> ${P}.tar.gz
)"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="+binary"
DEPEND=">=virtual/jdk-1.8
>=dev-lang/scala-2.12.2:${SV}"
RDEPEND=">=virtual/jre-1.8
>=dev-lang/scala-2.12.2:${SV}"
# test hangs or fails
RESTRICT="test"
JAVA_GENTOO_CLASSPATH="scala-${SV}"
src_unpack() {
if use binary; then
#for f in ${A} ; do
# [[ ${f} == *".tar."* ]] && unpack ${f}
#done
default
mv "${WORKDIR}/sbt" "${S}" || die
else
git-r3_src_unpack
fi
}
src_prepare() {
default
if use binary; then
default
java-pkg_init_paths_
else
S="${WORKDIR}/${P}"
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 -Xmx1536M -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 -Xmx1536M -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
sed -e "s@scalaVersion := scala210,@scalaVersion := scala${SV/./},\n scalaHome := Some(file(\"${EROOT}usr/share/scala-${SV}\")),@" \
-i "${S}/build.sbt" || 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
:;
else
export PATH="${EROOT}usr/share/scala-${SV}/bin:${WORKDIR}/${L_P}:${PATH}"
einfo "=== sbt compile ..."
"${WORKDIR}/${L_P}/sbt" -Dsbt.log.noformat=true compile || die
einfo "=== sbt publishLocal with jdk $(java-pkg_get-vm-version) ..."
cat <<- EOF | "${WORKDIR}/${L_P}/sbt" -Dsbt.log.noformat=true || die
set every javaVersionPrefix in javaVersionCheck := Some("$(java-pkg_get-vm-version)")
publishLocal
EOF
fi
}
src_test() {
if ! use binary; then
export PATH="${EROOT}usr/share/scala-${SV}/bin:${S}:${PATH}"
"${S}/${P}" -Dsbt.log.noformat=true test || die
fi
}
src_install() {
if use binary; then
local dest="${JAVA_PKG_SHAREPATH}"
rm -v bin/sbt.bat || die
sed -i -e 's#bin/sbt-launch.jar#lib/sbt-launch.jar#g;' \
bin/sbt || die
insinto "${dest}/lib"
doins bin/* || die
insinto "${dest}"
doins -r conf || die
fperms 0755 "${dest}/lib/sbt" || die
dosym "${dest}/lib/sbt" /usr/bin/sbt || die
java-pkg_regjar ${D}/${dest}/lib/*.jar
else
# 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}"
fi
}
|