Building Scala 3.x - linux-on-ibm-z/docs GitHub Wiki

Building Scala

Below versions of Scala are available in respective distributions at the time of creation of these build instructions:

  • Ubuntu 20.04 has 2.11.12-4
  • Ubuntu 22.04 has 2.11.12-5
  • RHEL (8.6, 8.8) has 2.10.6

The instructions provided below specify the steps to build Scala version 3.3.3 on Linux on IBM Z Systems for following distributions:

  • RHEL (7.8, 7.9, 8.6, 8.8, 8.9, 9.0, 9.2, 9.3)
  • SLES (12 SP5, 15 SP5)
  • Ubuntu (20.04, 22.04, 23.10)

General Notes:

  • When following the steps below please use a standard permission user unless otherwise specified.
  • A directory /<source_root>/ will be referred to in these instructions. This is a temporary writable directory anywhere you'd like to place it.

Step 1: Build and Install Scala

1.1) Install the dependencies

export SOURCE_ROOT=/<source_root>/
  • RHEL (7.8, 7.9, 8.6, 8.8, 8.9, 9.0, 9.2, 9.3)

    • With OpenJDK

      sudo yum install -y java-17-openjdk-devel wget        # for JAVA 17 (Except RHEL 7.x)
      sudo yum install -y java-11-openjdk-devel wget        # for JAVA 11
      sudo yum install -y java-1.8.0-openjdk-devel wget     # for JAVA 8
      
    • With IBM Semeru Runtime (previously known as AdoptOpenJDK openj9)

      sudo yum install -y tar wget
      
      • Download and install IBM Semeru Runtime (Java 8, 11, 17) from here.
    • With AdoptOpenJDK8 hotspot

       sudo yum install -y tar wget
       sudo yum install -y gcc make   # for RHEL 9.x
      
      • Download and install AdoptOpenJDK8 from here
    • With Eclipse Adoptium Temurin Runtime (previously known as AdoptOpenJDK hotspot)

      sudo yum install -y tar wget
      
      • Download and install Eclipse Adoptium Temurin Runtime (Java 11, 17) from here.
  • SLES (12 SP5, 15 SP5)

    • With OpenJDK

      sudo zypper install -y java-17-openjdk-devel wget          # JAVA 17 (Except SLES 12 SP5)
      sudo zypper install -y java-11-openjdk-devel wget          # JAVA 11
      sudo zypper install -y java-1_8_0-openjdk-devel wget       # JAVA 8
      
    • With IBM Semeru Runtime (previously known as AdoptOpenJDK openj9)

      sudo zypper install -y tar wget gzip
      
      • Download and install IBM Semeru Runtime (Java 8, 11, 17) from here.
    • With AdoptOpenJDK8 hotspot

      sudo yum install -y tar wget gcc make
      
      • Download and install AdoptOpenJDK8 from here
    • With Eclipse Adoptium Temurin Runtime (previously known as AdoptOpenJDK hotspot)

      sudo zypper install -y tar wget gzip
      
      • Download and install Eclipse Adoptium Temurin Runtime (Java 11, 17) from here.
  • Ubuntu (20.04, 22.04, 23.10)

    • With OpenJDK

      sudo apt-get update
      sudo apt-get install -y openjdk-17-jdk wget   # for JAVA 17
      sudo apt-get install -y openjdk-11-jdk wget   # for JAVA 11
      sudo apt-get install -y openjdk-8-jdk wget    # for JAVA 8
      
    • With IBM Semeru Runtime (previously known as AdoptOpenJDK openj9)

      sudo apt-get update
      sudo apt-get install -y wget tar gzip
      
      • Download and install IBM Semeru Runtime (Java 8, 11, 17) from here.
    • With AdoptOpenJDK8 hotspot

      sudo yum install -y tar wget gcc make
      
      • Download and install AdoptOpenJDK8 from here
    • With Eclipse Adoptium Temurin Runtime (previously known as AdoptOpenJDK hotspot)

      sudo apt-get update
      sudo apt-get install -y wget tar gzip
      
      • Download and install Eclipse Adoptium Temurin Runtime (Java 11, 17) from here.

Note: At the time of creation of these build instructions, Scala 3.3.3 was verified with
OpenJDK 1.8.0, 11.0.19, 17.0.7
IBM Semeru Runtime Open Edition 1.8.0_372-b07, 11.0.19.0 and 17.0.7.0
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_282-b08)
Eclipse Adoptium Temurin-11.0.19+7, Temurin-17.0.7.0

1.2) Build libffi library (For AdoptOpenJDK8 on Ubuntu, SLES and RHEL 9.x)

cd $SOURCE_ROOT/
wget ftp://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz
tar xvfz libffi-3.2.1.tar.gz
cd libffi-3.2.1
./configure --prefix=/usr/local
make
sudo make install
sudo ldconfig
sudo ldconfig /usr/local/lib64

1.3) Set Environment Variables

export JAVA_HOME=<Path to Java>
export PATH=$JAVA_HOME/bin:$PATH

1.4) Download and Install Scala

cd $SOURCE_ROOT
wget https://github.com/lampepfl/dotty/releases/download/3.3.3/scala3-3.3.3.tar.gz
tar -xvf scala3-3.3.3.tar.gz
export PATH=$SOURCE_ROOT/scala3-3.3.3/bin:$PATH

Check Scala version by using the following command

scala -version
scalac -version
Scala code runner version 3.3.3 -- Copyright 2002-2024, LAMP/EPFL
Scala compiler version 3.3.3 -- Copyright 2002-2024, LAMP/EPFL

Step 2: [Optional] Testing Scala Sample Program

2.1) Create a test program

Create a test file called Hello.scala using below command:

echo '@main def hello = println("Hello, world!")' > Hello.scala

2.2) Compile the test program

scalac Hello.scala

Note: This will create several files:

Hello$package$.class
Hello$package.class
Hello$package.tasty
Hello.scala
hello.class
hello.tasty

2.3) Execute the test program

scala hello

The output of the above test program should be:

Hello, world!

Note: For addition information on Getting Started with Scala, visit here

References