[scala] * Sun Aug 15 2010 Geoff Reedy <geoff at programmer-monk.net> - 2.8.0-1 - Update to upstream 2.8.0 relea
Geoffrey Reedy
geoff at fedoraproject.org
Tue Aug 17 02:47:45 UTC 2010
commit 65f0d99fe3adac2c5177c597911c2cd00f87e7b2
Author: Geoff Reedy <geoff at programmer-monk.net>
Date: Mon Aug 16 20:47:32 2010 -0600
* Sun Aug 15 2010 Geoff Reedy <geoff at programmer-monk.net> - 2.8.0-1
- Update to upstream 2.8.0 release
scala-2.8.0-fix3716.patch | 12 ++++
scala-2.8.0-tooltemplate.patch | 74 ++++++++++++++++++++++++
scala-2.8.0-use_system_jline.patch | 28 +++++++++
scala.spec | 110 ++++++++++++++----------------------
sources | 4 +-
5 files changed, 158 insertions(+), 70 deletions(-)
---
diff --git a/scala-2.8.0-fix3716.patch b/scala-2.8.0-fix3716.patch
new file mode 100644
index 0000000..72f09c1
--- /dev/null
+++ b/scala-2.8.0-fix3716.patch
@@ -0,0 +1,12 @@
+diff -up scala-2.8.0.final-sources/src/msil/ch/epfl/lamp/compiler/msil/Type.java.fix3716 scala-2.8.0.final-sources/src/msil/ch/epfl/lamp/compiler/msil/Type.java
+--- scala-2.8.0.final-sources/src/msil/ch/epfl/lamp/compiler/msil/Type.java.fix3716 2010-07-30 16:22:36.170084940 -0600
++++ scala-2.8.0.final-sources/src/msil/ch/epfl/lamp/compiler/msil/Type.java 2010-07-30 16:22:42.745142175 -0600
+@@ -812,7 +812,7 @@ public abstract class Type extends Membe
+ if (k >= 0)
+ cname = cname.substring(k + 1);
+ return "[" + t.Assembly().GetName() + "]" + t +
+- "(" + cname + "#" + Integer.toHexString(t.##) + ")";
++ "(" + cname + "#" + Integer.toHexString(t.hashCode()) + ")";
+ }
+ private static String dumpType(Type t) {
+ StringBuffer str = new StringBuffer();
diff --git a/scala-2.8.0-tooltemplate.patch b/scala-2.8.0-tooltemplate.patch
new file mode 100644
index 0000000..81249f0
--- /dev/null
+++ b/scala-2.8.0-tooltemplate.patch
@@ -0,0 +1,74 @@
+diff -up scala-2.8.0.final-sources/src/compiler/scala/tools/ant/templates/tool-unix.tmpl.tooltemplate scala-2.8.0.final-sources/src/compiler/scala/tools/ant/templates/tool-unix.tmpl
+--- scala-2.8.0.final-sources/src/compiler/scala/tools/ant/templates/tool-unix.tmpl.tooltemplate 2010-08-15 02:18:09.365756959 -0600
++++ scala-2.8.0.final-sources/src/compiler/scala/tools/ant/templates/tool-unix.tmpl 2010-08-15 02:21:16.517801279 -0600
+@@ -8,35 +8,13 @@
+ # PARTICULAR PURPOSE.
+ ##############################################################################
+
+-cygwin=false;
+-case "`uname`" in
+- CYGWIN*) cygwin=true ;;
+-esac
+-
+-# Finding the root folder for this Scala distribution
+-SOURCE=$0;
+-SCRIPT=`basename "$SOURCE"`;
+-while [ -h "$SOURCE" ]; do
+- SCRIPT=`basename "$SOURCE"`;
+- LOOKUP=`ls -ld "$SOURCE"`;
+- TARGET=`expr "$LOOKUP" : '.*-> \(.*\)$'`;
+- if expr "${TARGET:-.}/" : '/.*/$' > /dev/null; then
+- SOURCE=${TARGET:-.};
+- else
+- SOURCE=`dirname "$SOURCE"`/${TARGET:-.};
+- fi;
+-done;
+-
+-# see #2092
+-SCALA_HOME=`dirname "$SOURCE"`
+-SCALA_HOME=`cd "$SCALA_HOME"; pwd -P`
+-SCALA_HOME=`cd "$SCALA_HOME"/..; pwd`
+-
+-# Remove spaces from SCALA_HOME on windows
+-if $cygwin; then
+- SCALA_HOME=`cygpath --windows --short-name "$SCALA_HOME"`
+- SCALA_HOME=`cygpath --unix "$SCALA_HOME"`
+-fi
++[ -r @@JAVADIR@@-utils/java-functions ] && . @@JAVADIR@@-utils/java-functions || exit 1
++
++set_javacmd || exit 3
++check_java_env || exit 4
++set_jvm_dirs || exit 5
++
++SCALA_HOME="@@DATADIR@@/scala"
+
+ # Constructing the extension classpath
+ TOOL_CLASSPATH="@classpath@"
+@@ -50,16 +28,6 @@ if [ -z "$TOOL_CLASSPATH" ] ; then
+ done
+ fi
+
+-if $cygwin; then
+- if [ "$OS" = "Windows_NT" ] && cygpath -m .>/dev/null 2>/dev/null ; then
+- format=mixed
+- else
+- format=windows
+- fi
+- SCALA_HOME=`cygpath --$format "$SCALA_HOME"`
+- TOOL_CLASSPATH=`cygpath --path --$format "$TOOL_CLASSPATH"`
+-fi
+-
+ # Reminder: substitution ${JAVA_OPTS:=-Xmx256M -Xms16M} DO NOT work on Solaris
+ [ -n "$JAVA_OPTS" ] || JAVA_OPTS="@javaflags@"
+
+@@ -75,9 +43,4 @@ do
+ esac
+ done
+
+-
+-if [ -z "$JAVACMD" -a -n "$JAVA_HOME" -a -x "$JAVA_HOME/bin/java" ]; then
+- JAVACMD="$JAVA_HOME/bin/java"
+-fi
+-
+-exec "${JAVACMD:=java}" $JAVA_OPTS -cp "$TOOL_CLASSPATH" -Dscala.home="$SCALA_HOME" -Denv.emacs="$EMACS" @properties@ @class@ @toolflags@ "$@@"
++exec "${JAVACMD}" $JAVA_OPTS -cp "$TOOL_CLASSPATH" -Dscala.home="$SCALA_HOME" -Denv.emacs="$EMACS" @properties@ @class@ @toolflags@ "$@@"
diff --git a/scala-2.8.0-use_system_jline.patch b/scala-2.8.0-use_system_jline.patch
new file mode 100644
index 0000000..9283fac
--- /dev/null
+++ b/scala-2.8.0-use_system_jline.patch
@@ -0,0 +1,28 @@
+Only in scala-2.8.0.final-sources: build
+Only in scala-2.8.0.final-sources/lib: jline.jar
+diff -ur scala-2.8.0.final-sources.jline/src/compiler/scala/tools/nsc/interpreter/Completion.scala scala-2.8.0.final-sources/src/compiler/scala/tools/nsc/interpreter/Completion.scala
+--- scala-2.8.0.final-sources.jline/src/compiler/scala/tools/nsc/interpreter/Completion.scala 2010-05-26 08:37:35.000000000 -0600
++++ scala-2.8.0.final-sources/src/compiler/scala/tools/nsc/interpreter/Completion.scala 2010-08-14 21:19:23.032706263 -0600
+@@ -306,7 +306,8 @@
+ else xs.reduceLeft(_ zip _ takeWhile (x => x._1 == x._2) map (_._1) mkString)
+
+ // This is jline's entry point for completion.
+- override def complete(_buf: String, cursor: Int, candidates: JList[String]): Int = {
++ override def complete(_buf: String, cursor: Int, _candidates: JList[_]): Int = {
++ val candidates = _candidates.asInstanceOf[JList[String]]
+ val buf = onull(_buf)
+ verbosity = if (isConsecutiveTabs(buf, cursor)) verbosity + 1 else 0
+ DBG("complete(%s, %d) last = (%s, %d), verbosity: %s".format(buf, cursor, lastBuf, lastCursor, verbosity))
+Only in scala-2.8.0.final-sources/src/compiler/scala/tools/nsc/interpreter: .Completion.scala.swp
+diff -ur scala-2.8.0.final-sources.jline/src/compiler/scala/tools/nsc/interpreter/History.scala scala-2.8.0.final-sources/src/compiler/scala/tools/nsc/interpreter/History.scala
+--- scala-2.8.0.final-sources.jline/src/compiler/scala/tools/nsc/interpreter/History.scala 2010-04-07 08:43:08.000000000 -0600
++++ scala-2.8.0.final-sources/src/compiler/scala/tools/nsc/interpreter/History.scala 2010-08-14 21:13:02.962043386 -0600
+@@ -14,7 +14,7 @@
+ /** Primarily, a wrapper for JLine's History.
+ */
+ class History(val jhistory: JHistory) {
+- def asJavaList = jhistory.getHistoryList
++ def asJavaList = jhistory.getHistoryList.asInstanceOf[java.util.List[String]]
+ def asList: List[String] = asBuffer(asJavaList).toList
+ def index = jhistory.getCurrentIndex
+
diff --git a/scala.spec b/scala.spec
index d380e38..2e85d06 100644
--- a/scala.spec
+++ b/scala.spec
@@ -1,5 +1,5 @@
Name: scala
-Version: 2.7.7
+Version: 2.8.0
%define fullversion %{version}.final
Release: 1%{?dist}
Summary: A hybrid functional/object-oriented language for the JVM
@@ -13,46 +13,32 @@ URL: http://www.scala-lang.org/
# Source
Source0: http://www.scala-lang.org/downloads/distrib/files/scala-%{fullversion}-sources.tgz
-%define msilversion 2.7.5.final
-# Exported from upstream vcs
-# svn export http://lampsvn.epfl.ch/svn-repos/scala/msil/tags/R_2_7_5_final msil-2.7.5.final
-# tar cjf msil-2.7.5.final.tar.bz2 msil-2.7.5.final
-Source1: msil-%{msilversion}.tar.bz2
-
-%define fjbgversion r17392
-# Exported from upstream vcs
-# No tag for 2.7.4
-# svn export -r 17392 http://lampsvn.epfl.ch/svn-repos/scala/fjbg/trunk fjbg-r17392
-# tar cjf fjbg-r17392.tar.bz2 fjbg-r17392
-Source2: fjbg-%{fjbgversion}.tar.bz2
-
Source21: scala.keys
Source22: scala.mime
Source23: scala-mime-info.xml
Source24: scala.ant.d
-Patch0: scala-buildfile.patch
-Patch1: scala-tooltemplate.patch
+Patch0: scala-2.8.0-fix3716.patch
+Patch1: scala-2.8.0-use_system_jline.patch
+Patch2: scala-2.8.0-tooltemplate.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-%if 0%{fedora} == 8
-%define java_sdk icedtea
-%else
-%define java_sdk openjdk
-%endif
+%define jline_jar /usr/share/java/jline.jar
# Force build with openjdk/icedtea because gij is horribly slow and I haven't
# been successful at integrating aot compilation with the build process
-BuildRequires: java-devel-%{java_sdk}
+BuildRequires: java-devel-openjdk >= 1:1.6.0
BuildRequires: ant
BuildRequires: ant-contrib
BuildRequires: ant-nodeps
BuildRequires: jline
-BuildRequires: jpackage-utils, java-devel
+BuildRequires: jpackage-utils
+BuildRequires: shtool
Requires: java
Requires: jline
Requires: jpackage-utils
+Requires: %{jline_jar}
%description
Scala is a general purpose programming language designed to express common
@@ -94,14 +80,20 @@ the Scala programming language
%define scaladir %{_datadir}/scala
%prep
-%setup -q -a 1 -a 2 -n scala-%{fullversion}-sources
-%patch0 -b .build
-%patch1 -b .tooltemplate
+%setup -q -n scala-%{fullversion}-sources
+%patch0 -p1 -b .fix3716
+%patch1 -p1 -b .systemjline
+%patch2 -p1 -b .tooltemplate
# remove all jar files except scala-library and scala-compiler needed
# for bootstrap
-find . -not \( -name 'scala-library.jar' -or -name 'scala-compiler.jar' \) -and -name '*.jar' | xargs rm -f
+find . -not \( -name 'scala-library.jar' -or -name 'scala-compiler.jar' -or -name 'msil.jar' -or -name 'fjbg.jar' -or -name 'forkjoin.jar' \) -and -name '*.jar' | xargs rm -f
find . -name '*.dll' -or -name '*.so' -or -name '*.exe' | xargs rm -f
-ln -s `find-jar ant-contrib` lib/ant/ant-contrib.jar
+
+##
+# Copy system jline over bundled library
+##
+
+ln -s %{jline_jar} lib/jline.jar
%build
# Scala is written in itself and therefore requires boot-strapping from an
@@ -114,61 +106,42 @@ ln -s `find-jar ant-contrib` lib/ant/ant-contrib.jar
# be replaced with this one and successfully build the whole distribution
# again
-# Force build with openjdk/icedtea because gij is horribly slow and I haven't
-# been successful at integrating aot compilation with the build process
-%define java_home %{_jvmdir}/java-%{java_sdk}
+##
+# Rebuild Bundled jline
+##
-%define scala_ant %ant -Dsvn.out="" -Dant.jar="`find-jar ant`" -Dant-contrib.jar="`find-jar ant-contrib`" -Djline.jar="`find-jar jline`" -Dversion.number="%{fullversion}"
+#(
+# cd src/jline
+# mkdir -p .m2/repository
+# mvn-jpp -Dmaven.repo.local=$PWD/.m2/repository package
+# cp target/jline-0.9.95-SNAPSHOT.jar ../../lib/jline.jar
+#)
-# Build FJBG
-export ANT_OPTS=-Xmx1024M
-(cd fjbg-%{fjbgversion}; %ant -Djar-file=fjbg.jar jar) || exit 1
-cp fjbg-%{fjbgversion}/fjbg.jar lib/fjbg.jar
+%define java_home %{_jvmdir}/java-openjdk
-# Build msil with bootstrap compiler
-(cd msil-%{msilversion}; make SCALAC="java -Xbootclasspath/a:../lib/scala-library.jar -cp ../lib/scala-library.jar:../lib/scala-compiler.jar:../lib/fjbg.jar scala.tools.nsc.Main" jar) || exit 1
-cp msil-%{msilversion}/lib/msil.jar lib/msil.jar
-
-# Build scala binaries
-%scala_ant pack.comp || exit 1
-
-# Rebuild msil with freshly compiled scala
-(cd msil-%{msilversion}; make SCALAC="java -Xbootclasspath/a:../build/pack/lib/scala-library.jar -cp ../build/pack/lib/scala-library.jar:../build/pack/lib/scala-compiler.jar scala.tools.nsc.Main" clean jar) || exit 1
-cp msil-%{msilversion}/lib/msil.jar lib/msil.jar
-
-# Rebuild scala with freshly compiled msil
-%scala_ant clean fastdist || exit 1
+# rebuild internal libraries and bootstrap compiler
+%ant -Dversion.number=%{fullversion} -Djava6.home=%{_jvmdir}/java-1.6.0 newlibs newforkjoin locker.clean pack.done starr.done locker.clean || exit 1
+# build distribution with newly built compiler
+%ant -Dversion.number=%{fullversion} newlibs libs.clean locker.clean docs.clean dist.done || exit 1
%install
rm -rf $RPM_BUILD_ROOT
-function relativepath {
- UPDIRS=""
- PATHA="$1"
- PATHB="$2"
- while [ "$PATHA" == "${PATHA#$PATHB}" ] ; do
- UPDIRS="../$UPDIRS"
- PATHB="`dirname "$PATHB"`"
- done
- echo $UPDIRS${PATHA#$PATHB/}
-}
-
install -d $RPM_BUILD_ROOT%{_mandir}/man1 $RPM_BUILD_ROOT%{_bindir}
-for prog in scaladoc fsc scala scalac; do
+for prog in scaladoc fsc scala scalac scalap; do
install -p -m 755 dists/scala-%{fullversion}/bin/$prog $RPM_BUILD_ROOT%{_bindir}
install -p -m 644 dists/scala-%{fullversion}/man/man1/$prog.1 $RPM_BUILD_ROOT%{_mandir}/man1
done
install -p -m 755 -d $RPM_BUILD_ROOT%{_javadir}/scala
install -p -m 755 -d $RPM_BUILD_ROOT%{scaladir}/lib
-for libname in library compiler dbc partest swing; do
- install -m 644 dists/scala-%{fullversion}/lib/scala-$libname.jar $RPM_BUILD_ROOT%{_javadir}/scala/scala-$libname-%{fullversion}.jar
- ln -s scala-$libname-%{fullversion}.jar $RPM_BUILD_ROOT%{_javadir}/scala/scala-$libname.jar
- ln -s `relativepath %{_javadir}/scala/scala-$libname.jar %{scaladir}/lib` $RPM_BUILD_ROOT%{scaladir}/lib
+for libname in scala-compiler scala-dbc scala-library scala-partest scala-swing scalap ; do
+ install -m 644 dists/scala-%{fullversion}/lib/$libname.jar $RPM_BUILD_ROOT%{_javadir}/scala/$libname-%{fullversion}.jar
+ ln -s $libname-%{fullversion}.jar $RPM_BUILD_ROOT%{_javadir}/scala/$libname.jar
+ shtool mkln -s $RPM_BUILD_ROOT%{_javadir}/scala/$libname.jar $RPM_BUILD_ROOT%{scaladir}/lib
done
-jline_jar=`find-jar jline`
-ln -s `relativepath $jline_jar %{scaladir}/lib` $RPM_BUILD_ROOT%{scaladir}/lib
+shtool mkln -s $RPM_BUILD_ROOT%{jline_jar} $RPM_BUILD_ROOT%{scaladir}/lib
install -d $RPM_BUILD_ROOT%{_sysconfdir}/ant.d
install -p -m 644 %{SOURCE24} $RPM_BUILD_ROOT%{_sysconfdir}/ant.d/scala
@@ -220,6 +193,9 @@ rm -rf $RPM_BUILD_ROOT
%{_datadir}/scala/examples
%changelog
+* Sun Aug 15 2010 Geoff Reedy <geoff at programmer-monk.net> - 2.8.0-1
+- Update to upstream 2.8.0 release
+
* Thu Oct 29 2009 Geoff Reedy <geoff at programmer-monk.net> - 2.7.7-1
- Update to upstream 2.7.7 release
diff --git a/sources b/sources
index 0ceed08..2d32b2a 100644
--- a/sources
+++ b/sources
@@ -1,3 +1 @@
-ddf94b7fa410753bd3236c4184804b37 fjbg-r17392.tar.bz2
-35d4023e00097fdbc3ba8716f84b1599 msil-2.7.5.final.tar.bz2
-3692a6ac7523b21302901a24016a3f4c scala-2.7.7.final-sources.tgz
+09ce2577d1cead7f1797e5b4ac0aa118 scala-2.8.0.final-sources.tgz
More information about the scm-commits
mailing list