import scala-2.10.6-14.module+el8+2477+516cbbff

This commit is contained in:
CentOS Sources 2021-07-13 02:22:56 +00:00 committed by Andrew Lukoshko
commit 8c1382546a
18 changed files with 1995 additions and 0 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
SOURCES/scala-2.10.3-bootstrap.tgz
SOURCES/scala-2.10.4.tgz
SOURCES/scala-2.10.6.tar.gz

3
.scala.metadata Normal file
View File

@ -0,0 +1,3 @@
847973d0b034305d15ab21ae193e120e6d172c8b SOURCES/scala-2.10.3-bootstrap.tgz
970f779f155719838e81a267a7418a958fd4c13f SOURCES/scala-2.10.4.tgz
4ce90dfbe5b6fe8474cbad67932c39cee20ee6dc SOURCES/scala-2.10.6.tar.gz

26
SOURCES/generate-tarball.sh Executable file
View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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 <code>javax.swing.ListCellRenderer<code>s
*/
- 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 <code>A</code>. The given function
@@ -55,8 +55,8 @@ object ListView {
* </code>
*/
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 <code>toString</code>.
*/
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

View File

@ -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>@VERSION@</version>
</dependency>
<dependency>
- <groupId>org.scala-lang</groupId>
+ <groupId>jline</groupId>
<artifactId>jline</artifactId>
- <version>@VERSION@</version>
+ <version>2.10</version>
<optional>true</optional>
</dependency>
</dependencies>

View File

@ -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
}

View File

