From f5f165006372cc6892719f85e86f838d00c81df0b6d81082e63b3165c1a9df35 Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Thu, 14 Feb 2019 16:34:56 +0000 Subject: [PATCH] Accepting request 676190 from home:fstrba:maven OBS-URL: https://build.opensuse.org/request/show/676190 OBS-URL: https://build.opensuse.org/package/show/Java:packages/scala?expand=0&rev=1 --- .gitattributes | 23 + .gitignore | 1 + _multibuild | 3 + fsc.in | 45 ++ generate-tarball.sh | 26 + get-source.sh | 21 + scala-2.10-jline.patch | 107 ++++ scala-2.10.0-bnd.patch | 22 + scala-2.10.0-java7.patch | 237 +++++++++ scala-2.10.0-tooltemplate.patch | 21 + scala-2.10.0-use_system_jline.patch | 135 ++++++ scala-2.10.1-bc.patch | 28 ++ scala-2.10.2-java7.patch | 198 ++++++++ scala-2.10.3-bootstrap.tgz | 3 + scala-2.10.3-build_xml.patch | 635 ++++++++++++++++++++++++ scala-2.10.3-compiler-pom.patch | 15 + scala-2.10.3-use_system_jline.patch | 109 +++++ scala-2.10.4-build_xml.patch | 675 ++++++++++++++++++++++++++ scala-2.10.4.tgz | 3 + scala-2.10.6-scaladoc-resources.patch | 25 + scala-2.10.6.tar.gz | 3 + scala-bootstript.xml | 152 ++++++ scala-library-2.10.0-bnd.properties | 3 + scala-mime-info.xml | 8 + scala-tooltemplate.patch | 66 +++ scala.ant.d | 1 + scala.gitinfo | 2 + scala.in | 46 ++ scala.keys | 4 + scala.mime | 2 + scala.spec | 351 ++++++++++++++ scalac.in | 45 ++ scaladoc.in | 45 ++ sources | 3 + 34 files changed, 3063 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 _multibuild create mode 100644 fsc.in create mode 100644 generate-tarball.sh create mode 100644 get-source.sh create mode 100644 scala-2.10-jline.patch create mode 100644 scala-2.10.0-bnd.patch create mode 100644 scala-2.10.0-java7.patch create mode 100644 scala-2.10.0-tooltemplate.patch create mode 100644 scala-2.10.0-use_system_jline.patch create mode 100644 scala-2.10.1-bc.patch create mode 100644 scala-2.10.2-java7.patch create mode 100644 scala-2.10.3-bootstrap.tgz create mode 100644 scala-2.10.3-build_xml.patch create mode 100644 scala-2.10.3-compiler-pom.patch create mode 100644 scala-2.10.3-use_system_jline.patch create mode 100644 scala-2.10.4-build_xml.patch create mode 100644 scala-2.10.4.tgz create mode 100644 scala-2.10.6-scaladoc-resources.patch create mode 100644 scala-2.10.6.tar.gz create mode 100644 scala-bootstript.xml create mode 100644 scala-library-2.10.0-bnd.properties create mode 100644 scala-mime-info.xml create mode 100644 scala-tooltemplate.patch create mode 100644 scala.ant.d create mode 100644 scala.gitinfo create mode 100644 scala.in create mode 100644 scala.keys create mode 100644 scala.mime create mode 100644 scala.spec create mode 100644 scalac.in create mode 100644 scaladoc.in create mode 100644 sources diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..93032d2 --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + bootstrap + diff --git a/fsc.in b/fsc.in new file mode 100644 index 0000000..72e9f83 --- /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 100644 index 0000000..88fbb28 --- /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 czf "../${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 100644 index 0000000..1280c66 --- /dev/null +++ b/get-source.sh @@ -0,0 +1,21 @@ +#!/bin/sh +set -x + +VER="$(sed -n 's/Version:\s*//p' *.spec)" + +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/ diff --git a/scala-2.10-jline.patch b/scala-2.10-jline.patch new file mode 100644 index 0000000..eff11a7 --- /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..724e2df --- /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..64ac2d7 --- /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..7b9ae67 --- /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..87612cf --- /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..4f5b6c3 --- /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..891f4de --- /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-bootstrap.tgz b/scala-2.10.3-bootstrap.tgz new file mode 100644 index 0000000..79b8276 --- /dev/null +++ b/scala-2.10.3-bootstrap.tgz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc73608f70f4339bd9fbaec71b029d7e8d41007d80a18837e77a21d261af9a76 +size 27218643 diff --git a/scala-2.10.3-build_xml.patch b/scala-2.10.3-build_xml.patch new file mode 100644 index 0000000..a1e59ff --- /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..83b0505 --- /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..df2d1ba --- /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..4649034 --- /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.4.tgz b/scala-2.10.4.tgz new file mode 100644 index 0000000..5fea6c2 --- /dev/null +++ b/scala-2.10.4.tgz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b46db638c5c6066eee21f00c447fc13d1dfedbfb60d07db544e79db67ba810c3 +size 29937534 diff --git a/scala-2.10.6-scaladoc-resources.patch b/scala-2.10.6-scaladoc-resources.patch new file mode 100644 index 0000000..83940d4 --- /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-2.10.6.tar.gz b/scala-2.10.6.tar.gz new file mode 100644 index 0000000..e340f8c --- /dev/null +++ b/scala-2.10.6.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b5effeefd1da8bab690f5c1251ed9da1dd2d8f375a2aa6deaa08aa1dca9dfd8 +size 5490733 diff --git a/scala-bootstript.xml b/scala-bootstript.xml new file mode 100644 index 0000000..b30caa1 --- /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..179b4e6 --- /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..bc3e00b --- /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..28d087a --- /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..0037f1b --- /dev/null +++ b/scala.ant.d @@ -0,0 +1 @@ +scala diff --git a/scala.gitinfo b/scala.gitinfo new file mode 100644 index 0000000..4a1b8cd --- /dev/null +++ b/scala.gitinfo @@ -0,0 +1,2 @@ +bda53196ebbeb1369c70f3d1ec066796c06a6409 +20150918 diff --git a/scala.in b/scala.in new file mode 100644 index 0000000..1979ca8 --- /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..1bf3524 --- /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..a7d0f34 --- /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..08b1e59 --- /dev/null +++ b/scala.spec @@ -0,0 +1,351 @@ +# +# spec file for package scala +# +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "bootstrap" +%bcond_without bootstrap +%else +%bcond_with bootstrap +%endif +%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 base_name scala +%global want_jdk8 1 +%define __requires_exclude .*org\.apache\.ant.* +Version: 2.10.6 +Release: 0 +Summary: A hybrid functional/object-oriented language for the JVM +# 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 SUSE-Public-Domain +Group: Development/Libraries/Java +URL: http://www.scala-lang.org/ +# ./generate-tarball.sh +Source0: %{base_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 +Source21: scala.keys +Source22: scala.mime +Source23: scala-mime-info.xml +Source24: scala.ant.d +Source31: scala-bootstript.xml +# 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 +BuildRequires: ant +BuildRequires: ant-contrib +BuildRequires: ant-junit +BuildRequires: aqute-bnd +BuildRequires: graphviz +BuildRequires: java-devel >= 1.7 +BuildRequires: javapackages-local +BuildRequires: jline >= 2.10 +BuildRequires: junit +BuildConflicts: java-devel >= 9 +Requires: jansi +Requires: java-headless >= 1.7 +# Require full javapackages-tools since scripts use +# /usr/share/java-utils/java-functions +Requires: javapackages-tools +Requires: jline >= 2.10 +BuildArch: noarch +%if %{with bootstrap} +Name: %{base_name}-bootstrap +Provides: %{base_name} +%else +Name: %{base_name} +BuildRequires: %{base_name} +Provides: %{base_name}-bootstrap +Obsoletes: %{base_name}-bootstrap +%endif + +%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: java >= 1.7 +Requires: scala = %{version}-%{release} + +%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-%{name} +Summary: Development files for Scala +Requires: ant +Requires: scala = %{version}-%{release} + +%description -n ant-%{name} +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 +Requires: ant +Requires: scala = %{version}-%{release} +# Otherwise it will pick up some perl module +Autoprov: 0 + +%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: ant +Requires: scala = %{version}-%{release} + +%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 -n %{base_name}-%{version} +%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 %{with bootstrap} +%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 +%if %{without bootstrap} + 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 + 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}" + +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 %{buildroot}%{_bindir} +for prog in scaladoc fsc scala scalac scalap; do + install -p -m 755 build/pack/bin/$prog %{buildroot}%{_bindir} +done + +install -p -m 755 -d %{buildroot}%{scaladir}/lib + +# Add symlinks in lib directory +%{mvn_file} ':{*}:jar:' %{base_name}/@1 %{scaladir}/lib/@1 +# Add compat symlinks to POMs because climbing-nemesis uses the old JPP naming convention +%{mvn_file} ':{*}:pom:' %{base_name}/@1 JPP.%{base_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) %{buildroot}%{scaladir}/lib +ln -s $(abs2rel %{jansi_jar} %{scaladir}/lib) %{buildroot}%{scaladir}/lib + +%mvn_install + +install -d %{buildroot}%{_sysconfdir}/ant.d +install -p -m 644 %{SOURCE24} %{buildroot}%{_sysconfdir}/ant.d/scala + +%if 0 +cp -pr docs/examples %{buildroot}%{_datadir}/scala/ +%endif + +install -d %{buildroot}%{_datadir}/mime-info +install -p -m 644 %{SOURCE21} %{SOURCE22} %{buildroot}%{_datadir}/mime-info/ + +install -d %{buildroot}%{_datadir}/mime/packages/ +install -p -m 644 %{SOURCE23} %{buildroot}%{_datadir}/mime/packages/ + +sed -i -e 's,@JAVADIR@,%{_javadir},g' -e 's,@DATADIR@,%{_datadir},g' %{buildroot}%{_bindir}/* + +install -d %{buildroot}%{_mandir}/man1 +install -p -m 644 build/scaladoc/manual/man/man1/* %{buildroot}%{_mandir}/man1 + +%post +touch --no-create %{_datadir}/mime/packages &> /dev/null || : + +%postun +if [ $1 -eq 0 ]; then +update-mime-database %{_datadir}/mime &> /dev/null || : +fi + +%posttrans +update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || : + +%files -f .mfiles +%{_bindir}/* +%dir %{_datadir}/%{base_name} +%dir %{_datadir}/%{base_name}/lib +%{_datadir}/%{base_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-%{name} +# 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 diff --git a/scalac.in b/scalac.in new file mode 100644 index 0000000..b6d8f55 --- /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..7da793f --- /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..32221a1 --- /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