diff --git a/.gitignore b/.gitignore
index e69de29..5622ce2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1,32 @@
+fjbg-r17392.tar.bz2
+msil-2.7.5.final.tar.bz2
+scala-2.7.5.final-sources.tgz
+scala-2.7.7.final-sources.tgz
+/scala-2.8.1.final-sources.tgz
+/scala-2.9.1.final-sources.tgz
+/scala-sources-2.9.2.tgz
+/scala-2.10.0-RC3.tgz
+/scala-sources-2.10.0-RC5.tgz
+/scala-sources-2.10.0.tgz
+/scala-sources-2.10.1.tgz
+/scala-2.10.2.tgz
+/scala-2.10.2.tar.gz
+/scala-2.10.2-bootstrap.tgz
+/scala-.tgz
+/scala--bootstrap.tgz
+/scala-2.10.3.tgz
+/scala-2.10.3-bootstrap.tgz
+/scala-2.10.4.tgz
+/scala-2.10.4-bootstrap.tgz
+/v2.10.4.tar.gz
+/scala-2.10.4-build_xml.patch
+/scala.ant.d
+/scala-bootstript.xml
+/scala.gitinfo
+/scala.keys
+/scala-library-2.10.0-bnd.properties.in
+/scala.mime
+/scala-mime-info.xml
+/sources
+/v2.10.6.tar.gz
+/scala-2.10.6.tar.gz
diff --git a/fsc.in b/fsc.in
new file mode 100644
index 0000000..fd304cc
--- /dev/null
+++ b/fsc.in
@@ -0,0 +1,45 @@
+#!/bin/sh
+
+##############################################################################
+# Fast Scala compiler 2.6.1-RC2
+##############################################################################
+# (c) 2002-2007 LAMP/EPFL
+#
+# This is free software; see the distribution for copying conditions.
+# There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+##############################################################################
+
+[ -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
+EXTENSION_CLASSPATH=""
+if [ -z "$EXTENSION_CLASSPATH" ] ; then
+ for ext in `ls -d "$SCALA_HOME"/lib/*` ; do
+ if [ -z "$EXTENSION_CLASSPATH" ] ; then
+ EXTENSION_CLASSPATH="$ext"
+ else
+ EXTENSION_CLASSPATH="$EXTENSION_CLASSPATH:$ext"
+ fi
+ done
+fi
+
+BOOT_CLASSPATH="`build-classpath scala/scala-library`"
+
+if [ $? != 0 ]; then
+ echo $"Could not find the scala library jar." >&2
+ echo $"Please check that Java is configured properly." >&2
+ exit 6
+fi
+
+# Reminder: substitution ${JAVA_OPTS:=-Xmx256M -Xms16M} DO NOT work on Solaris
+[ -n "$JAVA_OPTS" ] || JAVA_OPTS=""
+
+$JAVACMD $JAVA_OPTS -Xbootclasspath/a:"$BOOT_CLASSPATH" -cp "$EXTENSION_CLASSPATH" -Dscala.home="$SCALA_HOME" -Denv.classpath="$CLASSPATH" -Denv.emacs="$EMACS" scala.tools.nsc.CompileClient "$@"
diff --git a/generate-tarball.sh b/generate-tarball.sh
new file mode 100755
index 0000000..06dd204
--- /dev/null
+++ b/generate-tarball.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+set -e
+
+name=scala
+version="$(sed -n 's/Version:\s*//p' *.spec)"
+
+# RETRIEVE
+wget "https://github.com/scala/scala/archive/v${version}.tar.gz" -O "${name}-${version}.orig.tar.gz"
+
+rm -rf tarball-tmp
+mkdir tarball-tmp
+cd tarball-tmp
+tar xf "../${name}-${version}.orig.tar.gz"
+
+# CLEAN TARBALL
+find -name '*.jar' -delete
+find -name '*.class' -delete
+# Possibly proprietary code
+find -name '*.dll' -delete
+find -name '*.so' -delete
+# Contains minified js of uncertain origin
+rm -r */src/compiler/scala/tools/nsc/doc/html/resource/lib
+
+tar cf "../${name}-${version}.tar.gz" *
+cd ..
+rm -r tarball-tmp "${name}-${version}.orig.tar.gz"
diff --git a/get-source.sh b/get-source.sh
new file mode 100755
index 0000000..273f983
--- /dev/null
+++ b/get-source.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+set -x
+
+VER=$(fedpkg verrel | sed -e 's/^scala\-\(.*\)\-.*$/\1/')
+
+FNS=scala-$VER
+
+rm -rf $FNS/
+git clone git://github.com/scala/scala.git $FNS
+cd $FNS
+git checkout v$VER
+git log --pretty=format:"%H%n%ci" v$VER | head -n 2 | \
+ sed -e 's/\-//g' -e 's/\s\+.*//g' >../scala.gitinfo
+cd ..
+tar -zcf $FNS.tgz --exclude $FNS/.git $FNS/
+cd $FNS
+./pull-binary-libs.sh
+rm -rf lib/jline.jar
+tar -zcf ../$FNS-bootstrap.tgz --exclude .git lib/*.jar
+cd ..
+rm -rf $FNS/
+fedpkg new-sources $FNS.tgz $FNS-bootstrap.tgz
diff --git a/scala-2.10-jline.patch b/scala-2.10-jline.patch
new file mode 100644
index 0000000..59ec518
--- /dev/null
+++ b/scala-2.10-jline.patch
@@ -0,0 +1,107 @@
+diff --git a/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala b/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala
+index 10f9724..2970276 100644
+--- a/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala
++++ b/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala
+@@ -42,7 +42,7 @@ class JLineReader(_completion: => Completion) extends InteractiveReader {
+ def readOneKey(prompt: String) = {
+ this.print(prompt)
+ this.flush()
+- this.readVirtualKey()
++ this.readCharacter()
+ }
+ def eraseLine() = consoleReader.resetPromptLine("", "", 0)
+ def redrawLineAndFlush(): Unit = { flush() ; drawLine() ; flush() }
+diff --git a/src/compiler/scala/tools/nsc/interpreter/session/FileBackedHistory.scala b/src/compiler/scala/tools/nsc/interpreter/session/FileBackedHistory.scala
+index dddfb1b..e598ac5 100644
+--- a/src/compiler/scala/tools/nsc/interpreter/session/FileBackedHistory.scala
++++ b/src/compiler/scala/tools/nsc/interpreter/session/FileBackedHistory.scala
+@@ -13,7 +13,7 @@ import FileBackedHistory._
+ /** TODO: file locking.
+ */
+ trait FileBackedHistory extends JLineHistory with JPersistentHistory {
+- def maxSize: Int
++ def maxSize: Int = 2500
+ protected lazy val historyFile: File = defaultFile
+ private var isPersistent = true
+
+diff --git a/src/compiler/scala/tools/nsc/interpreter/session/JLineHistory.scala b/src/compiler/scala/tools/nsc/interpreter/session/JLineHistory.scala
+index 18e0ee7..fc33192 100644
+--- a/src/compiler/scala/tools/nsc/interpreter/session/JLineHistory.scala
++++ b/src/compiler/scala/tools/nsc/interpreter/session/JLineHistory.scala
+@@ -13,7 +13,6 @@ package session
+ trait JLineHistory extends JHistory with History {
+ def size: Int
+ def isEmpty: Boolean
+- def index: Int
+ def clear(): Unit
+ def get(index: Int): CharSequence
+ def add(line: CharSequence): Unit
+@@ -42,7 +41,8 @@ object JLineHistory {
+ addLineToFile(item)
+ }
+ }
+- override def toString = "History(size = " + size + ", index = " + index + ")"
++ override def toString = "History(size = " + size + ", _index = " + index + ")"
++ override def maxSize: Int = 2500
+ }
+
+ def apply(): JLineHistory = try new JLineFileHistory catch { case x: Exception => new SimpleHistory() }
+diff --git a/src/compiler/scala/tools/nsc/interpreter/session/SimpleHistory.scala b/src/compiler/scala/tools/nsc/interpreter/session/SimpleHistory.scala
+index 9f4e2b9..8933849 100644
+--- a/src/compiler/scala/tools/nsc/interpreter/session/SimpleHistory.scala
++++ b/src/compiler/scala/tools/nsc/interpreter/session/SimpleHistory.scala
+@@ -10,7 +10,7 @@ package session
+ import scala.collection.mutable.{ Buffer, ListBuffer }
+ import scala.collection.JavaConverters._
+
+-class SimpleHistory extends JLineHistory {
++class SimpleHistory extends JMemoryHistory with JLineHistory {
+ private var _index: Int = 0
+ private val buf: Buffer[String] = new ListBuffer[String]
+ private def toEntries(): Seq[JEntry] = buf.zipWithIndex map { case (x, i) => Entry(i, x) }
+@@ -32,27 +32,27 @@ class SimpleHistory extends JLineHistory {
+ def maxSize: Int = 2500
+ def last = if (isEmpty) fail("last") else buf.last
+
+- def size = buf.size
+- def index = _index
+- def isEmpty = buf.isEmpty
+- def clear() = buf.clear()
+- def get(idx: Int): CharSequence = buf(idx)
+- def add(item: CharSequence): Unit = buf += item
+- def replace(item: CharSequence): Unit = {
++ override def size = buf.size
++ override def index = _index
++ override def isEmpty = buf.isEmpty
++ override def clear() = buf.clear()
++ override def get(idx: Int): CharSequence = buf(idx)
++ override def add(item: CharSequence): Unit = buf += item
++ override def replace(item: CharSequence): Unit = {
+ buf trimEnd 1
+ add(item)
+ }
+- def entries(idx: Int): JListIterator[JEntry] = toEntries().asJava.listIterator(idx)
+- def entries(): JListIterator[JEntry] = toEntries().asJava.listIterator()
+- def iterator: JIterator[JEntry] = toEntries().iterator.asJava
+-
+- def current() = if (index >= 0 && index < buf.size) buf(index) else fail("current()")
+- def previous() = (index > 0) && minusOne
+- def next() = (index <= lastIndex) && plusOne
+- def moveToFirst() = (size > 0) && (index != 0) && setTo(0)
+- def moveToLast() = (size > 0) && (index < lastIndex) && setTo(lastIndex)
+- def moveTo(idx: Int) = (idx > 0) && (idx <= lastIndex) && setTo(idx)
+- def moveToEnd(): Unit = setTo(size)
++ override def entries(idx: Int): JListIterator[JEntry] = toEntries().asJava.listIterator(idx)
++ override def entries(): JListIterator[JEntry] = toEntries().asJava.listIterator()
++ override def iterator: JIterator[JEntry] = toEntries().iterator.asJava
++
++ override def current() = if (index >= 0 && index < buf.size) buf(index) else fail("current()")
++ override def previous() = (index > 0) && minusOne
++ override def next() = (index <= lastIndex) && plusOne
++ override def moveToFirst() = (size > 0) && (index != 0) && setTo(0)
++ override def moveToLast() = (size > 0) && (index < lastIndex) && setTo(lastIndex)
++ override def moveTo(idx: Int) = (idx > 0) && (idx <= lastIndex) && setTo(idx)
++ override def moveToEnd(): Unit = setTo(size)
+
+ // scala legacy interface
+ def asList: List[JEntry] = toEntries().toList
diff --git a/scala-2.10.0-bnd.patch b/scala-2.10.0-bnd.patch
new file mode 100644
index 0000000..cf06ee9
--- /dev/null
+++ b/scala-2.10.0-bnd.patch
@@ -0,0 +1,22 @@
+diff -up scala-2.10.0-sources/build.xml.bndx scala-2.10.0-sources/build.xml
+--- scala-2.10.0-sources/build.xml.bndx 2013-01-07 22:47:24.862355735 +0100
++++ scala-2.10.0-sources/build.xml 2013-01-07 22:55:35.930399829 +0100
+@@ -280,9 +280,6 @@ INITIALISATION
+
+
+
+-
+-
+-
+
+
+
+@@ -297,7 +294,7 @@ INITIALISATION
+
+
+
+-
++
+
+
+
diff --git a/scala-2.10.0-java7.patch b/scala-2.10.0-java7.patch
new file mode 100644
index 0000000..62ccde5
--- /dev/null
+++ b/scala-2.10.0-java7.patch
@@ -0,0 +1,237 @@
+diff -up scala-2.10.0-RC3-sources/build.xml.jdk7 scala-2.10.0-RC3-sources/build.xml
+--- scala-2.10.0-RC3-sources/build.xml.jdk7 2012-12-08 16:10:10.948127863 +0100
++++ scala-2.10.0-RC3-sources/build.xml 2012-12-08 16:16:20.267162236 +0100
+@@ -1087,7 +1087,7 @@ QUICK BUILD (QUICK)
+
+
+
+-
++
+
+
+
+-
++
+
+
+
+@@ -1726,7 +1726,7 @@ OSGi Artifacts
+
+
+
+-
++
+
+
+
+@@ -1869,7 +1869,7 @@ BOOTSTRAPPING BUILD (STRAP)
+
+
+
+-
++
+ s.toFloat, s => s.toString)
+ implicit def doubleEditor(c: ComboBox[Double]): Editor[Double] = new BuiltInEditor(c)(s => s.toDouble, s => s.toString)
+
+- def newConstantModel[A](items: Seq[A]): ComboBoxModel = {
+- new AbstractListModel with ComboBoxModel {
++ def newConstantModel[A](items: Seq[A]): ComboBoxModel[A] = {
++ new AbstractListModel[A] with ComboBoxModel[A] {
+ private var selected: A = if (items.isEmpty) null.asInstanceOf[A] else items(0)
+- def getSelectedItem: AnyRef = selected.asInstanceOf[AnyRef]
++ def getSelectedItem = selected.asInstanceOf[AnyRef]
+ def setSelectedItem(a: Any) {
+ if ((selected != null && selected != a) ||
+ selected == null && a != null) {
+@@ -129,7 +129,7 @@ object ComboBox {
+ fireContentsChanged(this, -1, -1)
+ }
+ }
+- def getElementAt(n: Int) = items(n).asInstanceOf[AnyRef]
++ def getElementAt(n: Int) = items(n).asInstanceOf[A]
+ def getSize = items.size
+ }
+ }
+@@ -157,7 +157,7 @@ object ComboBox {
+ * @see javax.swing.JComboBox
+ */
+ class ComboBox[A](items: Seq[A]) extends Component with Publisher {
+- override lazy val peer: JComboBox = new JComboBox(ComboBox.newConstantModel(items)) with SuperMixin
++ override lazy val peer: JComboBox[A] = new JComboBox(ComboBox.newConstantModel(items)) with SuperMixin
+
+ object selection extends Publisher {
+ def index: Int = peer.getSelectedIndex
+@@ -182,7 +182,8 @@ class ComboBox[A](items: Seq[A]) extends
+ * of the component to its own defaults _after_ the renderer has been
+ * configured. That's Swing's principle of most suprise.
+ */
+- def renderer: ListView.Renderer[A] = ListView.Renderer.wrap(peer.getRenderer)
++ def renderer: ListView.Renderer[A] = ListView.Renderer.wrap[A](peer.getRenderer.asInstanceOf[ListCellRenderer[A]])
++ // def renderer: ListView.Renderer[A] = ListView.Renderer.wrap(peer.getRenderer)
+ def renderer_=(r: ListView.Renderer[A]) { peer.setRenderer(r.peer) }
+
+ /* XXX: currently not safe to expose:
+@@ -201,8 +202,8 @@ class ComboBox[A](items: Seq[A]) extends
+ peer.setEditor(editor(this).comboBoxPeer)
+ }
+
+- def prototypeDisplayValue: Option[A] = toOption[A](peer.getPrototypeDisplayValue)
++ def prototypeDisplayValue: Option[A] = Option(peer.getPrototypeDisplayValue)
+ def prototypeDisplayValue_=(v: Option[A]) {
+- peer.setPrototypeDisplayValue((v map toAnyRef).orNull)
++ peer.setPrototypeDisplayValue((v map toAnyRef).orNull.asInstanceOf[A])
+ }
+ }
+diff -up scala-2.10.0-RC3-sources/src/swing/scala/swing/ListView.scala.jdk7 scala-2.10.0-RC3-sources/src/swing/scala/swing/ListView.scala
+--- scala-2.10.0-RC3-sources/src/swing/scala/swing/ListView.scala.jdk7 2012-11-05 02:49:19.000000000 +0100
++++ scala-2.10.0-RC3-sources/src/swing/scala/swing/ListView.scala 2012-12-07 22:58:13.267919851 +0100
+@@ -24,21 +24,21 @@ object ListView {
+ val MultiInterval = Value(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION)
+ }
+
+- def wrap[A](c: JList) = new ListView[A] {
++ def wrap[A](c: JList[A]) = new ListView[A] {
+ override lazy val peer = c
+ }
+
+ object Renderer {
+- def wrap[A](r: ListCellRenderer): Renderer[A] = new Wrapped[A](r)
++ def wrap[A](r: ListCellRenderer[A]): Renderer[A] = new Wrapped[A](r)
+
+ /**
+ * Wrapper for javax.swing.ListCellRenderers
+ */
+- class Wrapped[A](override val peer: ListCellRenderer) extends Renderer[A] {
+- def componentFor(list: ListView[_], isSelected: Boolean, focused: Boolean, a: A, index: Int) = {
++ class Wrapped[A](override val peer: ListCellRenderer[A]) extends Renderer[A] {
++ def componentFor(list: ListView[_ <: A], isSelected: Boolean, focused: Boolean, a: A, index: Int) = {
+ Component.wrap(peer.getListCellRendererComponent(list.peer, a, index, isSelected, focused).asInstanceOf[JComponent])
++ }
+ }
+- }
+
+ /**
+ * Returns a renderer for items of type A
. The given function
+@@ -55,8 +55,8 @@ object ListView {
+ *
+ */
+ def apply[A,B](f: A => B)(implicit renderer: Renderer[B]): Renderer[A] = new Renderer[A] {
+- def componentFor(list: ListView[_], isSelected: Boolean, focused: Boolean, a: A, index: Int): Component =
+- renderer.componentFor(list, isSelected, focused, f(a), index)
++ def componentFor(list: ListView[_ <: A], isSelected: Boolean, focused: Boolean, a: A, index: Int): Component =
++ renderer.componentFor(list.asInstanceOf[ListView[_ <: B]], isSelected, focused, f(a), index)
+ }
+ }
+
+@@ -69,11 +69,11 @@ object ListView {
+ * @see javax.swing.ListCellRenderer
+ */
+ abstract class Renderer[-A] {
+- def peer: ListCellRenderer = new ListCellRenderer {
+- def getListCellRendererComponent(list: JList, a: Any, index: Int, isSelected: Boolean, focused: Boolean) =
+- componentFor(ListView.wrap[A](list), isSelected, focused, a.asInstanceOf[A], index).peer
++ def peer: ListCellRenderer[_ >: A] = new ListCellRenderer[A] {
++ def getListCellRendererComponent(list: JList[_ <: A], a: A, index: Int, isSelected: Boolean, focused: Boolean) =
++ componentFor(ListView.wrap[A](list.asInstanceOf[JList[A]]), isSelected, focused, a, index).peer
+ }
+- def componentFor(list: ListView[_], isSelected: Boolean, focused: Boolean, a: A, index: Int): Component
++ def componentFor(list: ListView[_ <: A], isSelected: Boolean, focused: Boolean, a: A, index: Int): Component
+ }
+
+ /**
+@@ -110,7 +110,7 @@ object ListView {
+ /**
+ * Configures the component before returning it.
+ */
+- def componentFor(list: ListView[_], isSelected: Boolean, focused: Boolean, a: A, index: Int): Component = {
++ def componentFor(list: ListView[_ <: A], isSelected: Boolean, focused: Boolean, a: A, index: Int): Component = {
+ preConfigure(list, isSelected, focused, a, index)
+ configure(list, isSelected, focused, a, index)
+ component
+@@ -123,10 +123,10 @@ object ListView {
+ * that renders the string returned from an item's toString
.
+ */
+ implicit object GenericRenderer extends Renderer[Any] {
+- override lazy val peer: ListCellRenderer = new DefaultListCellRenderer
+- def componentFor(list: ListView[_], isSelected: Boolean, focused: Boolean, a: Any, index: Int): Component = {
+- val c = peer.getListCellRendererComponent(list.peer, a, index, isSelected, focused).asInstanceOf[JComponent]
+- Component.wrap(c)
++ override lazy val peer: ListCellRenderer[Any] = (new DefaultListCellRenderer).asInstanceOf[ListCellRenderer[Any]]
++ def componentFor(list: ListView[_ <: Any], isSelected: Boolean, focused: Boolean, a: Any, index: Int): Component = {
++ val c = peer.getListCellRendererComponent(list.peer, a, index, isSelected, focused)
++ Component.wrap(c.asInstanceOf[JComponent])
+ }
+ }
+ }
+@@ -142,34 +142,34 @@ object ListView {
+ */
+ class ListView[A] extends Component {
+ import ListView._
+- override lazy val peer: JList = new JList with SuperMixin
++ override lazy val peer: JList[A] = new JList[A] with SuperMixin
+
+ def this(items: Seq[A]) = {
+ this()
+ listData = items
+ }
+
+- protected class ModelWrapper(val items: Seq[A]) extends AbstractListModel {
+- def getElementAt(n: Int) = items(n).asInstanceOf[AnyRef]
++ protected class ModelWrapper[A](val items: Seq[A]) extends AbstractListModel[A] {
++ def getElementAt(n: Int) = items(n)
+ def getSize = items.size
+ }
+
+ def listData: Seq[A] = peer.getModel match {
+- case model: ModelWrapper => model.items
+- case model @ _ => new Seq[A] { selfSeq =>
++ case model: ModelWrapper[a] => model.items
++ case model => new Seq[A] { selfSeq =>
+ def length = model.getSize
+ def iterator = new Iterator[A] {
+ var idx = 0
+ def next = { idx += 1; apply(idx-1) }
+ def hasNext = idx < selfSeq.length
+ }
+- def apply(n: Int) = model.getElementAt(n).asInstanceOf[A]
++ def apply(n: Int): A = model.getElementAt(n)
+ }
+ }
+
+ def listData_=(items: Seq[A]) {
+- peer.setModel(new AbstractListModel {
+- def getElementAt(n: Int) = items(n).asInstanceOf[AnyRef]
++ peer.setModel(new AbstractListModel[A] {
++ def getElementAt(n: Int) = items(n)
+ def getSize = items.size
+ })
+ }
+@@ -216,7 +216,7 @@ class ListView[A] extends Component {
+ def adjusting = peer.getSelectionModel.getValueIsAdjusting
+ }
+
+- def renderer: ListView.Renderer[A] = ListView.Renderer.wrap(peer.getCellRenderer)
++ def renderer: ListView.Renderer[A] = ListView.Renderer.wrap[A](peer.getCellRenderer.asInstanceOf[ListCellRenderer[A]])
+ def renderer_=(r: ListView.Renderer[A]) { peer.setCellRenderer(r.peer) }
+
+ def fixedCellWidth = peer.getFixedCellWidth
diff --git a/scala-2.10.0-tooltemplate.patch b/scala-2.10.0-tooltemplate.patch
new file mode 100644
index 0000000..81337a2
--- /dev/null
+++ b/scala-2.10.0-tooltemplate.patch
@@ -0,0 +1,21 @@
+diff -up scala-2.10.0-RC3/src/compiler/scala/tools/ant/templates/tool-unix.tmpl.tool scala-2.10.0-RC3/src/compiler/scala/tools/ant/templates/tool-unix.tmpl
+--- scala-2.10.0-RC3/src/compiler/scala/tools/ant/templates/tool-unix.tmpl.tool 2012-11-21 17:01:54.000000000 +0100
++++ scala-2.10.0-RC3/src/compiler/scala/tools/ant/templates/tool-unix.tmpl 2012-11-25 14:55:22.583111734 +0100
+@@ -68,7 +68,16 @@ if uname | grep -q ^MINGW; then
+ fi
+
+ # Finding the root folder for this Scala distribution
+-SCALA_HOME="$(findScalaHome)"
++export JAVA_HOMe=/usr/share/jvm/java
++
++[ -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
++
++export SCALA_HOME=@@DATADIR@@/scala
++
+ SEP=":"
+
+ # Possible additional command line options
diff --git a/scala-2.10.0-use_system_jline.patch b/scala-2.10.0-use_system_jline.patch
new file mode 100644
index 0000000..bc68fc9
--- /dev/null
+++ b/scala-2.10.0-use_system_jline.patch
@@ -0,0 +1,135 @@
+diff -up scala-2.10.0-RC5/build.xml.sysjline scala-2.10.0-RC5/build.xml
+--- scala-2.10.0-RC5/build.xml.sysjline 2012-12-07 19:39:49.000000000 +0100
++++ scala-2.10.0-RC5/build.xml 2012-12-07 20:40:26.749580408 +0100
+@@ -206,7 +206,7 @@ PROPERTIES
+
+
+
+-
++
+
+
+
+@@ -259,7 +259,6 @@ INITIALISATION
+
+
+
+-
+
+
+
+@@ -423,7 +422,7 @@ INITIALISATION
+
+
+
+-
++
+
+
+
+@@ -1535,7 +1534,6 @@ PACKED QUICK BUILD (PACK)
+
+
+
+-
+
+
+
+diff -up scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/ConsoleReaderHelper.scala.sysjline scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/ConsoleReaderHelper.scala
+--- scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/ConsoleReaderHelper.scala.sysjline 2012-12-07 19:39:50.000000000 +0100
++++ scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/ConsoleReaderHelper.scala 2012-12-07 19:51:05.782792214 +0100
+@@ -6,8 +6,8 @@
+ package scala.tools.nsc
+ package interpreter
+
+-import scala.tools.jline.console.{ ConsoleReader, CursorBuffer }
+-import scala.tools.jline.console.completer.CompletionHandler
++import jline.console.{ ConsoleReader, CursorBuffer }
++import jline.console.completer.CompletionHandler
+ import Completion._
+
+ trait ConsoleReaderHelper extends ConsoleReader {
+diff -up scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/Delimited.scala.sysjline scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/Delimited.scala
+--- scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/Delimited.scala.sysjline 2012-12-07 19:39:50.000000000 +0100
++++ scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/Delimited.scala 2012-12-07 19:51:05.782792214 +0100
+@@ -6,7 +6,7 @@
+ package scala.tools.nsc
+ package interpreter
+
+-import scala.tools.jline.console.completer.ArgumentCompleter.{ ArgumentDelimiter, ArgumentList }
++import jline.console.completer.ArgumentCompleter.{ ArgumentDelimiter, ArgumentList }
+
+ class JLineDelimiter extends ArgumentDelimiter {
+ def toJLine(args: List[String], cursor: Int) = args match {
+diff -up scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/JLineCompletion.scala.sysjline scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/JLineCompletion.scala
+--- scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/JLineCompletion.scala.sysjline 2012-12-07 19:39:50.000000000 +0100
++++ scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/JLineCompletion.scala 2012-12-07 19:51:05.783792215 +0100
+@@ -6,8 +6,8 @@
+ package scala.tools.nsc
+ package interpreter
+
+-import scala.tools.jline._
+-import scala.tools.jline.console.completer._
++import jline._
++import jline.console.completer._
+ import Completion._
+ import scala.collection.mutable.ListBuffer
+
+diff -up scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala.sysjline scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala
+--- scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala.sysjline 2012-12-07 19:39:50.000000000 +0100
++++ scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala 2012-12-07 19:51:05.783792215 +0100
+@@ -6,8 +6,8 @@
+ package scala.tools.nsc
+ package interpreter
+
+-import scala.tools.jline.console.ConsoleReader
+-import scala.tools.jline.console.completer._
++import jline.console.ConsoleReader
++import jline.console.completer._
+ import session._
+ import scala.collection.JavaConverters._
+ import Completion._
+diff -up scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/Parsed.scala.sysjline scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/Parsed.scala
+--- scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/Parsed.scala.sysjline 2012-12-07 19:39:50.000000000 +0100
++++ scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/Parsed.scala 2012-12-07 19:51:05.783792215 +0100
+@@ -6,7 +6,7 @@
+ package scala.tools.nsc
+ package interpreter
+
+-import scala.tools.jline.console.completer.ArgumentCompleter.{ ArgumentDelimiter, ArgumentList }
++import jline.console.completer.ArgumentCompleter.{ ArgumentDelimiter, ArgumentList }
+ import util.returning
+
+ /** One instance of a command buffer.
+diff -up scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/ReplProps.scala.sysjline scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/ReplProps.scala
+--- scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/ReplProps.scala.sysjline 2012-12-07 19:39:50.000000000 +0100
++++ scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/ReplProps.scala 2012-12-07 19:51:05.783792215 +0100
+@@ -13,8 +13,8 @@ class ReplProps {
+ private def bool(name: String) = BooleanProp.keyExists(name)
+ private def int(name: String) = IntProp(name)
+
+- val jlineDebug = bool("scala.tools.jline.internal.Log.debug")
+- val jlineTrace = bool("scala.tools.jline.internal.Log.trace")
++ val jlineDebug = bool("jline.internal.Log.debug")
++ val jlineTrace = bool("jline.internal.Log.trace")
+
+ val info = bool("scala.repl.info")
+ val debug = bool("scala.repl.debug")
+diff -up scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/session/package.scala.sysjline scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/session/package.scala
+--- scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/session/package.scala.sysjline 2012-12-07 19:39:49.000000000 +0100
++++ scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/session/package.scala 2012-12-07 19:51:05.784792216 +0100
+@@ -14,10 +14,10 @@ package object session {
+ type JIterator[T] = java.util.Iterator[T]
+ type JListIterator[T] = java.util.ListIterator[T]
+
+- type JEntry = scala.tools.jline.console.history.History.Entry
+- type JHistory = scala.tools.jline.console.history.History
+- type JMemoryHistory = scala.tools.jline.console.history.MemoryHistory
+- type JPersistentHistory = scala.tools.jline.console.history.PersistentHistory
++ type JEntry = jline.console.history.History.Entry
++ type JHistory = jline.console.history.History
++ type JMemoryHistory = jline.console.history.MemoryHistory
++ type JPersistentHistory = jline.console.history.PersistentHistory
+
+ private[interpreter] implicit def charSequenceFix(x: CharSequence): String = x.toString
+ }
diff --git a/scala-2.10.1-bc.patch b/scala-2.10.1-bc.patch
new file mode 100644
index 0000000..68227f6
--- /dev/null
+++ b/scala-2.10.1-bc.patch
@@ -0,0 +1,28 @@
+diff -u orig/bincompat-backward.whitelist.conf new/bincompat-backward.whitelist.conf
+--- orig/bincompat-backward.whitelist.conf 2013-09-11 12:59:13.684010082 -0500
++++ new/bincompat-backward.whitelist.conf 2013-09-11 12:59:08.751002599 -0500
+@@ -1,6 +1,10 @@
+ filter {
+ problems=[
+ # Scala library
++ {
++ matchName="scala.xml.dtd.ElementValidator.scala$xml$dtd$ElementValidator$$find$2"
++ problemName=IncompatibleMethTypeProblem
++ },
+ {
+ # can only be called from Stream::distinct, which cannot itself be inlined, so distinct is the only feasible call-site
+ matchName="scala.collection.immutable.Stream.scala$collection$immutable$Stream$$loop$4"
+diff -u orig/bincompat-forward.whitelist.conf new/bincompat-forward.whitelist.conf
+--- orig/bincompat-forward.whitelist.conf 2013-09-11 12:59:13.684010082 -0500
++++ new/bincompat-forward.whitelist.conf 2013-09-11 12:59:08.751002599 -0500
+@@ -5,6 +5,10 @@
+ # matchName="scala.collection.mutable.MutableList.tailImpl"
+ # problemName=MissingMethodProblem
+ # },
++ {
++ matchName="scala.xml.dtd.ElementValidator.scala$xml$dtd$ElementValidator$$find$2"
++ problemName=IncompatibleMethTypeProblem
++ },
+ {
+ # can only be called from Stream::distinct, which cannot itself be inlined, so distinct is the only feasible call-site
+ matchName="scala.collection.immutable.Stream.scala$collection$immutable$Stream$$loop$6"
diff --git a/scala-2.10.2-java7.patch b/scala-2.10.2-java7.patch
new file mode 100644
index 0000000..323ca42
--- /dev/null
+++ b/scala-2.10.2-java7.patch
@@ -0,0 +1,198 @@
+diff -up scala-2.10.0-RC3-sources/src/swing/scala/swing/ComboBox.scala.jdk7 scala-2.10.0-RC3-sources/src/swing/scala/swing/ComboBox.scala
+--- scala-2.10.0-RC3-sources/src/swing/scala/swing/ComboBox.scala.jdk7 2012-11-05 02:49:19.000000000 +0100
++++ scala-2.10.0-RC3-sources/src/swing/scala/swing/ComboBox.scala 2012-12-07 23:29:32.821949227 +0100
+@@ -9,7 +9,7 @@
+ package scala.swing
+
+ import event._
+-import javax.swing.{JList, JComponent, JComboBox, JTextField, ComboBoxModel, AbstractListModel, ListCellRenderer}
++import javax.swing.{ JComponent, JComboBox, JTextField, ComboBoxModel, AbstractListModel, ListCellRenderer }
+ import java.awt.event.ActionListener
+
+ object ComboBox {
+@@ -118,10 +118,10 @@ object ComboBox {
+ implicit def floatEditor(c: ComboBox[Float]): Editor[Float] = new BuiltInEditor(c)(s => s.toFloat, s => s.toString)
+ implicit def doubleEditor(c: ComboBox[Double]): Editor[Double] = new BuiltInEditor(c)(s => s.toDouble, s => s.toString)
+
+- def newConstantModel[A](items: Seq[A]): ComboBoxModel = {
+- new AbstractListModel with ComboBoxModel {
++ def newConstantModel[A](items: Seq[A]): ComboBoxModel[A] = {
++ new AbstractListModel[A] with ComboBoxModel[A] {
+ private var selected: A = if (items.isEmpty) null.asInstanceOf[A] else items(0)
+- def getSelectedItem: AnyRef = selected.asInstanceOf[AnyRef]
++ def getSelectedItem = selected.asInstanceOf[AnyRef]
+ def setSelectedItem(a: Any) {
+ if ((selected != null && selected != a) ||
+ selected == null && a != null) {
+@@ -129,7 +129,7 @@ object ComboBox {
+ fireContentsChanged(this, -1, -1)
+ }
+ }
+- def getElementAt(n: Int) = items(n).asInstanceOf[AnyRef]
++ def getElementAt(n: Int) = items(n).asInstanceOf[A]
+ def getSize = items.size
+ }
+ }
+@@ -157,7 +157,7 @@ object ComboBox {
+ * @see javax.swing.JComboBox
+ */
+ class ComboBox[A](items: Seq[A]) extends Component with Publisher {
+- override lazy val peer: JComboBox = new JComboBox(ComboBox.newConstantModel(items)) with SuperMixin
++ override lazy val peer: JComboBox[A] = new JComboBox(ComboBox.newConstantModel(items)) with SuperMixin
+
+ object selection extends Publisher {
+ def index: Int = peer.getSelectedIndex
+@@ -182,7 +182,8 @@ class ComboBox[A](items: Seq[A]) extends
+ * of the component to its own defaults _after_ the renderer has been
+ * configured. That's Swing's principle of most suprise.
+ */
+- def renderer: ListView.Renderer[A] = ListView.Renderer.wrap(peer.getRenderer)
++ def renderer: ListView.Renderer[A] = ListView.Renderer.wrap[A](peer.getRenderer.asInstanceOf[ListCellRenderer[A]])
++ // def renderer: ListView.Renderer[A] = ListView.Renderer.wrap(peer.getRenderer)
+ def renderer_=(r: ListView.Renderer[A]) { peer.setRenderer(r.peer) }
+
+ /* XXX: currently not safe to expose:
+@@ -201,8 +202,8 @@ class ComboBox[A](items: Seq[A]) extends
+ peer.setEditor(editor(this).comboBoxPeer)
+ }
+
+- def prototypeDisplayValue: Option[A] = toOption[A](peer.getPrototypeDisplayValue)
++ def prototypeDisplayValue: Option[A] = Option(peer.getPrototypeDisplayValue)
+ def prototypeDisplayValue_=(v: Option[A]) {
+- peer.setPrototypeDisplayValue((v map toAnyRef).orNull)
++ peer.setPrototypeDisplayValue((v map toAnyRef).orNull.asInstanceOf[A])
+ }
+ }
+diff -up scala-2.10.0-RC3-sources/src/swing/scala/swing/ListView.scala.jdk7 scala-2.10.0-RC3-sources/src/swing/scala/swing/ListView.scala
+--- scala-2.10.0-RC3-sources/src/swing/scala/swing/ListView.scala.jdk7 2012-11-05 02:49:19.000000000 +0100
++++ scala-2.10.0-RC3-sources/src/swing/scala/swing/ListView.scala 2012-12-07 22:58:13.267919851 +0100
+@@ -24,21 +24,21 @@ object ListView {
+ val MultiInterval = Value(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION)
+ }
+
+- def wrap[A](c: JList) = new ListView[A] {
++ def wrap[A](c: JList[A]) = new ListView[A] {
+ override lazy val peer = c
+ }
+
+ object Renderer {
+- def wrap[A](r: ListCellRenderer): Renderer[A] = new Wrapped[A](r)
++ def wrap[A](r: ListCellRenderer[A]): Renderer[A] = new Wrapped[A](r)
+
+ /**
+ * Wrapper for javax.swing.ListCellRenderers
+ */
+- class Wrapped[A](override val peer: ListCellRenderer) extends Renderer[A] {
+- def componentFor(list: ListView[_], isSelected: Boolean, focused: Boolean, a: A, index: Int) = {
++ class Wrapped[A](override val peer: ListCellRenderer[A]) extends Renderer[A] {
++ def componentFor(list: ListView[_ <: A], isSelected: Boolean, focused: Boolean, a: A, index: Int) = {
+ Component.wrap(peer.getListCellRendererComponent(list.peer, a, index, isSelected, focused).asInstanceOf[JComponent])
++ }
+ }
+- }
+
+ /**
+ * Returns a renderer for items of type A
. The given function
+@@ -55,8 +55,8 @@ object ListView {
+ *
+ */
+ def apply[A,B](f: A => B)(implicit renderer: Renderer[B]): Renderer[A] = new Renderer[A] {
+- def componentFor(list: ListView[_], isSelected: Boolean, focused: Boolean, a: A, index: Int): Component =
+- renderer.componentFor(list, isSelected, focused, f(a), index)
++ def componentFor(list: ListView[_ <: A], isSelected: Boolean, focused: Boolean, a: A, index: Int): Component =
++ renderer.componentFor(list.asInstanceOf[ListView[_ <: B]], isSelected, focused, f(a), index)
+ }
+ }
+
+@@ -69,11 +69,11 @@ object ListView {
+ * @see javax.swing.ListCellRenderer
+ */
+ abstract class Renderer[-A] {
+- def peer: ListCellRenderer = new ListCellRenderer {
+- def getListCellRendererComponent(list: JList, a: Any, index: Int, isSelected: Boolean, focused: Boolean) =
+- componentFor(ListView.wrap[A](list), isSelected, focused, a.asInstanceOf[A], index).peer
++ def peer: ListCellRenderer[_ >: A] = new ListCellRenderer[A] {
++ def getListCellRendererComponent(list: JList[_ <: A], a: A, index: Int, isSelected: Boolean, focused: Boolean) =
++ componentFor(ListView.wrap[A](list.asInstanceOf[JList[A]]), isSelected, focused, a, index).peer
+ }
+- def componentFor(list: ListView[_], isSelected: Boolean, focused: Boolean, a: A, index: Int): Component
++ def componentFor(list: ListView[_ <: A], isSelected: Boolean, focused: Boolean, a: A, index: Int): Component
+ }
+
+ /**
+@@ -110,7 +110,7 @@ object ListView {
+ /**
+ * Configures the component before returning it.
+ */
+- def componentFor(list: ListView[_], isSelected: Boolean, focused: Boolean, a: A, index: Int): Component = {
++ def componentFor(list: ListView[_ <: A], isSelected: Boolean, focused: Boolean, a: A, index: Int): Component = {
+ preConfigure(list, isSelected, focused, a, index)
+ configure(list, isSelected, focused, a, index)
+ component
+@@ -123,10 +123,10 @@ object ListView {
+ * that renders the string returned from an item's toString
.
+ */
+ implicit object GenericRenderer extends Renderer[Any] {
+- override lazy val peer: ListCellRenderer = new DefaultListCellRenderer
+- def componentFor(list: ListView[_], isSelected: Boolean, focused: Boolean, a: Any, index: Int): Component = {
+- val c = peer.getListCellRendererComponent(list.peer, a, index, isSelected, focused).asInstanceOf[JComponent]
+- Component.wrap(c)
++ override lazy val peer: ListCellRenderer[Any] = (new DefaultListCellRenderer).asInstanceOf[ListCellRenderer[Any]]
++ def componentFor(list: ListView[_ <: Any], isSelected: Boolean, focused: Boolean, a: Any, index: Int): Component = {
++ val c = peer.getListCellRendererComponent(list.peer, a, index, isSelected, focused)
++ Component.wrap(c.asInstanceOf[JComponent])
+ }
+ }
+ }
+@@ -142,34 +142,34 @@ object ListView {
+ */
+ class ListView[A] extends Component {
+ import ListView._
+- override lazy val peer: JList = new JList with SuperMixin
++ override lazy val peer: JList[A] = new JList[A] with SuperMixin
+
+ def this(items: Seq[A]) = {
+ this()
+ listData = items
+ }
+
+- protected class ModelWrapper(val items: Seq[A]) extends AbstractListModel {
+- def getElementAt(n: Int) = items(n).asInstanceOf[AnyRef]
++ protected class ModelWrapper[A](val items: Seq[A]) extends AbstractListModel[A] {
++ def getElementAt(n: Int) = items(n)
+ def getSize = items.size
+ }
+
+ def listData: Seq[A] = peer.getModel match {
+- case model: ModelWrapper => model.items
+- case model @ _ => new Seq[A] { selfSeq =>
++ case model: ModelWrapper[a] => model.items
++ case model => new Seq[A] { selfSeq =>
+ def length = model.getSize
+ def iterator = new Iterator[A] {
+ var idx = 0
+ def next = { idx += 1; apply(idx-1) }
+ def hasNext = idx < selfSeq.length
+ }
+- def apply(n: Int) = model.getElementAt(n).asInstanceOf[A]
++ def apply(n: Int): A = model.getElementAt(n)
+ }
+ }
+
+ def listData_=(items: Seq[A]) {
+- peer.setModel(new AbstractListModel {
+- def getElementAt(n: Int) = items(n).asInstanceOf[AnyRef]
++ peer.setModel(new AbstractListModel[A] {
++ def getElementAt(n: Int) = items(n)
+ def getSize = items.size
+ })
+ }
+@@ -216,7 +216,7 @@ class ListView[A] extends Component {
+ def adjusting = peer.getSelectionModel.getValueIsAdjusting
+ }
+
+- def renderer: ListView.Renderer[A] = ListView.Renderer.wrap(peer.getCellRenderer)
++ def renderer: ListView.Renderer[A] = ListView.Renderer.wrap[A](peer.getCellRenderer.asInstanceOf[ListCellRenderer[A]])
+ def renderer_=(r: ListView.Renderer[A]) { peer.setCellRenderer(r.peer) }
+
+ def fixedCellWidth = peer.getFixedCellWidth
diff --git a/scala-2.10.3-build_xml.patch b/scala-2.10.3-build_xml.patch
new file mode 100644
index 0000000..0d5995f
--- /dev/null
+++ b/scala-2.10.3-build_xml.patch
@@ -0,0 +1,635 @@
+diff -up scala-2.10.3/build.xml.bld scala-2.10.3/build.xml
+--- scala-2.10.3/build.xml.bld 2013-10-15 19:53:47.000000000 +0200
++++ scala-2.10.3/build.xml 2014-03-04 06:56:08.811763572 +0100
+@@ -1,6 +1,6 @@
+
+
+-
++
+
+ SuperSabbus for Scala core, builds the scala library and compiler. It can also package it as a simple distribution, tests it for stable bootstrapping and against the Scala test suite.
+
+@@ -44,8 +44,8 @@ TODO:
+
+-
+-
++
++
+
+
+
+@@ -68,7 +68,7 @@ TODO:
+
+
+
+-
++
+
+
+
+@@ -95,8 +95,6 @@ TODO:
+
+
+
+-
+-
+
+
+
+@@ -122,8 +120,8 @@ TODO:
+
+
+
+-
+-
++
++
+
+
+
+@@ -182,86 +180,62 @@ TODO:
+
+
+
+-
+-
+-
+-
+-
+-
+-
+
+
+
+-
+-
+
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+
+
++
++
++
++
++
++
++
++
++
++
++
++
+
+
+
++
+
+
+
++
++
++
++
++
++
++
+
+
+
+@@ -560,13 +541,6 @@ TODO:
+
+
+
+-
+-
+-
+-
+-
+-
+-
+
+
+
+@@ -589,12 +563,10 @@ TODO:
+
+
+
+-
+
+
+
+
+-
+
+
+
+@@ -631,18 +603,6 @@ TODO:
+
+
+
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+
+
+
+@@ -717,10 +677,6 @@ TODO:
+
+
+
+-
+-
+-
+-
+
+
+
+@@ -749,7 +705,7 @@ TODO:
+
+
+
+-
++
+
+
+
+-
+-
+-
+
+
+-
++
+
+
+
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+
+-
++
+
+
+
+@@ -1315,7 +1250,7 @@ TODO:
+
+-
++
+
+
+
+@@ -1362,7 +1297,6 @@ TODO:
+
+
+
+-
+
+
+
+@@ -1370,10 +1304,7 @@ TODO:
+
+
+
+-
+-
+-
+-
++
+
+
+
+@@ -1503,81 +1434,6 @@ TODO:
+
+
+
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+
+@@ -1588,69 +1444,25 @@ TODO:
+
+
+
+-
+-
+-
+-
+-
+-
+-
+-
+
+
+
+
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
++
+
+
+
+-
+-
+-
+-
+-
++
+
+
+
+
+-
+-
+-
+
+
+
+-
++
+
+
+
+@@ -1672,6 +1484,7 @@ TODO:
+
+
+
++
+
+
+
+@@ -1729,25 +1542,12 @@ TODO:
+
+
+
+-
+-
+-
+-
+-
+-
+-
+
+
+
+
+
+
+-
+-
+-
+-
+-
+-
+
+
+
+@@ -1791,13 +1591,13 @@ TODO:
+
+
+
+-
++
+
+
+
+-
++
+
+
+
+@@ -1820,19 +1620,11 @@ TODO:
+
+
+
+-
+
+-
+
+
+
+
+-
+-
+-
+-
+-
+
+
+
+@@ -2018,10 +1810,9 @@ TODO:
+
+
+
+-
++
+
+
+-
+
+
+
+@@ -2038,7 +1829,6 @@ TODO:
+
+
+
+-
+
+
+
diff --git a/scala-2.10.3-compiler-pom.patch b/scala-2.10.3-compiler-pom.patch
new file mode 100644
index 0000000..fbc0cee
--- /dev/null
+++ b/scala-2.10.3-compiler-pom.patch
@@ -0,0 +1,15 @@
+diff -up scala-2.10.3/src/build/maven/scala-compiler-pom.xml.compiler-pom scala-2.10.3/src/build/maven/scala-compiler-pom.xml
+--- scala-2.10.3/src/build/maven/scala-compiler-pom.xml.compiler-pom 2013-12-09 18:00:10.765090809 +0100
++++ scala-2.10.3/src/build/maven/scala-compiler-pom.xml 2013-12-09 18:02:31.251138135 +0100
+@@ -43,9 +43,9 @@
+ @VERSION@
+
+
+- org.scala-lang
++ jline
+ jline
+- @VERSION@
++ 2.10
+ true
+
+
diff --git a/scala-2.10.3-use_system_jline.patch b/scala-2.10.3-use_system_jline.patch
new file mode 100644
index 0000000..c8a43eb
--- /dev/null
+++ b/scala-2.10.3-use_system_jline.patch
@@ -0,0 +1,109 @@
+diff -up scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/ConsoleReaderHelper.scala.sysjline scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/ConsoleReaderHelper.scala
+--- scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/ConsoleReaderHelper.scala.sysjline 2013-10-10 21:03:24.000000000 +0200
++++ scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/ConsoleReaderHelper.scala 2013-10-13 15:28:24.478283303 +0200
+@@ -6,8 +6,8 @@
+ package scala.tools.nsc
+ package interpreter
+
+-import scala.tools.jline.console.{ ConsoleReader, CursorBuffer }
+-import scala.tools.jline.console.completer.CompletionHandler
++import jline.console.{ ConsoleReader, CursorBuffer }
++import jline.console.completer.CompletionHandler
+ import Completion._
+
+ trait ConsoleReaderHelper extends ConsoleReader {
+diff -up scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/Delimited.scala.sysjline scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/Delimited.scala
+--- scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/Delimited.scala.sysjline 2013-10-10 21:03:24.000000000 +0200
++++ scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/Delimited.scala 2013-10-13 15:28:24.483282990 +0200
+@@ -6,7 +6,7 @@
+ package scala.tools.nsc
+ package interpreter
+
+-import scala.tools.jline.console.completer.ArgumentCompleter.{ ArgumentDelimiter, ArgumentList }
++import jline.console.completer.ArgumentCompleter.{ ArgumentDelimiter, ArgumentList }
+
+ class JLineDelimiter extends ArgumentDelimiter {
+ def toJLine(args: List[String], cursor: Int) = args match {
+diff -up scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/JLineCompletion.scala.sysjline scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/JLineCompletion.scala
+--- scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/JLineCompletion.scala.sysjline 2013-10-10 21:03:24.000000000 +0200
++++ scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/JLineCompletion.scala 2013-10-13 15:28:24.487282739 +0200
+@@ -6,8 +6,8 @@
+ package scala.tools.nsc
+ package interpreter
+
+-import scala.tools.jline._
+-import scala.tools.jline.console.completer._
++import jline._
++import jline.console.completer._
+ import Completion._
+ import scala.collection.mutable.ListBuffer
+
+diff -up scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala.sysjline scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala
+--- scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala.sysjline 2013-10-10 21:03:24.000000000 +0200
++++ scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala 2013-10-13 15:30:16.619034744 +0200
+@@ -6,8 +6,8 @@
+ package scala.tools.nsc
+ package interpreter
+
+-import scala.tools.jline.console.ConsoleReader
+-import scala.tools.jline.console.completer._
++import jline.console.ConsoleReader
++import jline.console.completer._
+ import session._
+ import scala.collection.JavaConverters._
+ import Completion._
+@@ -71,6 +71,9 @@ class JLineReader(_completion: => Comple
+ def eraseLine() = consoleReader.eraseLine()
+ // Alternate implementation, not sure if/when I need this.
+ // def eraseLine() = while (consoleReader.delete()) { }
+- def readOneLine(prompt: String) = consoleReader readLine prompt
++ def readOneLine(prompt: String) = {
++ consoleReader.setExpandEvents(false)
++ consoleReader readLine prompt
++ }
+ def readOneKey(prompt: String) = consoleReader readOneKey prompt
+ }
+diff -up scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/Parsed.scala.sysjline scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/Parsed.scala
+--- scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/Parsed.scala.sysjline 2013-10-10 21:03:24.000000000 +0200
++++ scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/Parsed.scala 2013-10-13 15:28:24.496282176 +0200
+@@ -6,7 +6,7 @@
+ package scala.tools.nsc
+ package interpreter
+
+-import scala.tools.jline.console.completer.ArgumentCompleter.{ ArgumentDelimiter, ArgumentList }
++import jline.console.completer.ArgumentCompleter.{ ArgumentDelimiter, ArgumentList }
+ import util.returning
+
+ /** One instance of a command buffer.
+diff -up scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/ReplProps.scala.sysjline scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/ReplProps.scala
+--- scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/ReplProps.scala.sysjline 2013-10-10 21:03:24.000000000 +0200
++++ scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/ReplProps.scala 2013-10-13 15:28:24.500281925 +0200
+@@ -13,8 +13,8 @@ class ReplProps {
+ private def bool(name: String) = BooleanProp.keyExists(name)
+ private def int(name: String) = IntProp(name)
+
+- val jlineDebug = bool("scala.tools.jline.internal.Log.debug")
+- val jlineTrace = bool("scala.tools.jline.internal.Log.trace")
++ val jlineDebug = bool("jline.internal.Log.debug")
++ val jlineTrace = bool("jline.internal.Log.trace")
+
+ val info = bool("scala.repl.info")
+ val debug = bool("scala.repl.debug")
+diff -up scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/session/package.scala.sysjline scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/session/package.scala
+--- scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/session/package.scala.sysjline 2013-10-10 21:03:24.000000000 +0200
++++ scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/session/package.scala 2013-10-13 15:28:24.504281675 +0200
+@@ -14,10 +14,10 @@ package object session {
+ type JIterator[T] = java.util.Iterator[T]
+ type JListIterator[T] = java.util.ListIterator[T]
+
+- type JEntry = scala.tools.jline.console.history.History.Entry
+- type JHistory = scala.tools.jline.console.history.History
+- type JMemoryHistory = scala.tools.jline.console.history.MemoryHistory
+- type JPersistentHistory = scala.tools.jline.console.history.PersistentHistory
++ type JEntry = jline.console.history.History.Entry
++ type JHistory = jline.console.history.History
++ type JMemoryHistory = jline.console.history.MemoryHistory
++ type JPersistentHistory = jline.console.history.PersistentHistory
+
+ private[interpreter] implicit def charSequenceFix(x: CharSequence): String = x.toString
+ }
diff --git a/scala-2.10.4-build_xml.patch b/scala-2.10.4-build_xml.patch
new file mode 100644
index 0000000..4d9a04b
--- /dev/null
+++ b/scala-2.10.4-build_xml.patch
@@ -0,0 +1,675 @@
+--- a/build.xml 2014-09-15 16:38:35.523938086 -0500
++++ b/build.xml 2014-09-18 14:37:16.648133327 -0500
+@@ -1,6 +1,6 @@
+
+
+-
++
+
+ SuperSabbus for Scala core, builds the scala library and compiler. It can also package it as a simple distribution, tests it for stable bootstrapping and against the Scala test suite.
+
+@@ -44,8 +44,8 @@
+
+-
+-
++
++
+
+
+
+@@ -68,7 +68,7 @@
+
+
+
+-
++
+
+
+
+@@ -89,14 +89,13 @@
+
+
+
++
+
+
+
+
+-
+-
+
+
+
+@@ -122,8 +121,8 @@
+
+
+
+-
+-
++
++
+
+
+
+@@ -181,91 +180,57 @@
+
+
+
+-
+-
+-
+-
+-
+-
+-
+-
+
+
+
+
+-
+-
+-
+-
+-
++
+
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
++
++
++
++
++
++
++
++
++
+
+-
+-
+-
+-
+-
+-
+-
++
++
++
++
++
++
++
+
+-
+-
++
++
++
++
++
++
++
++
++
++
+
+
+
+@@ -337,7 +302,7 @@
+
+
+
+-
++
+
+
+
+@@ -466,6 +431,13 @@
+
+ There must be a variable of the shape @{stage}.compiler.path for all @{stage} in starr, locker, quick, strap.
+ -->
++
++
++
++
++
++
++
+
+
+
+@@ -576,13 +548,6 @@
+
+
+
+-
+-
+-
+-
+-
+-
+-
+
+
+
+@@ -605,12 +570,10 @@
+
+
+
+-
+
+
+
+
+-
+
+
+
+@@ -647,18 +610,6 @@
+
+
+
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+
+
+
+@@ -733,10 +684,6 @@
+
+
+
+-
+-
+-
+-
+
+
+
+@@ -765,7 +712,8 @@
+
+
+
+-
++
++
+
+
+
+-
+-
+-
+
+
+-
++
+
+
+
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+
+-
++
+
+
+
+@@ -1331,7 +1258,7 @@
+
+-
++
+
+
+
+@@ -1378,7 +1305,6 @@
+
+
+
+-
+
+
+
+@@ -1386,10 +1312,7 @@
+
+
+
+-
+-
+-
+-
++
+
+
+
+@@ -1519,81 +1442,6 @@
+
+
+
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+
+@@ -1604,71 +1452,37 @@
+
+
+
+-
+-
+-
+-
+-
+-
+-
+-
+
+
+
+
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
++
+
+
+
+-
+-
+-
+-
+-
++
+
+
+
+
+-
+-
+-
+
+
+
+-
++
+
+
++
++
++ pack.bin.tool.path is ${packBinToolPath}
++
++
++
++
++
++
++
+
+
+
+@@ -1688,6 +1502,7 @@
+
+
+
++
+
+
+
+@@ -1740,15 +1555,14 @@
+
+
+
+-
+-
+-
+-
++
++
++
++
++
+
+-
+-
++
+
+-
+
+
+
+@@ -1758,12 +1572,6 @@
+
+
+
+-
+-
+-
+-
+-
+-
+
+
+
+@@ -1771,10 +1579,12 @@
+
+
+
++
+
+
+
+
++
+
+
+
+-
++
+
+
+
+-
++
+
+
+
+@@ -1836,7 +1646,6 @@
+
+
+
+-
+
+
+
+@@ -2027,10 +1836,9 @@
+
+
+
+-
++
+
+
+-
+
+
+
+@@ -2047,7 +1855,6 @@
+
+
+
+-
+
+
+
diff --git a/scala-2.10.6-scaladoc-resources.patch b/scala-2.10.6-scaladoc-resources.patch
new file mode 100644
index 0000000..86a7da6
--- /dev/null
+++ b/scala-2.10.6-scaladoc-resources.patch
@@ -0,0 +1,25 @@
+From f9b8176c668d3dff01da73fe65308bc50e355226 Mon Sep 17 00:00:00 2001
+From: Mikolaj Izdebski
+Date: Fri, 12 Oct 2018 16:43:59 +0000
+Subject: [PATCH] Stop scaladoc from bundling web assets in generated docs
+
+---
+ src/compiler/scala/tools/nsc/doc/html/HtmlFactory.scala | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/src/compiler/scala/tools/nsc/doc/html/HtmlFactory.scala b/src/compiler/scala/tools/nsc/doc/html/HtmlFactory.scala
+index 4630c3d..648a588 100644
+--- a/src/compiler/scala/tools/nsc/doc/html/HtmlFactory.scala
++++ b/src/compiler/scala/tools/nsc/doc/html/HtmlFactory.scala
+@@ -121,8 +121,6 @@ class HtmlFactory(val universe: doc.Universe, index: doc.Index) {
+
+ DiagramGenerator.initialize(universe.settings)
+
+- libResources foreach (s => copyResource("lib/" + s))
+-
+ new page.Index(universe, index) writeFor this
+ new page.IndexScript(universe, index) writeFor this
+
+--
+2.17.2
+
diff --git a/scala-bootstript.xml b/scala-bootstript.xml
new file mode 100644
index 0000000..282d412
--- /dev/null
+++ b/scala-bootstript.xml
@@ -0,0 +1,152 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/scala-library-2.10.0-bnd.properties b/scala-library-2.10.0-bnd.properties
new file mode 100644
index 0000000..eacc122
--- /dev/null
+++ b/scala-library-2.10.0-bnd.properties
@@ -0,0 +1,3 @@
+Bundle-Name: Scala Distribution
+Bundle-SymbolicName: org.scala-ide.scala.library
+Export-Package: scala.*
diff --git a/scala-mime-info.xml b/scala-mime-info.xml
new file mode 100644
index 0000000..914f6cc
--- /dev/null
+++ b/scala-mime-info.xml
@@ -0,0 +1,8 @@
+
+
+
+
+ Scala source code
+
+
+
diff --git a/scala-tooltemplate.patch b/scala-tooltemplate.patch
new file mode 100644
index 0000000..0390a1e
--- /dev/null
+++ b/scala-tooltemplate.patch
@@ -0,0 +1,66 @@
+diff -ur ../scala-2.7.4.final-sources.orig/src/compiler/scala/tools/ant/templates/tool-unix.tmpl ./src/compiler/scala/tools/ant/templates/tool-unix.tmpl
+--- ../scala-2.7.4.final-sources.orig/src/compiler/scala/tools/ant/templates/tool-unix.tmpl 2009-03-16 05:55:45.000000000 -0600
++++ ./src/compiler/scala/tools/ant/templates/tool-unix.tmpl 2009-05-18 21:34:52.000000000 -0600
+@@ -8,31 +8,14 @@
+ # 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;
+-SCALA_HOME=`dirname "$SOURCE"`/..;
+-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@"
+@@ -46,21 +29,8 @@
+ 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@"
+
+-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.classpath="$CLASSPATH" -Denv.emacs="$EMACS" @properties@ @class@ @toolflags@ "$@@"
++exec "${JAVACMD}" $JAVA_OPTS -cp "$TOOL_CLASSPATH" -Dscala.home="$SCALA_HOME" -Denv.classpath="$CLASSPATH" -Denv.emacs="$EMACS" @properties@ @class@ @toolflags@ "$@@"
diff --git a/scala.ant.d b/scala.ant.d
new file mode 100644
index 0000000..9be890a
--- /dev/null
+++ b/scala.ant.d
@@ -0,0 +1 @@
+scala
diff --git a/scala.gitinfo b/scala.gitinfo
new file mode 100644
index 0000000..fd0ff1a
--- /dev/null
+++ b/scala.gitinfo
@@ -0,0 +1,2 @@
+b66a39653b9bccab72036ba58fec5fd7d596d313
+20140209
diff --git a/scala.in b/scala.in
new file mode 100644
index 0000000..46acc0b
--- /dev/null
+++ b/scala.in
@@ -0,0 +1,46 @@
+#!/bin/sh
+
+##############################################################################
+# Scala code runner 2.6.1-RC2
+##############################################################################
+# (c) 2002-2007 LAMP/EPFL
+#
+# This is free software; see the distribution for copying conditions.
+# There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+##############################################################################
+
+[ -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
+EXTENSION_CLASSPATH=""
+if [ -z "$EXTENSION_CLASSPATH" ] ; then
+ for ext in `ls -d "$SCALA_HOME"/lib/*` ; do
+ if [ -z "$EXTENSION_CLASSPATH" ] ; then
+ EXTENSION_CLASSPATH="$ext"
+ else
+ EXTENSION_CLASSPATH="$EXTENSION_CLASSPATH:$ext"
+ fi
+ done
+fi
+EXTENSION_CLASSPATH="$EXTENSION_CLASSPATH:`build-classpath jline`"
+
+BOOT_CLASSPATH="`build-classpath scala/scala-library jline`"
+
+if [ $? != 0 ]; then
+ echo $"Could not find the scala library jar." >&2
+ echo $"Please check that Java is configured properly." >&2
+ exit 6
+fi
+
+# Reminder: substitution ${JAVA_OPTS:=-Xmx256M -Xms16M} DO NOT work on Solaris
+[ -n "$JAVA_OPTS" ] || JAVA_OPTS="-Xmx256M -Xms16M"
+
+$JAVACMD $JAVA_OPTS -Xbootclasspath/a:"$BOOT_CLASSPATH" -cp "$EXTENSION_CLASSPATH" -Dscala.home="$SCALA_HOME" -Denv.classpath="$CLASSPATH" -Denv.emacs="$EMACS" scala.tools.nsc.MainGenericRunner "$@"
diff --git a/scala.keys b/scala.keys
new file mode 100644
index 0000000..a5fe0ea
--- /dev/null
+++ b/scala.keys
@@ -0,0 +1,4 @@
+text/x-scala
+ description=Scala source code
+ category=Software Development/Source Code
+ can_be_executable=TRUE
diff --git a/scala.mime b/scala.mime
new file mode 100644
index 0000000..5d7d426
--- /dev/null
+++ b/scala.mime
@@ -0,0 +1,2 @@
+text/x-scala
+ ext: scala
diff --git a/scala.spec b/scala.spec
new file mode 100644
index 0000000..04bb4ba
--- /dev/null
+++ b/scala.spec
@@ -0,0 +1,646 @@
+%global fullversion %{version}
+%global release_repository http://nexus.scala-tools.org/content/repositories/releases
+%global snapshot_repository http://nexus.scala-tools.org/content/repositories/snapshots
+%global jansi_jar %{_javadir}/jansi/jansi.jar
+%global jline2_jar %{_javadir}/jline/jline.jar
+%global scaladir %{_datadir}/scala
+
+%global want_jdk8 1
+%global bootstrap_build 0
+
+Name: scala
+Version: 2.10.6
+Release: 19%{?dist}
+Summary: A hybrid functional/object-oriented language for the JVM
+BuildArch: noarch
+# License was confirmed to be standard BSD by fedora-legal
+# https://www.redhat.com/archives/fedora-legal-list/2007-December/msg00012.html
+# files in forkjoin module are under CC0
+# files in threadpool module are under Public Domain
+License: BSD and CC0 and Public Domain
+URL: http://www.scala-lang.org/
+
+# ./generate-tarball.sh
+Source0: %{name}-%{version}.tar.gz
+Source1: scala-library-2.10.0-bnd.properties
+# Bootstrap file generated by ./get-sources.sh
+Source2: scala-2.10.3-bootstrap.tgz
+# git information generated by ./get-sources.sh
+Source3: scala.gitinfo
+
+
+# we need this binary copy of the scala 2.10.4 compiler
+# for bootstrapping under Java 8; this can be removed if
+# necessary after Scala 2.10.5 is released if it uses 2.10.4
+# for bootstrapping.
+Source4: http://www.scala-lang.org/files/archive/scala-2.10.4.tgz
+
+# Remove bundled binaries which are possibly proprietary
+Source5: generate-tarball.sh
+
+# Source0: http://www.scala-lang.org/downloads/distrib/files/scala-sources-%%{fullversion}.tgz
+# Change the default classpath (SCALA_HOME)
+Patch1: scala-2.10.0-tooltemplate.patch
+# Use system jline2 instead of bundled jline2
+Patch2: scala-2.10.3-use_system_jline.patch
+# change org.scala-lang jline in org.sonatype.jline jline
+Patch3: scala-2.10.3-compiler-pom.patch
+# Patch Swing module for JDK 1.7
+Patch4: scala-2.10.2-java7.patch
+# fix incompatibilities with JLine 2.7
+Patch6: scala-2.10-jline.patch
+# work around a known bug when running binary-compatibility tests against
+# non-optimized builds (we can't do optimized builds due to another bug):
+# http://grokbase.com/t/gg/scala-internals/1347g1jahq/2-10-x-bc-test-fails
+# Patch7: scala-2.10.1-bc.patch
+Patch8: scala-2.10.4-build_xml.patch
+# Stop scaladoc from trying to bundle non-existent resources that were
+# removed due to being in object form only, whithout sources
+Patch9: scala-2.10.6-scaladoc-resources.patch
+
+Source21: scala.keys
+Source22: scala.mime
+Source23: scala-mime-info.xml
+Source24: scala.ant.d
+
+Source31: scala-bootstript.xml
+
+BuildRequires: java-devel >= 1:1.7.0
+BuildRequires: ant
+BuildRequires: ant-junit
+BuildRequires: ant-contrib
+BuildRequires: jline >= 2.10
+BuildRequires: aqute-bnd
+BuildRequires: junit
+BuildRequires: javapackages-local
+
+%if !(0%{?bootstrap_build})
+BuildRequires: scala
+%endif
+
+# Require full javapackages-tools since scripts use
+# /usr/share/java-utils/java-functions
+Requires: javapackages-tools
+Requires: jansi
+
+Requires: java-headless >= 1:1.7.0
+Requires: jline >= 2.10
+
+%{?filter_setup:
+%filter_from_requires /ant/d;
+%filter_setup
+}
+
+%description
+Scala is a general purpose programming language designed to express common
+programming patterns in a concise, elegant, and type-safe way. It smoothly
+integrates features of object-oriented and functional languages. It is also
+fully interoperable with Java.
+
+%package apidoc
+Summary: Documentation for the Scala programming language
+
+%description apidoc
+Scala is a general purpose programming language for the JVM that blends
+object-oriented and functional programming. This package provides
+reference and API documentation for the Scala programming language.
+
+%package swing
+Summary: The swing library for the scala programming languages
+Requires: scala = %{version}-%{release}
+Requires: java >= 1:1.7.0
+
+%description swing
+This package contains the swing library for the scala programming languages. This library is required to develope GUI-releate applications in scala. The release provided by this package
+is not the original version from upstream because this version is not compatible with JDK-1.7.
+
+%package -n ant-scala
+Summary: Development files for Scala
+Requires: scala = %{version}-%{release}, ant
+
+%description -n ant-scala
+Scala is a general purpose programming language for the JVM that blends
+object-oriented and functional programming. This package enables support for
+the scala ant tasks.
+
+%if 0
+%package examples
+Summary: Examples for the Scala programming language
+# Otherwise it will pick up some perl module
+Autoprov: 0
+Requires: scala = %{version}-%{release}
+Requires: ant
+
+%description examples
+Scala is a general purpose programming language for the JVM that blends
+object-oriented and functional programming. This package contains examples for
+the Scala programming language
+
+%package swing-examples
+Summary: Examples for the Scala Swing library
+Requires: scala = %{version}-%{release}
+Requires: ant
+
+%description swing-examples
+This package contains examples for the Swing library of the Scala language which is required
+to create GUI applications in the Scala programming language.
+%endif
+
+%prep
+
+%global _default_patch_fuzz 2
+
+%setup -q
+%patch1 -p1 -b .tool
+%patch2 -p1 -b .sysjline
+%patch3 -p1 -b .compiler-pom
+%patch4 -p1 -b .jdk7
+%patch6 -p1 -b .rvk
+# %patch7 -p1 -b .bc
+%patch8 -p1 -b .bld
+%patch9 -p1 -b .scaladoc
+
+echo "starr.version=2.10.4\nstarr.use.released=0" > starr.number
+
+pushd src
+rm -rf jline
+popd
+
+sed -i '/is not supported by/d' build.xml
+sed -i '/exec.*pull-binary-libs.sh/d' build.xml
+
+%if 0%{?bootstrap_build}
+%global do_bootstrap -DdoBootstrapBuild=yes
+tar -xzvf %{SOURCE2}
+%if %{want_jdk8}
+tar -xzvf %{SOURCE4} --strip-components=1 scala-2.10.4/lib
+%endif
+%else
+%global do_bootstrap %{nil}
+%endif
+
+pushd lib
+# fjbg.jar ch.epfl.lamp
+# forkjoin.jar scala.concurrent.forkjoin available @ https://bugzilla.redhat.com/show_bug.cgi?id=854234 as jsr166y
+# find -not \( -name 'scala-compiler.jar' -or -name 'scala-library.jar' -or -name 'midpapi10.jar' -or \
+# -name 'msil.jar' -or -name 'fjbg.jar' -or -name 'forkjoin.jar' \) -and -name '*.jar' -delete
+
+
+# midpapi10.jar https://bugzilla.redhat.com/show_bug.cgi?id=807242 ?
+# msil.jar ch.epfl.lamp.compiler
+# scala-compiler.jar
+# scala-library-src.jar
+# scala-library.jar
+%if !(0%{?bootstrap_build})
+ rm -rf scala-compiler.jar
+ ln -s $(build-classpath scala/scala-compiler.jar) scala-compiler.jar
+ rm -rf scala-library.jar
+ ln -s $(build-classpath scala/scala-library.jar) scala-library.jar
+ rm -rf scala-reflect.jar
+ ln -s $(build-classpath scala/scala-reflect.jar) scala-reflect.jar
+%endif
+ pushd ant
+ rm -rf ant.jar
+ rm -rf ant-contrib.jar
+ ln -s $(build-classpath ant.jar) ant.jar
+ ln -s $(build-classpath ant/ant-contrib) ant-contrib.jar
+# rm -rf ant-dotnet-1.0.jar
+# rm -rf maven-ant-tasks-2.1.1.jar
+# rm -rf vizant.jar
+ popd
+popd
+
+cp -rf %{SOURCE31} .
+
+
+sed -i -e 's!@JLINE@!%{jline2_jar}!g' build.xml
+
+echo echo $(head -n 1 %{SOURCE3}) > tools/get-scala-commit-sha
+echo echo $(tail -n 1 %{SOURCE3}) > tools/get-scala-commit-date
+chmod 755 tools/get-scala-*
+
+%build
+
+export ANT_OPTS="-Xms2048m -Xmx2048m %{do_bootstrap}"
+
+# NB: the "build" task is (unfortunately) necessary
+# build-opt will fail due to a scala optimizer bug
+# and its interaction with the system jline
+# ant -f scala-bootstript.xml build
+ant build docs || exit 1
+pushd build/pack/lib
+mv scala-library.jar scala-library.jar.no
+bnd wrap --properties %{SOURCE1} --output scala-library.jar \
+ --version "%{version}" scala-library.jar.no
+popd
+
+%check
+
+# these tests fail, but their failures appear spurious
+rm -f test/files/run/parserJavaIdent.scala
+rm -rf test/files/presentation/implicit-member
+rm -rf test/files/presentation/t5708
+rm -rf test/files/presentation/ide-bug-1000349
+rm -rf test/files/presentation/ide-bug-1000475
+rm -rf test/files/presentation/callcc-interpreter
+rm -rf test/files/presentation/ide-bug-1000531
+rm -rf test/files/presentation/visibility
+rm -rf test/files/presentation/ping-pong
+
+rm -f test/osgi/src/ReflectionToolboxTest.scala
+
+# fails under mock but not under rpmbuild
+rm -f test/files/run/t6223.scala
+
+## Most test dependencies still aren't available in Fedora
+# ant test
+
+%install
+
+install -d $RPM_BUILD_ROOT%{_bindir}
+for prog in scaladoc fsc scala scalac scalap; do
+ install -p -m 755 build/pack/bin/$prog $RPM_BUILD_ROOT%{_bindir}
+done
+
+install -p -m 755 -d $RPM_BUILD_ROOT%{scaladir}/lib
+
+# Add symlinks in lib directory
+%mvn_file ':{*}:jar:' %{name}/@1 %{scaladir}/lib/@1
+# Add compat symlinks to POMs because climbing-nemesis uses the old JPP naming convention
+%mvn_file ':{*}:pom:' %{name}/@1 JPP.%{name}-@1
+
+%mvn_package :scala-swing swing
+
+# XXX: add scala-partest when it works again
+for libname in scala-compiler \
+ scala-library \
+ scala-reflect \
+ scalap \
+ scala-swing ; do
+ sed -i "s|@VERSION@|%{fullversion}|" src/build/maven/$libname-pom.xml
+ sed -i "s|@RELEASE_REPOSITORY@|%{release_repository}|" src/build/maven/$libname-pom.xml
+ sed -i "s|@SNAPSHOT_REPOSITORY@|%{snapshot_repository}|" src/build/maven/$libname-pom.xml
+ %mvn_artifact src/build/maven/$libname-pom.xml build/pack/lib/$libname.jar
+done
+ln -s $(abs2rel %{jline2_jar} %{scaladir}/lib) $RPM_BUILD_ROOT%{scaladir}/lib
+ln -s $(abs2rel %{jansi_jar} %{scaladir}/lib) $RPM_BUILD_ROOT%{scaladir}/lib
+
+%mvn_install
+
+install -d $RPM_BUILD_ROOT%{_sysconfdir}/ant.d
+install -p -m 644 %{SOURCE24} $RPM_BUILD_ROOT%{_sysconfdir}/ant.d/scala
+
+%if 0
+cp -pr docs/examples $RPM_BUILD_ROOT%{_datadir}/scala/
+%endif
+
+install -d $RPM_BUILD_ROOT%{_datadir}/mime-info
+install -p -m 644 %{SOURCE21} %{SOURCE22} $RPM_BUILD_ROOT%{_datadir}/mime-info/
+
+install -d $RPM_BUILD_ROOT%{_datadir}/mime/packages/
+install -p -m 644 %{SOURCE23} $RPM_BUILD_ROOT%{_datadir}/mime/packages/
+
+sed -i -e 's,@JAVADIR@,%{_javadir},g' -e 's,@DATADIR@,%{_datadir},g' $RPM_BUILD_ROOT%{_bindir}/*
+
+install -d $RPM_BUILD_ROOT%{_mandir}/man1
+install -p -m 644 build/scaladoc/manual/man/man1/* $RPM_BUILD_ROOT%{_mandir}/man1
+
+%files -f .mfiles
+%{_bindir}/*
+%dir %{_datadir}/%{name}
+%dir %{_datadir}/%{name}/lib
+%{_datadir}/%{name}/lib/j*.jar
+%{_datadir}/mime-info/*
+%{_datadir}/mime/packages/*
+%{_mandir}/man1/*
+%license docs/LICENSE
+
+%files swing -f .mfiles-swing
+%license docs/LICENSE
+
+%files -n ant-scala
+# Following is plain config because the ant task classpath could change from
+# release to release
+%config %{_sysconfdir}/ant.d/*
+%license docs/LICENSE
+
+%files apidoc
+%doc build/scaladoc/library/*
+%license docs/LICENSE
+
+%if 0
+%files examples
+%{_datadir}/scala/examples
+%exclude %{_datadir}/scala/examples/swing
+%license docs/LICENSE
+
+%files swing-examples
+%{_datadir}/scala/examples/swing
+%license docs/LICENSE
+%endif
+
+%changelog
+* Sat Aug 01 2020 Fedora Release Engineering - 2.10.6-19
+- Second attempt - Rebuilt for
+ https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Wed Jul 29 2020 Fedora Release Engineering - 2.10.6-18
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Thu Jan 30 2020 Fedora Release Engineering - 2.10.6-17
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
+* Fri Jul 26 2019 Fedora Release Engineering - 2.10.6-16
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
+* Sat Feb 02 2019 Fedora Release Engineering - 2.10.6-15
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Fri Oct 12 2018 Mikolaj Izdebski - 2.10.6-14
+- Re-enable docs generation during build
+
+* Fri Oct 12 2018 Mikolaj Izdebski - 2.10.6-13
+- Stop scaladoc from trying to bundle non-existent resources
+- Temporarly disable docs generation during build
+
+* Tue Jul 31 2018 Severin Gehwolf - 2.10.6-12
+- Require full javapackages-tools for scripts.
+
+* Tue Jul 31 2018 Michael Simacek - 2.10.6-11
+- Correct license tag to include CC0 and Public Domain
+- Repack tarball to remove possibly proprietary binaries
+- Use %%license macro
+
+* Sat Jul 14 2018 Fedora Release Engineering - 2.10.6-10
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Tue Jul 3 2018 Mikolaj Izdebski - 2.10.6-9
+- Include bootstrap sources in SRPM
+
+* Fri Feb 09 2018 Fedora Release Engineering - 2.10.6-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Wed Jan 31 2018 Michael Simacek - 2.10.6-7
+- Port from deprecated add_maven_depmap to mvn_install
+- Remove unused BR felix-framework
+- Fix unowned directory
+
+* Thu Dec 7 2017 Mikolaj Izdebski - 2.10.6-6
+- Add missing BR on javapackages-local
+- Resolves: rhbz#1512883
+
+* Thu Jul 27 2017 Fedora Release Engineering - 2.10.6-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Fri Jul 07 2017 Igor Gnatenko - 2.10.6-4
+- Rebuild due to bug in RPM (RHBZ #1468476)
+
+* Sat Feb 11 2017 Fedora Release Engineering - 2.10.6-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Thu Jan 5 2017 Mikolaj Izdebski - 2.10.6-2
+- Update to current packaging guidelines
+- Remove legacy build conditionals
+- Remove file requires
+- Remove usage of shutil (not available on RHEL)
+
+* Wed Nov 16 2016 William Benton - 2.10.6-1
+- upstream version bump
+
+* Thu Feb 04 2016 Fedora Release Engineering - 2.10.4-9
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Thu Jul 16 2015 Michael Simacek - 2.10.4-8
+- Use aqute-bnd-2.4.1
+
+* Thu Jul 9 2015 William Benton - 2.10.4-7
+- non-bootstrap build
+
+* Thu Jul 9 2015 William Benton - 2.10.4-6
+- bootstrap build
+
+* Fri Jun 19 2015 Fedora Release Engineering - 2.10.4-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Sun May 24 2015 Peter Robinson 2.10.4-4
+- Drop ExcludeArch for ARM, can't be both noarch and arch exclusive
+
+* Wed Oct 1 2014 William Benton - 2.10.4-3
+- non-bootstrap build
+
+* Sat Sep 27 2014 Rex Dieter 2.10.4-2
+- update/optimize mime scriptlets
+
+* Mon Sep 15 2014 William Benton - 2.10.4-1
+- updated to upstream version 2.10.4
+- fixes for Java 8 compatibility: use scala 2.10.4 for bootstrapping
+
+* Sun Jun 08 2014 Fedora Release Engineering - 2.10.3-12
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Fri Feb 21 2014 Jochen Schmitt - 2.10.3-11
+- Implenting usage of headless java (#1068518)
+- Fix rpmdeps version sanity check issue
+
+* Mon Dec 9 2013 Jochen Schmitt - 2.10.3-10
+- Activate compiler-pom patch again
+
+* Sun Dec 8 2013 Jochen Schmitt - 2.10.3-9
+- Put the swing library into a seperate subpackage
+
+* Wed Nov 27 2013 Jochen Schmitt - 2.10.3-8
+- Filter osgi(org.apache.ant) Req. (#975598)
+
+* Thu Oct 31 2013 Jochen Schmitt - 2.10.3-7
+- Fix wrong condition for jline Req.
+
+* Wed Oct 30 2013 Jochen Schmitt - 2.10.3-6
+- Jline2 is now jline in Rawhide
+- Fix an issue with jansi.jar in F-20 (#1025062)
+
+* Tue Oct 22 2013 Jochen Schmitt - 2.10.3-5
+- Fix typo
+
+* Mon Oct 21 2013 Jochen Schmitt - 2.10.3-4
+- Fix jline2.jar path for Rawhide (#1021465)
+- Add jpackage-utils as a BR
+
+* Tue Oct 15 2013 Jochen Schmitt - 2.10.3-3
+- Fix change classpath of jansi.jar
+- Dynamicly setting of version in bnd.properties
+- automatic generation of gitdate and gitsha
+
+* Sun Oct 13 2013 Jochen Schmitt - 2.10.3-2
+- Fix REPL crash issue when entering an exclaimation mark (#890069)
+
+* Thu Oct 10 2013 Jochen Schmitt - 2.10.3-1
+- New upstream release
+
+* Thu Sep 26 2013 William Benton - 2.10.2-1
+- upstream version 2.10.2
+
+* Thu Sep 12 2013 William Benton - 2.10.1-4
+- updated upstream source location (thanks to Antoine Gourlay for the observation)
+
+* Wed Sep 11 2013 William Benton - 2.10.1-3
+- Fixes to build and install on F19
+
+* Sun Aug 04 2013 Fedora Release Engineering - 2.10.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
+* Sat Mar 16 2013 Jochen Schmitt - 2.10.1-1
+- New upstream releae
+
+* Thu Feb 14 2013 Fedora Release Engineering - 2.10.0-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Mon Jan 7 2013 Jochen Schmitt - 2.10.0-1
+- New upstream release
+- Add patch to use system aQuate-bnd.jar file
+
+* Thu Dec 13 2012 Jochen Schmitt - 2.10.0-0.5
+- New upstream release
+
+* Fri Dec 7 2012 Jochen Schmitt - 2.10.0-0.3
+- New upstream release
+
+* Thu Sep 13 2012 gil cattaneo 2.9.2-1
+- update to 2.9.2
+- added maven poms
+- adapted to current guideline
+- built with java 7 support
+- removed ant-nodeps from buildrequires
+- disabled swing module
+
+* Sat Jul 21 2012 Fedora Release Engineering - 2.9.1-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Sat Jan 14 2012 Fedora Release Engineering - 2.9.1-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Sun Nov 27 2011 Jochen Schmitt - 2.9.1-2
+- Build explicit agains java-1.6.0
+
+* Thu Nov 3 2011 Jochen Schmitt - 2.9.1-1
+- New upstream release
+
+* Wed Feb 09 2011 Fedora Release Engineering - 2.8.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Thu Dec 9 2010 Jochen Schmitt - 2.8.1-1
+- New upstream release (#661853)
+
+* Sun Aug 15 2010 Geoff Reedy - 2.8.0-1
+- Update to upstream 2.8.0 release
+
+* Thu Oct 29 2009 Geoff Reedy - 2.7.7-1
+- Update to upstream 2.7.7 release
+
+* Sat Sep 19 2009 Geoff Reedy - 2.7.5-1
+- Update to upstream 2.7.5 release
+
+* Sun Jul 26 2009 Fedora Release Engineering - 2.7.4-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Mon May 18 2009 Geoff Reedy - 2.7.4-5
+- fix problem in tooltemplate patch
+
+* Mon May 18 2009 Geoff Reedy - 2.7.4-4
+- make jline implicitly available to match upstream behavior
+
+* Mon May 18 2009 Geoff Reedy - 2.7.4-3
+- fix problem with substitutions to scripts in %%install
+
+* Mon May 18 2009 Geoff Reedy - 2.7.4-2
+- fix launcher scripts by modifying template, not overriding them
+
+* Tue May 12 2009 Geoff Reedy - 2.7.4-1
+- update to 2.7.4 final
+
+* Wed Feb 25 2009 Fedora Release Engineering - 2.7.3-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
+* Wed Jan 21 2009 Geoff Reedy - 2.7.3-1
+- update to 2.7.3 final
+
+* Sun Nov 09 2008 Geoff Reedy - 2.7.2-1
+- update to 2.7.2 final
+
+* Mon Nov 03 2008 Geoff Reedy - 2.7.2-0.3.RC6
+- bump release to fix upgrade path
+
+* Sat Nov 01 2008 Geoff Reedy - 2.7.2-0.1.RC6
+- update to 2.7.2-RC6
+
+* Thu Oct 30 2008 Geoff Reedy - 2.7.2-0.1.RC5
+- update to 2.7.2-RC5
+
+* Sat Sep 06 2008 Geoff Reedy - 2.7.2-0.2.RC1
+- All code is now under BSD license
+- Remove dll so and exe binaries in prep
+- Add BuildRequires required by Java packaging guidelines
+- Add missing defattr for examples and ant-scala
+
+* Wed Aug 20 2008 Geoff Reedy - 2.7.2-0.1.RC1
+- update to 2.7.2-RC1
+
+* Wed Aug 13 2008 Geoff Reedy - 2.7.1-3
+- regenerate classpath in manifest patch to apply cleanly to 2.7.1
+
+* Wed Aug 13 2008 Geoff Reedy - 2.7.1-2
+- no changes, accidental release bump
+
+* Mon May 05 2008 Geoff Reedy - 2.7.1-1
+- Update to 2.7.1
+
+* Fri May 02 2008 Geoff Reedy - 2.7.0-2
+- Use java-sdk-openjdk for non-fc8 builds
+
+* Mon Mar 10 2008 Geoff Reedy - 2.7.0-1
+- Update to 2.7.0
+- License now correctly indicated as BSD and LGPLv2+
+- Include LICENSE file in apidoc subpackage
+
+* Mon Feb 11 2008 Geoff Reedy - 2.6.1-8
+- Adhere more strongly to the emacs package guidelines
+- Include some comments regarding the boot-strapping process
+
+* Wed Jan 16 2008 Geoff Reedy - 2.6.1-7
+- Add dist tag to release
+- Fix directory ownership issues in %%_datadir/scala
+- Remove source code from -devel package
+- Rename -devel package to ant-scala
+- Fix packaging of gtksourceview2 language spec
+- Preserve timestamps when installing and cping
+- Add patch to remove Class-Path entries from jar manifests
+- Fix line endings in enscript/README
+
+* Sun Jan 13 2008 Geoff Reedy - 2.6.1-6
+- Include further information about inclusion of binary distribution
+- Unpack only those files needed from the binary distribution
+- Include note about license approval
+
+* Thu Dec 27 2007 Geoff Reedy - 2.6.1-5
+- Add emacs(bin) BR
+- Patch out call to subversion in build.xml
+- Add pkgconfig to BuildRequires
+
+* Thu Dec 27 2007 Geoff Reedy - 2.6.1-4
+- Reformat emacs-scala description
+- Expand tabs to spaces
+- Fix -devel symlinks
+- Better base package summary
+
+* Wed Dec 26 2007 Geoff Reedy - 2.6.1-3
+- Add ant config to devel package
+- Require icedtea for build
+- Move examples to %%{_datadir}/scala/examples
+- Clean up package descriptions
+- Add base package requirement for scala-examples and scala-devel
+
+* Wed Dec 26 2007 Geoff Reedy - 2.6.1-2
+- Fix post scripts
+- Use spaces instead of tabs
+
+* Wed Dec 26 2007 Geoff Reedy - 2.6.1-1
+- Initial build.
diff --git a/scalac.in b/scalac.in
new file mode 100644
index 0000000..8755ba0
--- /dev/null
+++ b/scalac.in
@@ -0,0 +1,45 @@
+#!/bin/sh
+
+##############################################################################
+# Scala compiler 2.6.1-RC2
+##############################################################################
+# (c) 2002-2007 LAMP/EPFL
+#
+# This is free software; see the distribution for copying conditions.
+# There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+##############################################################################
+
+[ -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
+EXTENSION_CLASSPATH=""
+if [ -z "$EXTENSION_CLASSPATH" ] ; then
+ for ext in `ls -d "$SCALA_HOME"/lib/*` ; do
+ if [ -z "$EXTENSION_CLASSPATH" ] ; then
+ EXTENSION_CLASSPATH="$ext"
+ else
+ EXTENSION_CLASSPATH="$EXTENSION_CLASSPATH:$ext"
+ fi
+ done
+fi
+
+BOOT_CLASSPATH="`build-classpath scala/scala-library jline`"
+
+if [ $? != 0 ]; then
+ echo $"Could not find the scala library jar." >&2
+ echo $"Please check that Java is configured properly." >&2
+ exit 6
+fi
+
+# Reminder: substitution ${JAVA_OPTS:=-Xmx256M -Xms16M} DO NOT work on Solaris
+[ -n "$JAVA_OPTS" ] || JAVA_OPTS="-Xmx256M -Xms16M"
+
+$JAVACMD $JAVA_OPTS -Xbootclasspath/a:"$BOOT_CLASSPATH" -cp "$EXTENSION_CLASSPATH" -Dscala.home="$SCALA_HOME" -Denv.classpath="$CLASSPATH" -Denv.emacs="$EMACS" scala.tools.nsc.Main "$@"
diff --git a/scaladoc.in b/scaladoc.in
new file mode 100644
index 0000000..da23eae
--- /dev/null
+++ b/scaladoc.in
@@ -0,0 +1,45 @@
+#!/bin/sh
+
+##############################################################################
+# Scala doc generator 2.6.1-RC2
+##############################################################################
+# (c) 2002-2007 LAMP/EPFL
+#
+# This is free software; see the distribution for copying conditions.
+# There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+##############################################################################
+
+[ -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
+EXTENSION_CLASSPATH=""
+if [ -z "$EXTENSION_CLASSPATH" ] ; then
+ for ext in `ls -d "$SCALA_HOME"/lib/*` ; do
+ if [ -z "$EXTENSION_CLASSPATH" ] ; then
+ EXTENSION_CLASSPATH="$ext"
+ else
+ EXTENSION_CLASSPATH="$EXTENSION_CLASSPATH:$ext"
+ fi
+ done
+fi
+
+BOOT_CLASSPATH="`build-classpath scala/scala-library`"
+
+if [ $? != 0 ]; then
+ echo $"Could not find the scala library jar." >&2
+ echo $"Please check that Java is configured properly." >&2
+ exit 6
+fi
+
+# Reminder: substitution ${JAVA_OPTS:=-Xmx256M -Xms16M} DO NOT work on Solaris
+[ -n "$JAVA_OPTS" ] || JAVA_OPTS="-Xmx256M -Xms16M"
+
+$JAVACMD $JAVA_OPTS -Xbootclasspath/a:"$BOOT_CLASSPATH" -cp "$EXTENSION_CLASSPATH" -Dscala.home="$SCALA_HOME" -Denv.classpath="$CLASSPATH" -Denv.emacs="$EMACS" scala.tools.nsc.Main -Ydoc "$@"
diff --git a/sources b/sources
new file mode 100644
index 0000000..8669ecb
--- /dev/null
+++ b/sources
@@ -0,0 +1,3 @@
+SHA512 (scala-2.10.6.tar.gz) = 2023caedb8d497fd1effd81da54620f6dd44b17ba874016cf43f822965864c68243a436098106384f6daf420bca6301511d8a8843c3dc2ed834cef248e111768
+SHA512 (scala-2.10.3-bootstrap.tgz) = 3f48680ed578454852bb50f1132eaed7335e83a66a8a1991eeca30d23d72fccb9ee7161e504b1a68d3ae208853213e9507f50134f89b1074cc817436f0e9abfd
+SHA512 (scala-2.10.4.tgz) = 06ad6d70e12a0e4b65b04e847212b4622b1a9c96b009b0f519d054f0af347231acd52c1c107108ff1fab93807cb12aa6e51a67f60118f5e43851833613694ecf