@ -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 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project name="sabbus" default="build" xmlns:artifact="urn:maven-artifact-ant">
+<project name="sabbus" default="build">
<description>
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.
</description>
@@ -44,8 +44,8 @@
<!-- ===========================================================================
END-USER TARGETS
============================================================================ -->
- <target name="build" depends="pack.done" description="Builds the Scala compiler and library. Executables are in 'build/pack/bin'."/>
- <target name="test" depends="test.done" description="Runs test suite and bootstrapping test on Scala compiler and library."/>
+ <target name="build" depends="quick.done, pack.bin" description="Builds the Scala compiler and library. Executables are in 'build/pack/bin'."/>
+ <target name="test" description="Runs test suite and bootstrapping test on Scala compiler and library."/>
<target name="docs" depends="docs.done" description="Builds documentation for the Scala library. Scaladoc is in 'build/scaladoc/library'."/>
<target name="docscomp" depends="docs.comp" description="Builds documentation for the Scala compiler and library. Scaladoc is in 'build/scaladoc'."/>
<target name="dist" depends="all.clean, all.done" description="Cleans all and builds and tests a new distribution."/>
@@ -68,7 +68,7 @@
<target name="distpack-opt" description="Builds an optimised distribution."> <optimized name="distpack"/></target>
<target name="distpack-maven-opt" description="Builds an optimised maven distribution."><optimized name="distpack-maven"/></target>
- <target name="all.done" depends="dist.done, test.done"/>
+ <target name="all.done" depends="dist.done"/>
<!-- must use depends for all.done, not antcall: need the properties defined in there (dist.dir) -->
<target name="nightly-nopt" depends="all.done, docs.done">
@@ -89,14 +89,13 @@
</sequential>
</macrodef>
+
<!-- ===========================================================================
PROPERTIES
============================================================================ -->
<property environment="env"/>
<!-- Prevents system classpath from being used -->
- <property name="build.sysclasspath" value="ignore"/>
-
<!-- Defines the repository layout -->
<property name="docs.dir" value="${basedir}/docs"/>
<property name="lib.dir" value="${basedir}/lib"/>
@@ -122,8 +121,8 @@
<property name="reflect.starr.jar" value="${lib.dir}/scala-reflect.jar"/>
<property name="compiler.starr.jar" value="${lib.dir}/scala-compiler.jar"/>
<property name="msil.starr.jar" value="${lib.dir}/msil.jar"/>
- <property name="jline.jar" value="${lib.dir}/jline.jar"/>
- <property name="ant.jar" value="${ant.home}/lib/ant.jar"/>
+ <property name="jline.jar" value="@JLINE@"/>
+ <property name="ant.jar" value="/usr/share/java/ant.jar"/>
<property name="scalacheck.jar" value="${lib.dir}/scalacheck.jar"/>
<!-- Sets location of build folders -->
@@ -181,91 +180,57 @@
</target>
<target name="boot" depends="desired.jars.uptodate" unless="lib.jars.uptodate">
- <echo level="warn" message="Updating bootstrap libs. (To do this by hand, run ./pull-binary-libs.sh)"/>
- <exec osfamily="unix" vmlauncher="false" executable="./pull-binary-libs.sh" failifexecutionfails="true" />
- <exec osfamily="windows" vmlauncher="false" executable="pull-binary-libs.sh" failifexecutionfails="true" />
- <!-- uptodate task needs to know these are what's in the sha. -->
- <touch>
- <fileset dir="${basedir}"><patternset refid="desired.jars"/></fileset>
- <mapper type="glob" from="*.desired.sha1" to="*"/>
- </touch>
</target>
<target name="init" depends="boot">
<!-- Set up Ant contrib tasks so we can use <if><then><else> instead of the clunky `unless` attribute -->
- <taskdef resource="net/sf/antcontrib/antlib.xml" classpath="${lib-ant.dir}/ant-contrib.jar"/>
-
- <!-- Add our maven ant tasks -->
- <path id="maven-ant-tasks.classpath" path="${lib-ant.dir}/maven-ant-tasks-2.1.1.jar" />
- <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant" classpathref="maven-ant-tasks.classpath" />
+ <taskdef resource="net/sf/antcontrib/antlib.xml" classpath="/usr/share/java/ant-contrib/ant-contrib.jar"/>
- <!-- Resolve maven dependencies -->
-
- <!-- work around http://jira.codehaus.org/browse/MANTTASKS-203:
- java.lang.ClassCastException: org.codehaus.plexus.DefaultPlexusContainer cannot be cast to org.codehaus.plexus.PlexusContainer
- on repeated use of artifact:dependencies
- -->
- <if><not><isset property="maven-deps-done"></isset></not><then>
- <mkdir dir="${user.home}/.m2/repository"/>
- <!-- This task has an issue where if the user directory does not exist, so we create it above. UGH. -->
- <artifact:dependencies pathId="extra.tasks.classpath" filesetId="extra.tasks.fileset">
- <dependency groupId="biz.aQute" artifactId="bnd" version="1.50.0"/>
- </artifact:dependencies>
-
- <!-- JUnit -->
- <property name="junit.version" value="4.10"/>
- <artifact:dependencies pathId="junit.classpath" filesetId="junit.fileset">
- <dependency groupId="junit" artifactId="junit" version="${junit.version}"/>
- </artifact:dependencies>
-
- <!-- Pax runner -->
- <property name="pax.exam.version" value="2.6.0"/>
- <artifact:dependencies pathId="pax.exam.classpath" filesetId="pax.exam.fileset">
- <dependency groupId="org.ops4j.pax.exam" artifactId="pax-exam-container-native" version="${pax.exam.version}"/>
- <dependency groupId="org.ops4j.pax.exam" artifactId="pax-exam-junit4" version="${pax.exam.version}"/>
- <dependency groupId="org.ops4j.pax.exam" artifactId="pax-exam-link-assembly" version="${pax.exam.version}"/>
- <!-- upgraded to 1.6.0 to get fix for https://ops4j1.jira.com/browse/PAXURL-217
- https://ops4j1.jira.com/browse/PAXURL-138 is still unresolved... -->
- <dependency groupId="org.ops4j.pax.url" artifactId="pax-url-aether" version="1.6.0"/>
- <dependency groupId="org.ops4j.pax.swissbox" artifactId="pax-swissbox-framework" version="1.5.1"/>
- <dependency groupId="ch.qos.logback" artifactId="logback-core" version="0.9.20"/>
- <dependency groupId="ch.qos.logback" artifactId="logback-classic" version="0.9.20"/>
- <dependency groupId="junit" artifactId="junit" version="${junit.version}"/>
- <dependency groupId="org.apache.felix" artifactId="org.apache.felix.framework" version="3.2.2"/>
- </artifact:dependencies>
-
-
- <artifact:dependencies pathId="partest.extras.classpath" filesetId="partest.extras.fileset" versionsId="partest.extras.versions">
- <dependency groupId="com.googlecode.java-diff-utils" artifactId="diffutils" version="1.3.0"/>
- </artifact:dependencies>
-
- <!-- BND support -->
- <typedef resource="aQute/bnd/ant/taskdef.properties" classpathref="extra.tasks.classpath" />
-
- <artifact:remoteRepository id="extra-repo" url="${extra.repo.url}"/>
-
- <!-- Download STARR via maven if `starr.use.released` is set,
- and `starr.version` is specified (see the starr.number properties file).
- Want to slow down STARR changes, using only released versions. -->
- <if><isset property="starr.use.released"/><then>
- <echo message="Using Scala ${starr.version} for STARR."/>
- <artifact:dependencies pathId="starr.core.path">
- <artifact:remoteRepository refid="extra-repo"/>
- <dependency groupId="org.scala-lang" artifactId="scala-library" version="${starr.version}"/>
- <dependency groupId="org.scala-lang" artifactId="scala-reflect" version="${starr.version}"/>
- <dependency groupId="org.scala-lang" artifactId="scala-compiler" version="${starr.version}"/>
- </artifact:dependencies></then>
+ <if>
+ <isset property="doBootstrapBuild"></isset>
+ <then>
+ <path id="scalabootstrap.classpath">
+ <fileset dir="lib">
+ <include name="scala*.jar"/>
+ </fileset>
+ </path>
+ </then>
<else>
- <path id="starr.core.path">
- <pathelement location="${library.starr.jar}"/>
- <pathelement location="${reflect.starr.jar}"/>
- <pathelement location="${compiler.starr.jar}"/>
- <pathelement location="${msil.starr.jar}"/>
- </path></else>
- </if>
+ <path id="scalabootstrap.classpath">
+ <fileset dir="/usr/share/scala/lib/">
+ <include name="scala*.jar"/>
+ </fileset>
+ </path>
+ </else>
+ </if>
- <property name="maven-deps-done" value="yep!"/>
- </then></if>
+ <taskdef name="classloadVerify"
+ classpathref="scalabootstrap.classpath"
+ classname="scala.tools.ant.ClassloadVerify"/>
+ <taskdef name="fsc"
+ classpathref="scalabootstrap.classpath"
+ classname="scala.tools.ant.FastScalac"/>
+ <taskdef name="scalac"
+ classpathref="scalabootstrap.classpath"
+ classname="scala.tools.ant.Scalac"/>
+ <taskdef name="scalascript"
+ classpathref="scalabootstrap.classpath"
+ classname="scala.tools.ant.ScalaTool"/>
+ <taskdef name="scaladoc"
+ classpathref="scalabootstrap.classpath"
+ classname="scala.tools.ant.Scaladoc"/>
+ <taskdef name="scalatool"
+ classpathref="scalabootstrap.classpath"
+ classname="scala.tools.ant.ScalaTool"/>
+ <taskdef name="same"
+ classpathref="scalabootstrap.classpath"
+ classname="scala.tools.ant.Same"/>
+ <taskdef name="pack200"
+ classpathref="scalabootstrap.classpath"
+ classname="scala.tools.ant.Pack200Task"/>
+
+ <typedef resource="aQute/bnd/ant/taskdef.properties"
+ classpath="/usr/share/java/aqute-bnd.jar" />
<!-- NOTE: ant properties are write-once: second writes are silently discarded; the logic below relies on this -->
@@ -337,7 +302,7 @@
<if><isset property="build.release"/><then>
<property name="version.number" value="${maven.version.number}"/>
</then><else>
- <property name="version.number" value="${version.major}.${version.minor}.${version.patch}${version.suffix}-${git.commit.date}-${git.commit.sha}"/>
+ <property name="version.number" value="${version.major}.${version.minor}.${version.patch}${version.suffix}"/>
</else></if>
<condition property="has.java6">
@@ -466,6 +431,13 @@
There must be a variable of the shape @{stage}.compiler.path for all @{stage} in starr, locker, quick, strap.
-->
+ <path id="starr.core.path">
+ <pathelement location="${library.starr.jar}"/>
+ <pathelement location="${reflect.starr.jar}"/>
+ <pathelement location="${compiler.starr.jar}"/>
+ <pathelement location="${msil.starr.jar}"/>
+ </path>
+
<path id="starr.compiler.path">
<path refid="starr.core.path"/>
<pathelement location="${lib.dir}/forkjoin.jar"/>
@@ -576,13 +548,6 @@
<path id="quick.scalap.build.path">
<path refid="quick.compiler.build.path"/>
<pathelement location="${build-quick.dir}/classes/scalap"/>
- <pathelement location="${build-quick.dir}/classes/partest"/>
- </path>
-
- <path id="quick.partest.build.path">
- <path refid="quick.scalap.build.path"/>
- <path refid="partest.extras.classpath"/>
- <pathelement location="${scalacheck.jar}"/>
</path>
<path id="quick.bin.tool.path">
@@ -605,12 +570,10 @@
<pathelement location="${build-pack.dir}/lib/scala-library.jar"/>
<pathelement location="${build-pack.dir}/lib/scala-reflect.jar"/>
<pathelement location="${build-pack.dir}/lib/scala-compiler.jar"/>
- <pathelement location="${build-pack.dir}/lib/scala-partest.jar"/>
<pathelement location="${build-pack.dir}/lib/scalap.jar"/>
<pathelement location="${build-pack.dir}/lib/scala-actors.jar"/>
<pathelement location="${ant.jar}"/>
<pathelement location="${jline.jar}"/>
- <path refid="partest.extras.classpath"/>
<path refid="aux.libs"/>
</path>
@@ -647,18 +610,6 @@
<path id="pack.scalap.files"> <fileset dir="${build-quick.dir}/classes/scalap"/>
<fileset file="${src.dir}/scalap/decoder.properties"/> </path>
- <path id="pack.partest.files">
- <fileset dir="${build-quick.dir}/classes/partest">
- <exclude name="scala/tools/partest/javaagent/**"/>
- </fileset>
- </path>
-
- <path id="pack.partest-javaagent.files">
- <fileset dir="${build-quick.dir}/classes/partest">
- <include name="scala/tools/partest/javaagent/**"/>
- </fileset>
- </path>
-
<!-- STRAP -->
<path id="strap.library.build.path">
<pathelement location="${build-strap.dir}/classes/library"/>
@@ -733,10 +684,6 @@
<path id="test.positions.sub.build.path" path="${build-quick.dir}/classes/library"/>
<!-- TODO: consolidate *.includes -->
- <patternset id="partest.includes">
- <include name="**/*.xml"/>
- </patternset>
-
<patternset id="lib.includes">
<include name="**/*.tmpl"/>
<include name="**/*.xml"/>
@@ -765,7 +712,8 @@
<include name="**/*.txt"/>
</patternset>
- <taskdef resource="scala/tools/ant/sabbus/antlib.xml" classpathref="starr.compiler.path"/>
+ <taskdef resource="scala/tools/ant/sabbus/antlib.xml" classpathref="starr.compiler.path"/>
+
</target>
<!-- ===========================================================================
@@ -811,7 +759,8 @@
classpath="${@{project}-classes}"
includes="**/*.java"
target="1.6" source="1.5"
- compiler="javac1.6">
+ compiler="javac1.6"
+ includeantruntime="false" >
<compilerarg line="${javac.args} @{args}"/>
</javac>
<if><equals arg1="@{jar}" arg2="yes"/><then>
@@ -844,6 +793,7 @@
destdir="${build-@{stage}.dir}/classes/@{destproject}"
includes="**/*.java"
excludes="@{excludes}"
+ includeantruntime="false"
target="1.6" source="1.5">
<compilerarg line="${javac.args} @{args}"/>
<classpath refid="@{stage}.@{destproject}.build.path"/>
@@ -1015,7 +965,7 @@
</srcfiles>
</check>
<do>
- <taskdef name="mk-bin" classname="scala.tools.ant.ScalaTool" classpathref="@{stage}.bin.tool.path"/>
+ <taskdef name="mk-bin" classname="scala.tools.ant.ScalaTool" classpathref="starr.core.path"/>
<mkdir dir="${build-@{stage}.dir}/bin"/>
<if><equals arg1="@{classpathref}" arg2="NOT SET"/><then>
<mk-bin file="${build-@{stage}.dir}/bin/scala" class="scala.tools.nsc.MainGenericRunner" javaFlags="${java.flags}"/>
@@ -1183,10 +1133,7 @@
<target name="quick.scalap" depends="quick.comp">
<staged-build with="locker" stage="quick" project="scalap"/> </target>
- <target name="quick.partest" depends="quick.scalap, quick.comp, asm.done">
- <staged-build with="locker" stage="quick" project="partest" version="partest"/> </target>
-
- <target name="quick.swing" depends="quick.actors, quick.lib" if="has.java6">
+ <target name="quick.swing" depends="quick.actors, quick.lib">
<staged-build with="locker" stage="quick" project="swing"/> </target>
<target name="quick.plugins" depends="quick.comp">
@@ -1222,7 +1169,7 @@
</staged-uptodate>
</target>
- <target name="quick.bin" depends="quick.lib, quick.reflect, quick.comp, quick.scalacheck, quick.scalap, quick.swing, quick.plugins, quick.partest">
+ <target name="quick.bin" depends="quick.lib, quick.reflect, quick.comp, quick.scalacheck, quick.scalap, quick.swing, quick.plugins">
<staged-bin stage="quick" classpathref="quick.bin.tool.path"/>
</target>
@@ -1237,7 +1184,7 @@
<staged-pack project="library"/></target>
<target name="pack.actors" depends="quick.lib"> <staged-pack project="actors"/> </target>
- <target name="pack.swing" if="has.java6" depends="quick.swing"> <staged-pack project="swing"/> </target>
+ <target name="pack.swing" depends="quick.swing"> <staged-pack project="swing"/> </target>
<target name="pack.reflect" depends="quick.reflect"> <staged-pack project="reflect"/> </target>
<target name="pack.comp" depends="quick.comp, asm.done">
@@ -1267,36 +1214,16 @@
<target name="pack.plugins" depends="quick.plugins"> <staged-pack project="plugins" targetdir="misc/scala-devel/plugins" targetjar="continuations.jar"/> </target>
<target name="pack.scalacheck" depends="quick.scalacheck"> <staged-pack project="scalacheck" targetjar="scalacheck.jar"/> </target>
- <target name="pack.partest" depends="quick.partest">
- <staged-pack project="partest"/>
- <!-- TODO the manifest should influence actuality of this target -->
- <staged-pack project="partest-javaagent" manifest="${src.dir}/partest/scala/tools/partest/javaagent/MANIFEST.MF"/>
- </target>
-
<target name="pack.scalap" depends="quick.scalap"> <staged-pack project="scalap" targetjar="scalap.jar"/> </target>
- <target name="pack.bin" depends="pack.comp, pack.lib, pack.actors, pack.partest, pack.plugins, pack.reflect, pack.scalacheck, pack.scalap, pack.swing">
+ <target name="pack.bin" depends="pack.comp, pack.lib, pack.actors, pack.plugins, pack.reflect, pack.scalacheck, pack.scalap, pack.swing">
<staged-bin stage="pack"/>
</target>
- <!-- depend on quick.done so quick.bin is run when pack.done is -->
- <target name="pack.done" depends="quick.done, pack.bin">
- <!-- copy dependencies to build/pack/lib, it only takes a second so don't bother with uptodate checks -->
- <copy todir="${build-pack.dir}/lib">
- <resources refid="partest.extras.fileset"/>
- <mapper classpathref="maven-ant-tasks.classpath" classname="org.apache.maven.artifact.ant.VersionMapper"
- from="${partest.extras.versions}" to="flatten"/>
- </copy>
-
- <taskdef resource="scala/tools/ant/antlib.xml" classpathref="pack.compiler.path"/>
- <taskdef resource="scala/tools/partest/antlib.xml" classpathref="partest.classpath"/>
- </target>
-
-
<!-- ===========================================================================
BOOTSTRAPPING BUILD (STRAP)
============================================================================ -->
- <target name="strap.done" depends="pack.done">
+ <target name="strap.done" depends="quick.done, pack.bin">
<staged-build with="pack" stage="strap" project="library" srcpath="${src.dir}/library" includes="lib.rootdoc.includes"/>
<staged-build with="pack" stage="strap" project="msil" java-excludes="**/tests/**"/>
<staged-build with="pack" stage="strap" project="reflect"/>
@@ -1331,7 +1258,7 @@
<!-- ===========================================================================
OSGi Artifacts
============================================================================ -->
- <target name="osgi.done" depends="pack.done">
+ <target name="osgi.done" depends="quick.done, pack.bin">
<mkdir dir="${build-osgi.dir}"/>
<!-- simplify fixing pom versions -->
@@ -1378,7 +1305,6 @@
</uptodate>
<if><not><isset property="osgi.bundles.available"/></not><then>
- <stopwatch name="osgi.bundle.timer"/>
<make-bundle name="scala-library" version="${osgi.version.number}" />
<make-bundle name="scala-actors" version="${osgi.version.number}" />
<make-bundle name="scala-reflect" version="${osgi.version.number}" />
@@ -1386,10 +1312,7 @@
<make-plugin-bundle name="continuations" version="${osgi.version.number}" />
<touch file="${build-osgi.dir}/bundles.complete" verbose="no"/>
- <if><isset property="has.java6"/><then>
- <make-bundle name="scala-swing" version="${osgi.version.number}"/></then>
- </if>
- <stopwatch name="osgi.bundle.timer" action="total"/></then>
+ <make-bundle name="scala-swing" version="${osgi.version.number}"/></then>
</if>
</target>
@@ -1519,81 +1442,6 @@
<stopwatch name="test.junit.timer" action="total"/>
</target>
- <property name="partest.srcdir" value="files" /> <!-- TODO: make targets for `pending` and other subdirs -->
-
- <target name="test.run" depends="pack.done">
- <partest showlog="yes" erroronfailed="yes" javacmd="${java.home}/bin/java"
- timeout="1200000"
- srcdir="${partest.srcdir}"
- scalacopts="${scalac.args.optimise}">
-
- <compilationpath refid="partest.build.path"/>
- <runtests dir="${partest.dir}/${partest.srcdir}/run" includes="*.scala"/>
- <jvmtests dir="${partest.dir}/${partest.srcdir}/jvm" includes="*.scala"/>
- </partest>
- </target>
-
- <target name="test.suite" depends="pack.done">
- <partest showlog="yes" erroronfailed="yes" javacmd="${java.home}/bin/java"
- timeout="2400000"
- srcdir="${partest.srcdir}"
- scalacopts="${scalac.args.optimise}">
- <compilationpath refid="partest.build.path"/>
- <postests dir="${partest.dir}/${partest.srcdir}/pos" includes="*.scala"/>
- <negtests dir="${partest.dir}/${partest.srcdir}/neg" includes="*.scala"/>
- <runtests dir="${partest.dir}/${partest.srcdir}/run" includes="*.scala"/>
- <jvmtests dir="${partest.dir}/${partest.srcdir}/jvm" includes="*.scala"/>
- <residenttests dir="${partest.dir}/${partest.srcdir}/res" includes="*.res"/>
- <buildmanagertests dir="${partest.dir}/${partest.srcdir}/buildmanager" includes="*"/>
- <scalaptests dir="${partest.dir}/${partest.srcdir}/scalap" includes="**/*.scala"/>
- <scalachecktests dir="${partest.dir}/${partest.srcdir}/scalacheck">
- <include name="*.scala"/>
- </scalachecktests>
- <specializedtests dir="${partest.dir}/${partest.srcdir}/specialized">
- <include name="*.scala"/>
- </specializedtests>
- <instrumentedtests dir="${partest.dir}/${partest.srcdir}/instrumented">
- <include name="*.scala"/>
- </instrumentedtests>
- </partest>
- </target>
-
- <target name="test.continuations.suite" depends="pack.done">
- <partest showlog="yes" erroronfailed="yes" javacmd="${java.home}/bin/java"
- timeout="2400000"
- srcdir="${partest.srcdir}"
- scalacopts="${scalac.args.optimise} -Xplugin-require:continuations -P:continuations:enable">
- <compilerarg value="-Xpluginsdir"/>
- <compilerarg file="${build-quick.dir}/misc/scala-devel/plugins"/>
- <compilationpath refid="partest.build.path"/>
- <negtests dir="${partest.dir}/${partest.srcdir}/continuations-neg" includes="*.scala"/>
- <runtests dir="${partest.dir}/${partest.srcdir}/continuations-run" includes="*.scala"/>
- </partest>
- </target>
-
- <target name="test.scaladoc" depends="pack.done">
- <partest erroronfailed="yes" scalacopts="${scalac.args.optimise}" showlog="yes">
- <compilationpath refid="partest.build.path"/>
- <runtests dir="${partest.dir}/scaladoc/run" includes="*.scala" />
- <scalachecktests dir="${partest.dir}/scaladoc/scalacheck" includes="*.scala" />
- </partest>
- </target>
-
- <target name="test.interactive" depends="pack.done">
- <partest erroronfailed="yes" scalacopts="${scalac.args.optimise}" showlog="yes">
- <compilationpath refid="partest.build.path"/>
- <presentationtests dir="${partest.dir}/${partest.srcdir}/presentation">
- <include name="*/*.scala"/>
- </presentationtests>
- </partest>
- </target>
-
- <!-- for use in PR validation, where stability is rarely broken, so we're going to use starr for locker,
- and skip test.stability (which requires locker == quick) -->
- <target name="test.core" depends="test.osgi, test.sbt, test.bc, test.junit, test.interactive, test.continuations.suite, test.scaladoc, test.suite"/>
- <target name="test.done" depends="test.core, test.stability"/>
-
-
<!-- ===========================================================================
BINARY COMPATIBILITY TESTING
============================================================================ -->
@@ -1604,71 +1452,37 @@
<!-- Obtain mima -->
<mkdir dir="${bc-build.dir}"/>
<!-- Pull down MIMA -->
- <artifact:dependencies pathId="mima.classpath">
- <dependency groupId="com.typesafe" artifactId="mima-reporter_2.10" version="0.1.6"/>
- </artifact:dependencies>
- <artifact:dependencies pathId="old.bc.classpath">
- <dependency groupId="org.scala-lang" artifactId="scala-swing" version="${bc-reference-version}"/>
- <dependency groupId="org.scala-lang" artifactId="scala-library" version="${bc-reference-version}"/>
- <dependency groupId="org.scala-lang" artifactId="scala-reflect" version="${bc-reference-version}"/>
- </artifact:dependencies>
<property name="maven-deps-done-mima" value="true"/>
</target>
<macrodef name="bc.run-mima">
- <attribute name="jar-name"/>
- <attribute name="prev"/>
- <attribute name="curr"/>
- <attribute name="direction"/>
- <sequential>
- <echo message="Checking @{direction} binary compatibility for @{jar-name} (against ${bc-reference-version})"/>
- <java taskname="mima"
- fork="true"
- failonerror="true"
- classname="com.typesafe.tools.mima.cli.Main">
- <arg value="--prev"/>
- <arg value="@{prev}"/>
- <arg value="--curr"/>
- <arg value="@{curr}"/>
- <arg value="--filters"/>
- <arg value="${basedir}/bincompat-@{direction}.whitelist.conf"/>
- <arg value="--generate-filters"/>
- <classpath>
- <path refid="mima.classpath"/>
- </classpath>
- </java>
- </sequential>
+ <sequential></sequential>
</macrodef>
<macrodef name="bc.check">
- <attribute name="jar-name"/>
- <sequential>
- <bc.run-mima
- jar-name="@{jar-name}"
- prev="${org.scala-lang:@{jar-name}:jar}"
- curr="${build-pack.dir}/lib/@{jar-name}.jar"
- direction="backward"/>
- <bc.run-mima
- jar-name="@{jar-name}"
- prev="${build-pack.dir}/lib/@{jar-name}.jar"
- curr="${org.scala-lang:@{jar-name}:jar}"
- direction="forward"/>
- </sequential>
+ <sequential></sequential>
</macrodef>
<target name="test.bc-opt" description="Optimized version of test.bc."> <optimized name="test.bc"/></target>
<target name="test.bc" depends="bc.init, pack.lib, pack.reflect, pack.swing">
- <bc.check jar-name="scala-library"/>
- <bc.check jar-name="scala-reflect"/>
- <bc.check jar-name="scala-swing"/>
</target>
<!-- ===========================================================================
DOCUMENTATION
============================================================================ -->
- <target name="docs.start" depends="pack.done">
+ <target name="docs.start" depends="quick.done, pack.bin">
<!-- Set the github commit scaladoc sources point to -->
<!-- For releases, look for the tag with the same name as the maven version -->
+
+ <pathconvert property="packBinToolPath" refid="pack.bin.tool.path"/>
+ <echo>pack.bin.tool.path is ${packBinToolPath}</echo>
+
+ <taskdef name="scaladoc" classname="scala.tools.ant.Scaladoc">
+ <classpath>
+ <path refid="starr.core.path"/>
+ </classpath>
+ </taskdef>
+
<condition property="scaladoc.git.commit" value="v${maven.version.number}">
<isset property="build.release"/>
</condition>
@@ -1688,6 +1502,7 @@
</target>
<target name="docs.lib" depends="docs.start">
+
<staged-uptodate stage="docs" project="library">
<check><srcfiles dir="${src.dir}">
<include name="library/**"/>
@@ -1740,15 +1555,14 @@
</target>
<target name="docs.comp" depends="docs.start">
- <staged-docs project="compiler" title="Scala Compiler" docroot="rootdoc.txt">
- <include name="**/*.scala"/>
- </staged-docs>
- </target>
+ <taskdef name="scaladoc" classname="scala.tools.ant.Scaladoc">
+ <classpath>
+ <path refid="starr.core.path"/>
+ </classpath>
+ </taskdef>
- <target name="docs.jline" depends="docs.start">
- <staged-docs project="jline" dir="jline/src/main/java" title="Scala JLine">
+ <staged-docs project="compiler" title="Scala Compiler" docroot="rootdoc.txt">
<include name="**/*.scala"/>
- <include name="**/*.java"/>
</staged-docs>
</target>
@@ -1758,12 +1572,6 @@
</staged-docs>
</target>
- <target name="docs.partest" depends="docs.start">
- <staged-docs project="partest" title="Scala Parallel Testing Framework">
- <include name="**/*.scala"/>
- </staged-docs>
- </target>
-
<target name="docs.continuations-plugin" depends="docs.start">
<staged-docs project="continuations-plugin" dir="continuations/plugin" title="Delimited Continuations Compiler Plugin">
<include name="**/*.scala"/>
@@ -1771,10 +1579,12 @@
</target>
<target name="docs.man" depends="docs.start">
+ <taskdef resource="scala/tools/ant/sabbus/antlib.xml" classpathref="starr.compiler.path"/>
<staged-uptodate stage="docs" project="manual">
<check><srcfiles dir="${src.dir}/manual"/></check>
<do>
<mkdir dir="${build.dir}/manmaker/classes"/>
+
<scalac
destdir="${build.dir}/manmaker/classes"
classpathref="pack.compiler.path"
@@ -1807,13 +1617,13 @@
</staged-uptodate>
</target>
- <target name="docs.done" depends="docs.jline, docs.comp, docs.man, docs.lib, docs.scalap, docs.partest, docs.continuations-plugin"/>
+ <target name="docs.done" depends="docs.comp, docs.man, docs.lib, docs.scalap, docs.continuations-plugin"/>
<!-- ===========================================================================
DISTRIBUTION
============================================================================ -->
- <target name="dist.base" depends="pack.done, osgi.done">
+ <target name="dist.base" depends="quick.done, pack.bin, osgi.done">
<property name="dist.name" value="scala-${version.number}"/>
<property name="dist.dir" value="${dists.dir}/${dist.name}"/>
@@ -1836,7 +1646,6 @@
<mkdir dir="${dist.dir}/lib"/>
<copy toDir="${dist.dir}/lib">
<fileset dir="${build-pack.dir}/lib">
- <include name="jline.jar"/>
<include name="scala-partest.jar"/> <!-- needed for maven publish -->
<include name="scalap.jar"/>
</fileset>
@@ -2027,10 +1836,9 @@
</fail>
<!-- needs antcall to enforce ordering -->
<antcall target="locker.clean"/>
- <antcall target="pack.done"/>
+ <antcall target="quick.done, pack.bin"/>
<antcall target="starr.done"/>
<antcall target="locker.clean"/>
- <antcall target="test.done"/>
</target>
<target name="replacestarr-opt" description="Replaces the Starr compiler and library by fresh, optimised ones built from current sources and tests them.">
@@ -2047,7 +1855,6 @@
<echo message="CAUTION: Make sure to execute 'ant locker.clean build' prior to calling 'replacestarrwin'."/>
<antcall target="starr.done"/>
<antcall target="locker.clean"/>
- <antcall target="test.done"/>
</target>
<target name="replacestarrwin-opt" description="Creates a new Starr on Windows. Manually execute 'ant locker.clean build' first!">

View File

@ -0,0 +1,25 @@
From f9b8176c668d3dff01da73fe65308bc50e355226 Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk@redhat.com>
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

View File

@ -0,0 +1,152 @@
<?xml version="1.0"?>
<!-- scala 2.10.0-RC3 build file by gil -->
<!-- for rebuild only this scala components -->
<project name="scala-components" basedir=".">
<property name="version" value="2.10.0-RC3"/>
<property name="lib.dir" value="${basedir}/lib"/>
<property name="fjbg.dir" value="${basedir}/fjbg"/>
<property name="fjbg.src.dir" value="${basedir}/src/fjbg"/>
<property name="fjbg.build.dir" value="${fjbg.dir}/classes"/>
<property name="fjbg.jar" value="${basedir}/lib/fjbg.jar"/>
<property name="forkjoin.dir" value="${basedir}/forkjoin"/>
<property name="forkjoin.src.dir" value="${basedir}/src/forkjoin"/>
<property name="forkjoin.build.dir" value="${forkjoin.dir}/classes"/>
<property name="forkjoin.jar" value="${basedir}/lib/forkjoin.jar"/>
<property name="msil.dir" value="${basedir}/msil"/>
<property name="msil.src.dir" value="${basedir}/src/msil"/>
<property name="msil.build.dir" value="${msil.dir}/classes/msil"/>
<property name="msil.jar" value="${basedir}/lib/msil.jar"/>
<target name="build"
depends="build.fjbg,build.forkjoin,build.msil" description="Compile the sources">
</target>
<target name="dist" depends="clean,build"
description="generate the distribution" >
</target>
<target name="clean">
<delete file="${fjbg.jar}" />
<delete file="${forkjoin.jar}" />
<delete file="${msil.jar}" />
<delete dir="${fjbg.dir}" />
<delete dir="${forkjoin.dir}" />
<delete dir="${msil.dir}" />
</target>
<path id="scalac.classpath">
<fileset dir="/usr/share/java" includes="ant.jar"/>
<fileset dir="${lib.dir}" includes="scala-compiler.jar"/>
<fileset dir="${lib.dir}" includes="scala-library.jar"/>
<fileset dir="${lib.dir}" includes="scala-reflect.jar"/>
<fileset dir="${basedir}/lib" includes="fjbg.jar"/>
<fileset dir="${basedir}/lib" includes="forkjoin.jar"/>
<pathelement location="${msil.build.dir}"/>
</path>
<target name="build.fjbg" description="Build Scala fjbg component">
<compile-javac
dirsrc="${fjbg.src.dir}"
destfile="${fjbg.build.dir}"/>
<make-jar
basedir="${fjbg.build.dir}"
destfile="${fjbg.jar}"/>
</target>
<target name="build.forkjoin" description="Build Scala forkjoin component">
<compile-javac
dirsrc="${forkjoin.src.dir}"
destfile="${forkjoin.build.dir}"/>
<make-jar
basedir="${forkjoin.build.dir}"
destfile="${forkjoin.jar}"/>
</target>
<target name="build.msil" description="Build Scala msil component">
<mkdir dir="${msil.build.dir}"/>
<compile-scala
dirsrc="${msil.src.dir}"
destfile="${msil.build.dir}" />
<make-jar
basedir="${msil.build.dir}"
destfile="${msil.jar}"/>
</target>
<macrodef name="compile-javac">
<attribute name="destfile"/>
<attribute name="dirsrc"/>
<attribute name="excludes" default=""/>
<attribute name="includes" default=""/>
<attribute name="buildclasspath" default=""/>
<sequential>
<mkdir dir="@{destfile}"/>
<javac
srcdir="@{dirsrc}"
destdir="@{destfile}"
debug="true"
target="1.5" source="1.5">
<exclude name="@{excludes}"/>
</javac>
</sequential>
</macrodef>
<taskdef name="scalac" classname="scala.tools.ant.sabbus.ScalacFork" classpathref="scalac.classpath"/>
<macrodef name="compile-scala">
<attribute name="destfile"/>
<attribute name="dirsrc"/>
<attribute name="excludes" default=""/>
<attribute name="includes" default=""/>
<attribute name="buildclasspath" default=""/>
<sequential>
<javac
srcdir="@{dirsrc}"
destdir="@{destfile}"
includes="**/*.java"
excludes="**/tests/**"
debug="true"
target="1.5" source="1.5">
</javac>
<scalac
srcdir="@{dirsrc}"
destdir="@{destfile}"
compilerpathref="scalac.classpath">
<include name="**/*.scala"/>
<compilationpath>
<pathelement location="${msil.build.dir}"/>
<pathelement location="/usr/share/java/ant.jar"/>
<pathelement location="${lib.dir}/scala-compiler.jar"/>
<pathelement location="${lib.dir}/scala-library.jar"/>
<pathelement location="${lib.dir}/scala-reflect.jar"/>
<pathelement location="${basedir}/lib/fjbg.jar"/>
<pathelement location="${basedir}/lib/forkjoin.jar"/>
</compilationpath>
</scalac>
</sequential>
</macrodef>
<macrodef name="make-jar">
<attribute name="destfile"/>
<attribute name="basedir"/>
<attribute name="excludes" default=""/>
<attribute name="includes" default="**"/>
<attribute name="resources" default=""/>
<attribute name="paramvalue" default=""/>
<sequential>
<jar destfile="@{destfile}"
basedir="@{basedir}"
includes="@{includes}">
</jar>
</sequential>
</macrodef>
</project>

View File

@ -0,0 +1,3 @@
Bundle-Name: Scala Distribution
Bundle-SymbolicName: org.scala-ide.scala.library
Export-Package: scala.*

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="text/x-scala">
<sub-class-of type="text/plain"/>
<comment>Scala source code</comment>
<glob pattern="*.scala" />
</mime-type>
</mime-info>

1
SOURCES/scala.ant.d Normal file
View File

@ -0,0 +1 @@
scala

2
SOURCES/scala.gitinfo Normal file
View File

@ -0,0 +1,2 @@
b66a39653b9bccab72036ba58fec5fd7d596d313
20140209

4
SOURCES/scala.keys Normal file
View File

@ -0,0 +1,4 @@
text/x-scala
description=Scala source code
category=Software Development/Source Code
can_be_executable=TRUE

2
SOURCES/scala.mime Normal file
View File

@ -0,0 +1,2 @@
text/x-scala
ext: scala

641
SPECS/scala.spec Normal file
View File

@ -0,0 +1,641 @@
%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: 14%{?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
%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}/%{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
* Fri Oct 12 2018 Mikolaj Izdebski <mizdebsk@redhat.com> - 2.10.6-14
- Re-enable docs generation during build
* Fri Oct 12 2018 Mikolaj Izdebski <mizdebsk@redhat.com> - 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 <sgehwolf@redhat.com> - 2.10.6-12
- Require full javapackages-tools for scripts.
* Tue Jul 31 2018 Michael Simacek <msimacek@redhat.com> - 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 <releng@fedoraproject.org> - 2.10.6-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Jul 3 2018 Mikolaj Izdebski <mizdebsk@redhat.com> - 2.10.6-9
- Include bootstrap sources in SRPM
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.10.6-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Wed Jan 31 2018 Michael Simacek <msimacek@redhat.com> - 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 <mizdebsk@redhat.com> - 2.10.6-6
- Add missing BR on javapackages-local
- Resolves: rhbz#1512883
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.10.6-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Fri Jul 07 2017 Igor Gnatenko <ignatenko@redhat.com> - 2.10.6-4
- Rebuild due to bug in RPM (RHBZ #1468476)
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.10.6-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Thu Jan 5 2017 Mikolaj Izdebski <mizdebsk@redhat.com> - 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 <willb@redhat.com> - 2.10.6-1
- upstream version bump
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.10.4-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Thu Jul 16 2015 Michael Simacek <msimacek@redhat.com> - 2.10.4-8
- Use aqute-bnd-2.4.1
* Thu Jul 9 2015 William Benton <willb@redhat.com> - 2.10.4-7
- non-bootstrap build
* Thu Jul 9 2015 William Benton <willb@redhat.com> - 2.10.4-6
- bootstrap build
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.10.4-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Sun May 24 2015 Peter Robinson <pbrobinson@fedoraproject.org> 2.10.4-4
- Drop ExcludeArch for ARM, can't be both noarch and arch exclusive
* Wed Oct 1 2014 William Benton <willb@redhat.com> - 2.10.4-3
- non-bootstrap build
* Sat Sep 27 2014 Rex Dieter <rdieter@fedoraproject.org> 2.10.4-2
- update/optimize mime scriptlets
* Mon Sep 15 2014 William Benton <willb@redhat.com> - 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 <rel-eng@lists.fedoraproject.org> - 2.10.3-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Fri Feb 21 2014 Jochen Schmitt <Jochen herr-schmitt de> - 2.10.3-11
- Implenting usage of headless java (#1068518)
- Fix rpmdeps version sanity check issue
* Mon Dec 9 2013 Jochen Schmitt <Jochen herr-schmitt de> - 2.10.3-10
- Activate compiler-pom patch again
* Sun Dec 8 2013 Jochen Schmitt <Jochen herr-schmitt de> - 2.10.3-9
- Put the swing library into a seperate subpackage
* Wed Nov 27 2013 Jochen Schmitt <Jochen herr-schmitt de> - 2.10.3-8
- Filter osgi(org.apache.ant) Req. (#975598)
* Thu Oct 31 2013 Jochen Schmitt <Jochen herr-schmitt de> - 2.10.3-7
- Fix wrong condition for jline Req.
* Wed Oct 30 2013 Jochen Schmitt <Jochen herr-schmitt de> - 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 <Jochen herr-schmitt de> - 2.10.3-5
- Fix typo
* Mon Oct 21 2013 Jochen Schmitt <Jochen herr-schmitt de> - 2.10.3-4
- Fix jline2.jar path for Rawhide (#1021465)
- Add jpackage-utils as a BR
* Tue Oct 15 2013 Jochen Schmitt <Jochen herr-schmitt de> - 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 <Jochen herr-schmitt de> - 2.10.3-2
- Fix REPL crash issue when entering an exclaimation mark (#890069)
* Thu Oct 10 2013 Jochen Schmitt <Jochen herr-schmitt de> - 2.10.3-1
- New upstream release
* Thu Sep 26 2013 William Benton <willb@redhat.com> - 2.10.2-1
- upstream version 2.10.2
* Thu Sep 12 2013 William Benton <willb@redhat.com> - 2.10.1-4
- updated upstream source location (thanks to Antoine Gourlay for the observation)
* Wed Sep 11 2013 William Benton <willb@redhat.com> - 2.10.1-3
- Fixes to build and install on F19
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.10.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Sat Mar 16 2013 Jochen Schmitt <Jochen herr-schmitt de> - 2.10.1-1
- New upstream releae
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.10.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Mon Jan 7 2013 Jochen Schmitt <Jochen herr-schmitt de> - 2.10.0-1
- New upstream release
- Add patch to use system aQuate-bnd.jar file
* Thu Dec 13 2012 Jochen Schmitt <s4504kr@omega.in.herr-schmitt.de> - 2.10.0-0.5
- New upstream release
* Fri Dec 7 2012 Jochen Schmitt <Jochen herr-schmitt de> - 2.10.0-0.3
- New upstream release
* Thu Sep 13 2012 gil cattaneo <puntogil@libero.it> 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 <JOchen herr-schmitt de> - 2.9.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.9.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Sun Nov 27 2011 Jochen Schmitt <Jochen herr-schmitt de> - 2.9.1-2
- Build explicit agains java-1.6.0
* Thu Nov 3 2011 Jochen Schmitt <Jochen herr-schmitt de> - 2.9.1-1
- New upstream release
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.8.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Thu Dec 9 2010 Jochen Schmitt <Jochen herr-schmitt de> - 2.8.1-1
- New upstream release (#661853)
* Sun Aug 15 2010 Geoff Reedy <geoff@programmer-monk.net> - 2.8.0-1
- Update to upstream 2.8.0 release
* Thu Oct 29 2009 Geoff Reedy <geoff@programmer-monk.net> - 2.7.7-1
- Update to upstream 2.7.7 release
* Sat Sep 19 2009 Geoff Reedy <geoff@programmer-monk.net> - 2.7.5-1
- Update to upstream 2.7.5 release
* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.7.4-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Mon May 18 2009 Geoff Reedy <geoff@programmer-monk.net> - 2.7.4-5
- fix problem in tooltemplate patch
* Mon May 18 2009 Geoff Reedy <geoff@programmer-monk.net> - 2.7.4-4
- make jline implicitly available to match upstream behavior
* Mon May 18 2009 Geoff Reedy <geoff@programmer-monk.net> - 2.7.4-3
- fix problem with substitutions to scripts in %%install
* Mon May 18 2009 Geoff Reedy <geoff@programmer-monk.net> - 2.7.4-2
- fix launcher scripts by modifying template, not overriding them
* Tue May 12 2009 Geoff Reedy <geoff@programmer-monk.net> - 2.7.4-1
- update to 2.7.4 final
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.7.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Wed Jan 21 2009 Geoff Reedy <geoff@programmer-monk.net> - 2.7.3-1
- update to 2.7.3 final
* Sun Nov 09 2008 Geoff Reedy <geoff@programmer-monk.net> - 2.7.2-1
- update to 2.7.2 final
* Mon Nov 03 2008 Geoff Reedy <geoff@programmer-monk.net> - 2.7.2-0.3.RC6
- bump release to fix upgrade path
* Sat Nov 01 2008 Geoff Reedy <geoff@programmer-monk.net> - 2.7.2-0.1.RC6
- update to 2.7.2-RC6
* Thu Oct 30 2008 Geoff Reedy <geoff@programmer-monk.net> - 2.7.2-0.1.RC5
- update to 2.7.2-RC5
* Sat Sep 06 2008 Geoff Reedy <geoff@programmer-monk.net> - 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 <geoff@programmer-monk.net> - 2.7.2-0.1.RC1
- update to 2.7.2-RC1
* Wed Aug 13 2008 Geoff Reedy <geoff@programmer-monk.net> - 2.7.1-3
- regenerate classpath in manifest patch to apply cleanly to 2.7.1
* Wed Aug 13 2008 Geoff Reedy <geoff@programmer-monk.net> - 2.7.1-2
- no changes, accidental release bump
* Mon May 05 2008 Geoff Reedy <geoff@programmer-monk.net> - 2.7.1-1
- Update to 2.7.1
* Fri May 02 2008 Geoff Reedy <geoff@programmer-monk.net> - 2.7.0-2
- Use java-sdk-openjdk for non-fc8 builds
* Mon Mar 10 2008 Geoff Reedy <geoff@programmer-monk.net> - 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 <geoff@programmer-monk.net> - 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 <geoff@programmer-monk.net> - 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 <geoff@programmer-monk.net> - 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 <geoff@programmer-monk.net> - 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 <geoff@programmer-monk.net> - 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 <geoff@programmer-monk.net> - 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 <geoff@programmer-monk.net> - 2.6.1-2
- Fix post scripts
- Use spaces instead of tabs
* Wed Dec 26 2007 Geoff Reedy <geoff@programmer-monk.net> - 2.6.1-1
- Initial build.