Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Package command fails with zip error #828

Closed
vascorsd opened this issue Mar 31, 2022 · 10 comments · Fixed by #865
Closed

Package command fails with zip error #828

vascorsd opened this issue Mar 31, 2022 · 10 comments · Fixed by #865
Assignees
Labels
bug Something isn't working

Comments

@vascorsd
Copy link

Version(s)

> scala-cli about
Scala CLI version 0.1.2

jvm and others, as installed by the tool at the first step:

❯ echo 'println("Hello")' | scala-cli -
Downloading JVM index
Downloading JVM temurin:17
Bloop daemon status: not running
Starting Bloop 1.4.19 at /home/vascod/.local/share/scalacli/bloop/daemon using JVM /home/vascod/.cache/coursier/arc/https/github.com/adoptium/temurin17-binaries/releases/download/jdk-17%252B35/OpenJDK17-jdk_x64_linux_hotspot_17_35.tar.gz/jdk-17+35/bin/java
Downloading compilation server 1.4.19
Downloading https://repo1.maven.org/maven2/org/scala-lang/scala-library/maven-metadata.xml
Downloaded https://repo1.maven.org/maven2/org/scala-lang/scala-library/maven-metadata.xml
Downloading https://repo1.maven.org/maven2/org/scala-lang/scala3-library_3/maven-metadata.xml
Downloaded https://repo1.maven.org/maven2/org/scala-lang/scala3-library_3/maven-metadata.xml
Getting list of Scala CLI-supported Scala versions
Downloading Scala 3.1.1 compiler
Downloading one dependency and one internal dependency
Compiling project (Scala 3.1.1, JVM)
Compiled project (Scala 3.1.1, JVM)
Hello

os: Archlinux, x86_64

Describe the bug

Installed scala-cli and was following the Getting started guide: https://scala-cli.virtuslab.org/docs/getting_started

When reaching the step packaging (https://scala-cli.virtuslab.org/docs/getting_started#packaging) the output of the tool is the following:

❯ scala-cli package . -o countByExtension
Error: java.util.zip.ZipException: invalid entry CRC (expected 0xb6119209 but got 0x3392577b)
For more details, please see '/home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/stacktraces/1648721542-14117431504118333474.log'

To Reproduce

Basically I was just following along the tutorial. Installed the tool, did the script, made a new file, things are compiling and running, but at the package step it fails.

All steps ran in the folder I did for testing:

░▒▓  ~/dev/r/test-proj ▓▒░─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
❯ echo 'println("Hello")' | scala-cli -
Downloading JVM index
Downloading JVM temurin:17
Bloop daemon status: not running
Starting Bloop 1.4.19 at /home/vascod/.local/share/scalacli/bloop/daemon using JVM /home/vascod/.cache/coursier/arc/https/github.com/adoptium/temurin17-binaries/releases/download/jdk-17%252B35/OpenJDK17-jdk_x64_linux_hotspot_17_35.tar.gz/jdk-17+35/bin/java
Downloading compilation server 1.4.19
Downloading https://repo1.maven.org/maven2/org/scala-lang/scala-library/maven-metadata.xml
Downloaded https://repo1.maven.org/maven2/org/scala-lang/scala-library/maven-metadata.xml
Downloading https://repo1.maven.org/maven2/org/scala-lang/scala3-library_3/maven-metadata.xml
Downloaded https://repo1.maven.org/maven2/org/scala-lang/scala3-library_3/maven-metadata.xml
Getting list of Scala CLI-supported Scala versions
Downloading Scala 3.1.1 compiler
Downloading one dependency and one internal dependency
Compiling project (Scala 3.1.1, JVM)
Compiled project (Scala 3.1.1, JVM)
Hello
❯ scala-cli hello.sc 
Compiling project (Scala 3.1.1, JVM)
Compiled project (Scala 3.1.1, JVM)
Hello!
❯ scala-cli hello.sc -- yes
Hello: yes!
❯ scala-cli repl --dep com.lihaoyi::os-lib:0.7.8
Downloading 2 dependencies
Welcome to Scala 3.1.1 (17.0.3, Java OpenJDK 64-Bit Server VM).
Type in expressions for evaluation. Or try :help.
                                                                                                                                                                            
scala> os.pwd
val res0: os.Path = /home/vascod/dev/r/test-proj
                                                                                                                                                                            
scala> os.walk(os.pwd)
val res1: IndexedSeq[os.Path] = ArraySeq(/home/vascod/dev/r/test-proj/.scala-build, /home/vascod/dev/r/test-proj/.scala-build/ide-options.json, /home/vascod/dev/r/test-proj/.scala-build/.bloop, /home/vascod/dev/r/test-proj/.scala-build/.bloop/project_940fb43dce_940fb43dce-78cc9a9627.json, /home/vascod/dev/r/test-proj/.scala-build/.bloop/project_940fb43dce_940fb43dce-78cc9a9627, /home/vascod/dev/r/test-proj/.scala-build/.bloop/project_940fb43dce_940fb43dce-78cc9a9627/project_940fb43dce_940fb43dce-78cc9a9627-analysis.bin, /home/vascod/dev/r/test-proj/.scala-build/.bloop/project_940fb43dce_940fb43dce-78cc9a9627/bloop-internal-classes, /home/vascod/dev/r/test-proj/.scala-build/.bloop/project_940fb43dce_940fb43dce-78cc9a9627/bloop-internal-classes/main-M28pOQYsSIiO18sXX6DXSg==, /home/vascod/dev/r/test-proj/.scala-build/.bloop/project_940fb43dce_940fb43dce-78cc9a9627/bloop-internal-classes/main-M28pOQYsSIiO18sXX6DXSg==/hello_sc$.class, /home/vascod/dev/r/test-proj/.scala-build/.bloop/project_940fb43dce_940fb43dce-78cc9a96 ... large output truncated, print value to show all
                                                                                                                                                                            
scala> 
░▒▓  ~/dev/r/test-proj ▓▒░─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
❯ mkdir scala-cli-getting-started
░▒▓  ~/dev/r/test-proj/scala-cli-getting-started ▓▒░───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
❯ nvim files.scala
❯ scala-cli compile .
Compiling project (Scala 3.1.1, JVM)
Compiled project (Scala 3.1.1, JVM)
❯ lx
drwxr-xr-x   - vascod 31 Mar 11:09  .bsp
drwxr-xr-x   - vascod 31 Mar 11:09  .scala-build
.rw-r--r-- 220 vascod 31 Mar 11:09  files.scala
❯ nvim countByExtension.sc
❯ scala-cli . -- scala
files.scala
.scala-build/project_97d768c1d3_97d768c1d3/src_generated/main/countByExtension.scala
❯ scala-cli package . -o countByExtension
Error: java.util.zip.ZipException: invalid entry CRC (expected 0xb6119209 but got 0x3392577b)
For more details, please see '/home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/stacktraces/1648721542-14117431504118333474.log'
❯ bat '/home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/stacktraces/1648721542-14117431504118333474.log'
───────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
       │ File: /home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/stacktraces/1648721542-14117431504118333474.log
       │ Size: 1.8 KB
───────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
   1   │ java.util.zip.ZipException: invalid entry CRC (expected 0xb6119209 but got 0x3392577b)
   2   │   java.util.zip.ZipInputStream.readEnd(ZipInputStream.java:409)
   3   │   java.util.zip.ZipInputStream.read(ZipInputStream.java:198)
   4   │   coursier.launcher.internal.FileUtil$.readFullyUnsafe(FileUtil.scala:20)
   5   │   coursier.launcher.internal.Zip$$anon$1.next(Zip.scala:20)
   6   │   coursier.launcher.internal.Zip$$anon$1.next(Zip.scala:10)
   7   │   scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:514)
   8   │   scala.collection.Iterator.foreach(Iterator.scala:943)
   9   │   scala.collection.Iterator.foreach$(Iterator.scala:943)
  10   │   scala.collection.AbstractIterator.foreach(Iterator.scala:1431)
  11   │   coursier.launcher.BootstrapGenerator$.writeZip(BootstrapGenerator.scala:112)
  12   │   coursier.launcher.BootstrapGenerator$.$anonfun$generate$2(BootstrapGenerator.scala:62)
  13   │   coursier.launcher.BootstrapGenerator$.$anonfun$generate$2$adapted(BootstrapGenerator.scala:18)
  14   │   coursier.launcher.internal.FileUtil$.withOutputStream(FileUtil.scala:43)
  15   │   coursier.launcher.BootstrapGenerator$.generate(BootstrapGenerator.scala:18)
  16   │   scala.cli.commands.Package$.scala$cli$commands$Package$$bootstrap(Package.scala:484)
  17   │   scala.cli.commands.Package$stateMachine$async$1.apply(Package.scala:174)
  18   │   scala.build.EitherStateMachine.start(EitherCps.scala:58)
  19   │   scala.cli.commands.Package$.doPackage(Package.scala:98)
  20   │   scala.cli.commands.Package$.run(Package.scala:83)
  21   │   scala.cli.commands.Package$.run(Package.scala:32)
  22   │   caseapp.core.app.CaseApp.main(CaseApp.scala:149)
  23   │   caseapp.core.app.CommandsEntryPoint.main(CommandsEntryPoint.scala:116)
  24   │   scala.cli.ScalaCliCommands.main(ScalaCliCommands.scala:89)
  25   │   scala.cli.ScalaCli$.main0(ScalaCli.scala:148)
  26   │   scala.cli.ScalaCli$.main(ScalaCli.scala:71)
  27   │   scala.cli.ScalaCli.main(ScalaCli.scala)
───────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
❯ scala-cli package . -o xx
Error: java.util.zip.ZipException: invalid entry CRC (expected 0xb6119209 but got 0x3392577b)
For more details, please see '/home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/stacktraces/1648721679-10697199402516022739.log'
❯ lx
drwxr-xr-x   - vascod 31 Mar 11:09  .bsp
drwxr-xr-x   - vascod 31 Mar 11:12  .scala-build
.rw-r--r-- 72k vascod 31 Mar 11:12  countByExtension
.rw-r--r-- 345 vascod 31 Mar 11:11  countByExtension.sc
.rw-r--r-- 220 vascod 31 Mar 11:09  files.scala
.rw-r--r-- 72k vascod 31 Mar 11:14  xx

Doing a clean an retrying again same error.

Expected behaviour
I should be getting the output script to be run as the docs say (./countByExtension), instead of an error when packaging.

@lwronski
Copy link
Contributor

Hi @vascorsd, thanks for reporting. I was trying to reproduce this using docker with archlinux:latest image, but it's working on my environment.

  1. Which Archlinux distribution are you using?
  2. Can you run scala-cli with increased verbosity? it should print more log:
    scala-cli package . -o countByExtension -v -v -v

@VirtusLab VirtusLab deleted a comment from github-actions bot Mar 31, 2022
@vascorsd
Copy link
Author

vascorsd commented Mar 31, 2022

Hi, thanks for the help.

  1. hmm, Archlinux only has a single distribution, it's a rolling release, always up to date. Anything else I can try to give info about?
  2. I've tried again with extra verbosity:
░▒▓  ~/dev/r/test-proj/scala-cli-getting-started ▓▒░───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
❯ scala-cli package . -o countByExtension -v -v -v
Checking for a running Bloop server at /home/vascod/.local/share/scalacli/bloop/daemon ...
Attempting to connect to Bloop server /home/vascod/.local/share/scalacli/bloop/daemon ...
Connection attempt result: Some(Right(Right(java.nio.channels.SocketChannel[connected local= remote=/home/vascod/.local/share/scalacli/bloop/daemon/socket])))
nailgun debug: Sending arguments '' to Nailgun server
nailgun debug: Sending environment variables to Nailgun server
nailgun debug: Sending working directory /home/vascod/dev/r/test-proj/scala-cli-getting-started to Nailgun server
nailgun debug: Sending command to about Nailgun server
nailgun debug: Finished sending command information to Nailgun server
nailgun debug: Starting thread to read stdin...
nailgun debug: Received action Print([B@68a337d8) from Nailgun server
nailgun debug: Received action Print([B@80e8ac1) from Nailgun server
nailgun debug: Received action Print([B@ec635dc) from Nailgun server
nailgun debug: Received action Print([B@2adeb7ac) from Nailgun server
nailgun debug: Received action Print([B@71d555f) from Nailgun server
nailgun debug: Received action Print([B@8f5e69) from Nailgun server
nailgun debug: Received action Exit(0) from Nailgun server
nailgun debug: Waiting for stdin thread to finish...
nailgun debug: Waiting for heartbeat thread to finish...
nailgun debug: Returning exit code...
Checking for a running Bloop server at /home/vascod/.local/share/scalacli/bloop/daemon ...
Attempting to connect to Bloop server /home/vascod/.local/share/scalacli/bloop/daemon ...
Connection attempt result: Some(Right(Right(java.nio.channels.SocketChannel[connected local= remote=/home/vascod/.local/share/scalacli/bloop/daemon/socket])))
Checking for a running Bloop server at /home/vascod/.local/share/scalacli/bloop/daemon ...
Attempting to connect to Bloop server /home/vascod/.local/share/scalacli/bloop/daemon ...
Connection attempt result: Some(Right(Right(java.nio.channels.SocketChannel[connected local= remote=/home/vascod/.local/share/scalacli/bloop/daemon/socket])))
nailgun debug: Sending arguments '' to Nailgun server
nailgun debug: Sending environment variables to Nailgun server
nailgun debug: Sending working directory /home/vascod/dev/r/test-proj/scala-cli-getting-started to Nailgun server
nailgun debug: Sending command to about Nailgun server
nailgun debug: Finished sending command information to Nailgun server
nailgun debug: Starting thread to read stdin...
nailgun debug: Received action Print([B@6ec1ad30) from Nailgun server
nailgun debug: Received action Print([B@7c09416f) from Nailgun server
nailgun debug: Received action Print([B@434c8e3d) from Nailgun server
nailgun debug: Received action Print([B@18a4dc93) from Nailgun server
nailgun debug: Received action Print([B@7f6e9e44) from Nailgun server
nailgun debug: Received action Print([B@23676178) from Nailgun server
nailgun debug: Received action Exit(0) from Nailgun server
nailgun debug: Waiting for stdin thread to finish...
nailgun debug: Waiting for heartbeat thread to finish...
nailgun debug: Returning exit code...
Opening BSP connection with bloop
Bloop BSP connection waiting at local:/home/vascod/.cache/scalacli/bsp-sockets/proc-49136
BSP connection at /home/vascod/.cache/scalacli/bsp-sockets/proc-49136 not found, waiting 100 milliseconds
nailgun debug: Sending arguments '--protocol local --socket /home/vascod/.cache/scalacli/bsp-sockets/proc-49136' to Nailgun server
nailgun debug: Sending environment variables to Nailgun server
nailgun debug: Sending working directory /home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build to Nailgun server
nailgun debug: Sending command to bsp Nailgun server
nailgun debug: Finished sending command information to Nailgun server
nailgun debug: Starting thread to read stdin...
nailgun debug: Received action Print([B@3cd2c69c) from Nailgun server
The server is listening for incoming connections at local:///home/vascod/.cache/scalacli/bsp-sockets/proc-49136...
BSP connection at /home/vascod/.cache/scalacli/bsp-sockets/proc-49136 opened
Connected to Bloop via BSP at local:/home/vascod/.cache/scalacli/bsp-sockets/proc-49136
Connected to Bloop via BSP at local:/home/vascod/.cache/scalacli/bsp-sockets/proc-49136
nailgun debug: Received action Print([B@58e4f070) from Nailgun server
Accepted incoming BSP client connection at local:///home/vascod/.cache/scalacli/bsp-sockets/proc-49136
Sending buildInitialize BSP command to Bloop
nailgun debug: Received action Print([B@2d248bf) from Nailgun server
request received: build/initialize
nailgun debug: Received action Print([B@2f8449ea) from Nailgun server
BSP initialization handshake complete.
Fetching List(org.scala-lang::scala3-compiler:3.1.1), adding List(ivy:file:///home/vascod/.cache/scalacli/local-repo/v0.1.2//[defaultPattern])
Found 13 artifacts:
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.1.1/scala3-compiler_3-3.1.1.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.1.1/scala3-interfaces-3.1.1.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.1.1/scala3-library_3-3.1.1.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.1.1/tasty-core_3-3.1.1.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-asm/9.1.0-scala-1/scala-asm-9.1.0-scala-1.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/compiler-interface/1.3.5/compiler-interface-1.3.5.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-reader/3.19.0/jline-reader-3.19.0.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal/3.19.0/jline-terminal-3.19.0.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal-jna/3.19.0/jline-terminal-jna-3.19.0.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.6/scala-library-2.13.6.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.7.0/protobuf-java-3.7.0.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.3.0/util-interface-1.3.0.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.3.1/jna-5.3.1.jar

Fetching List(org.scala-lang::scala3-library::3.1.1, com.lihaoyi::os-lib:0.7.8, org.virtuslab.scala-cli::runner:0.1.2), adding List(ivy:file:///home/vascod/.cache/scalacli/local-repo/v0.1.2//[defaultPattern])
Fetching List(org.virtuslab.scala-cli:stubs:0.1.2), adding List(ivy:file:///home/vascod/.cache/scalacli/local-repo/v0.1.2//[defaultPattern])
Found 1 artifacts:
  /home/vascod/.cache/scalacli/local-repo/v0.1.2/org.virtuslab.scala-cli/stubs/0.1.2/jars/stubs.jar

Fetching List(org.scala-lang::scala3-compiler:3.1.1), adding List(ivy:file:///home/vascod/.cache/scalacli/local-repo/v0.1.2//[defaultPattern])
Found 13 artifacts:
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.1.1/scala3-compiler_3-3.1.1.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.1.1/scala3-interfaces-3.1.1.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.1.1/scala3-library_3-3.1.1.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.1.1/tasty-core_3-3.1.1.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-asm/9.1.0-scala-1/scala-asm-9.1.0-scala-1.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/compiler-interface/1.3.5/compiler-interface-1.3.5.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-reader/3.19.0/jline-reader-3.19.0.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal/3.19.0/jline-terminal-3.19.0.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal-jna/3.19.0/jline-terminal-jna-3.19.0.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.6/scala-library-2.13.6.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.7.0/protobuf-java-3.7.0.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.3.0/util-interface-1.3.0.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.3.1/jna-5.3.1.jar

Fetching List(org.scala-lang::scala3-library::3.1.1, com.lihaoyi::os-lib:0.7.8, org.virtuslab.scala-cli::runner:0.1.2), adding List(ivy:file:///home/vascod/.cache/scalacli/local-repo/v0.1.2//[defaultPattern])
Fetching List(org.virtuslab.scala-cli:stubs:0.1.2), adding List(ivy:file:///home/vascod/.cache/scalacli/local-repo/v0.1.2//[defaultPattern])
Found 1 artifacts:
  /home/vascod/.cache/scalacli/local-repo/v0.1.2/org.virtuslab.scala-cli/stubs/0.1.2/jars/stubs.jar

Writing bloop project in /home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/.bloop/project_97d768c1d3_97d768c1d3.json
Listing BSP build targets
Compiling project_97d768c1d3_97d768c1d3 with Bloop
Received onBuildTaskStart from bloop: TaskStartParams [
  taskId = TaskId [
    id = "1"
    parents = null
  ]
  eventTime = 1648730168414
  message = "Compiling project_97d768c1d3_97d768c1d3 (2 Scala sources)"
  dataKind = "compile-task"
  data = {"target":{"uri":"file:/home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/?id=project_97d768c1d3_97d768c1d3"}}
]
Compiling project (Scala 3.1.1, JVM)
Received onBuildTaskFinish from bloop: TaskFinishParams [
  taskId = TaskId [
    id = "1"
    parents = null
  ]
  eventTime = 1648730168866
  message = "Compiled 'project_97d768c1d3_97d768c1d3'"
  status = OK
  dataKind = "compile-report"
  data = {"target":{"uri":"file:/home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/?id=project_97d768c1d3_97d768c1d3"},"originId":null,"errors":0,"warnings":0,"time":null,"isNoOp":false,"isLastCycle":true,"clientDir":"file:///home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/project_97d768c1d3_97d768c1d3/classes/main/","analysisOut":"file:///home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/.bloop/project_97d768c1d3_97d768c1d3/project_97d768c1d3_97d768c1d3-analysis.bin"}
]
Compiled project (Scala 3.1.1, JVM)
Compilation succeeded
Post-processing class files of pre-processed sources
Overwriting .scala-build/project_97d768c1d3_97d768c1d3/classes/main/countByExtension_sc$.class
Overwriting .scala-build/project_97d768c1d3_97d768c1d3/classes/main/countByExtension_sc.class
Overwriting .scala-build/project_97d768c1d3_97d768c1d3/classes/main/countByExtension.class
Overwriting .scala-build/project_97d768c1d3_97d768c1d3/classes/main/countByExtension$.class
Moving semantic DBs around
Reading TASTy file /home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/project_97d768c1d3_97d768c1d3/classes/main/countByExtension.tasty
Parsed TASTy file /home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/project_97d768c1d3_97d768c1d3/classes/main/countByExtension.tasty
Overwriting .scala-build/project_97d768c1d3_97d768c1d3/classes/main/countByExtension.tasty
Reading TASTy file /home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/project_97d768c1d3_97d768c1d3/classes/main/files$package.tasty
Parsed TASTy file /home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/project_97d768c1d3_97d768c1d3/classes/main/files$package.tasty
Reading TASTy file /home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/project_97d768c1d3_97d768c1d3/classes/main/countByExtension_sc.tasty
Parsed TASTy file /home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/project_97d768c1d3_97d768c1d3/classes/main/countByExtension_sc.tasty
Overwriting .scala-build/project_97d768c1d3_97d768c1d3/classes/main/countByExtension_sc.tasty
nailgun debug: Received action Print([B@22c35f2f) from Nailgun server
[W] BSP server cancelled, closing socket...
nailgun debug: Received action Exit(0) from Nailgun server
nailgun debug: Waiting for stdin thread to finish...
nailgun debug: Waiting for heartbeat thread to finish...
nailgun debug: Returning exit code...
Exception in thread "main" java.util.zip.ZipException: invalid entry CRC (expected 0xb6119209 but got 0x3392577b)
        at java.util.zip.ZipInputStream.readEnd(ZipInputStream.java:409)
        at java.util.zip.ZipInputStream.read(ZipInputStream.java:198)
        at coursier.launcher.internal.FileUtil$.readFullyUnsafe(FileUtil.scala:20)
        at coursier.launcher.internal.Zip$$anon$1.next(Zip.scala:20)
        at coursier.launcher.internal.Zip$$anon$1.next(Zip.scala:10)
        at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:514)
        at scala.collection.Iterator.foreach(Iterator.scala:943)
        at scala.collection.Iterator.foreach$(Iterator.scala:943)
        at scala.collection.AbstractIterator.foreach(Iterator.scala:1431)
        at coursier.launcher.BootstrapGenerator$.writeZip(BootstrapGenerator.scala:112)
        at coursier.launcher.BootstrapGenerator$.$anonfun$generate$2(BootstrapGenerator.scala:62)
        at coursier.launcher.BootstrapGenerator$.$anonfun$generate$2$adapted(BootstrapGenerator.scala:18)
        at coursier.launcher.internal.FileUtil$.withOutputStream(FileUtil.scala:43)
        at coursier.launcher.BootstrapGenerator$.generate(BootstrapGenerator.scala:18)
        at scala.cli.commands.Package$.scala$cli$commands$Package$$bootstrap(Package.scala:484)
        at scala.cli.commands.Package$stateMachine$async$1.apply(Package.scala:174)
        at scala.build.EitherStateMachine.start(EitherCps.scala:58)
        at scala.cli.commands.Package$.doPackage(Package.scala:98)
        at scala.cli.commands.Package$.run(Package.scala:83)
        at scala.cli.commands.Package$.run(Package.scala:32)
        at caseapp.core.app.CaseApp.main(CaseApp.scala:149)
        at caseapp.core.app.CommandsEntryPoint.main(CommandsEntryPoint.scala:116)
        at scala.cli.ScalaCliCommands.main(ScalaCliCommands.scala:89)
        at scala.cli.ScalaCli$.main0(ScalaCli.scala:148)
        at scala.cli.ScalaCli$.main(ScalaCli.scala:71)
        at scala.cli.ScalaCli.main(ScalaCli.scala)

extra info on scala-cli binary:

❯ scala-cli --version
0.1.2

░▒▓  ~/dev/r/test-proj/scala-cli-getting-started ▓▒░───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
❯ scala-cli about
Scala CLI version 0.1.2

░▒▓  ~/dev/r/test-proj/scala-cli-getting-started ▓▒░───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
❯ which scala-cli 
/usr/bin/scala-cli

░▒▓  ~/dev/r/test-proj/scala-cli-getting-started ▓▒░───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
❯ sha256sum /usr/bin/scala-cli 
a0d6103c681cb64dc4214375e86c5e5fc682a3f85e9f7ad08788b3bb49a53e74  /usr/bin/scala-cli

It was installed from: https://github.com/VirtusLab/scala-cli/releases/download/v0.1.2/scala-cli-x86_64-pc-linux.gz

@vascorsd
Copy link
Author

Managed to reproduce it inside the archlinux docker.
With the following Dockerfile to build it (docker build -t arch-updated .):

FROM archlinux:latest

# run and install updates to latest and install some tools needed to build a package
RUN pacman -Syu base-devel git sudo --noconfirm --noprogressbar

# just checkout and install my package that installs scala-cli
# makepkg to build the package doesn't run as root
RUN useradd builduser -m && passwd -d builduser && printf 'builduser ALL=(ALL) ALL\n' | tee -a /etc/sudoers
RUN sudo -u builduser bash -c 'cd /tmp && git clone https://github.com/vascorsd/archlinux-packages.git && cd archlinux-packages/scala-cli/native-bin/ && makepkg --syncdeps --install --noconfirm --noprogressbar'
❯ docker run -v (pwd):/app -it --rm arch-updated bash
[root@6125c3363863 /]# ls
app  bin  boot  dev  etc  home  lib  lib64  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@6125c3363863 /]# cd app
[root@6125c3363863 app]# ls -la
total 24
drwxr-xr-x 3 builduser builduser 4096 Mar 31 13:14 .
drwxr-xr-x 1 root      root      4096 Mar 31 13:11 ..
drwxr-xr-x 2 builduser builduser 4096 Mar 31 10:33 .bsp
-rw-r--r-- 1 builduser builduser  345 Mar 31 10:11 countByExtension.sc
-rw-r--r-- 1 builduser builduser  607 Mar 31 13:07 Dockerfile
-rw-r--r-- 1 builduser builduser  220 Mar 31 10:09 files.scala
[root@6125c3363863 app]# scala-cli package . -o countByExtension
Error: java.util.zip.ZipException: invalid entry CRC (expected 0xb6119209 but got 0x3392577b)
For more details, please see '/root/.cache/scalacli/virtual-projects/2b/project-b5a71bcc/.scala-build/stacktraces/1648732503-12098100847260560740.log'
[root@6125c3363863 app]# 

files contents:

countByExtension.sc:

val (ext, directory) = args.toSeq match 
  case Seq(ext) => (ext, os.pwd)
  case Seq(ext, directory) => (ext, os.Path(directory))
  case other => 
    println(s"Expected: `extension [directory]` but get: `${other.mkString(" ")}`")
    sys.exit(1)

val files = filesByExtension(ext, directory)
files.map(_.relativeTo(directory)).foreach(println)

files.scala:

//> using lib "com.lihaoyi::os-lib:0.7.8"

def filesByExtension(
  extension: String, 
  dir: os.Path = os.pwd): Seq[os.Path] = 
    os.walk(dir).filter { f =>
      f.last.endsWith(s".$extension") && os.isFile(f)
    }

@lwronski
Copy link
Contributor

It seems, that there is some problem with privileges because when I run scala-cli as a root, the following package command works for me:

$ docker run -it archlinux:latest bash
[root@fdda2c2035b6 /]# cat Hello.scala 
object Hello extends App {
  println("Hello World")
}
[root@fdda2c2035b6 /]# curl -sSLf https://virtuslab.github.io/scala-cli-packages/scala-setup.sh | sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   667  100   667    0     0   5447      0 --:--:-- --:--:-- --:--:--  5467
100 34.4M  100 34.4M    0     0  23.9M      0  0:00:01  0:00:01 --:--:-- 37.3M
Successfully installed scala-cli 0.1.2
Profile file(s) updated.
To run scala-cli, log out and log back in, or run 'source ~/.profile'
[root@fdda2c2035b6 /]# source ~/.profile 
[root@fdda2c2035b6 /]# scala-cli package Hello.scala -o Hello
Downloading JVM index
Downloading JVM temurin:17
Bloop daemon status: not running
Starting Bloop 1.4.19 at /root/.local/share/scalacli/bloop/daemon using JVM /root/.cache/coursier/arc/https/github.com/adoptium/temurin17-binaries/releases/download/jdk-17%252B35/OpenJDK17-jdk_x64_linux_hotspot_17_35.tar.gz/jdk-17+35/bin/java
Downloading compilation server 1.4.19
Getting list of Scala CLI-supported Scala versions
Downloading Scala 3.1.1 compiler
Downloading one dependency and one internal dependency
Compiling project (Scala 3.1.1, JVM)
Compiled project (Scala 3.1.1, JVM)
Wrote Hello, run it with
  ./Hello

@vascorsd
Copy link
Author

My package definition (https://github.com/vascorsd/archlinux-packages/blob/master/scala-cli/native-bin/PKGBUILD) basically does exactly the same as the script https://virtuslab.github.io/scala-cli-packages/scala-setup.sh which reduced is just:

#!/usr/bin/env bash
set -eu

URL="https://github.com/VirtusLab/scala-cli/releases/download/v0.1.2/scala-cli-x86_64-pc-linux.gz"
TMP_DIR="$(mktemp -d)"
SCALA_CLI_ARCHIVE="${TMP_DIR}/scala-cli.gz"
SCALA_CLI_BIN_FILE="${TMP_DIR}/scala-cli"

curl -fLo ${SCALA_CLI_ARCHIVE} $URL
gzip -d ${SCALA_CLI_ARCHIVE}
chmod +x ${SCALA_CLI_BIN_FILE}

"${SCALA_CLI_BIN_FILE}" install-home --scala-cli-binary-path ${SCALA_CLI_BIN_FILE} "$@"
rm ${SCALA_CLI_BIN_FILE}

and puts the scala-cli binary at $HOME/.cache/scalacli/local-repo/bin/scala-cli/scala-cli and changes the PATH with the automatically changed $HOME/.profile to have the $PATH have the scala-cli available.

So the only real difference I see is the location of the scala-cli binary itself, I have it at /usr/bin/scala-cli and the scala-setup.sh has it at /root/.cache/scalacli/local-repo/bin/scala-cli.

Checking the hashes, the files:

  • downloaded by the script: af1a655d3fd43e2821861a7c3c45f844bf4f59ed4f2287ab799b5d1b2544ea0f /tmp/tmp.eP5hW1sDT4/scala-cli
  • installed at the $HOME by the script: af1a655d3fd43e2821861a7c3c45f844bf4f59ed4f2287ab799b5d1b2544ea0f /root/.cache/scalacli/local-repo/bin/scala-cli/scala-cli
  • installed in the docker with my package: a0d6103c681cb64dc4214375e86c5e5fc682a3f85e9f7ad08788b3bb49a53e74 /usr/bin/scala-cli
  • installed in my real machine: a0d6103c681cb64dc4214375e86c5e5fc682a3f85e9f7ad08788b3bb49a53e74 /usr/bin/scala-cli

This seems to be an error in my packaging, but if the binary is corrupt it shouldn't be running...

EDIT:
After looking at it better in trying to understand why the packaging is changing the hash of the scala-cli file when created, it seems that an option is run during its generation which calls strip on the binary. This changes the binary and its hash. I've updated my PKGBUILD file to not do it.

After repackaging it now has the exact same hash as the binary downloaded/run from the setup script: af1a655d3fd43e2821861a7c3c45f844bf4f59ed4f2287ab799b5d1b2544ea0f /usr/bin/scala-cli.

I've rerun the things and still fails:

❯ which scala-cli
/usr/bin/scala-cli

░▒▓  ~/dev/r/test-proj/scala-cli-getting-started ▓▒░───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
❯ sha256sum /usr/bin/scala-cli
af1a655d3fd43e2821861a7c3c45f844bf4f59ed4f2287ab799b5d1b2544ea0f  /usr/bin/scala-cli

❯ scala-cli package . -o countByExtension -v -v -v
Checking for a running Bloop server at /home/vascod/.local/share/scalacli/bloop/daemon ...
Attempting to connect to Bloop server /home/vascod/.local/share/scalacli/bloop/daemon ...
Connection attempt result: Some(Right(Right(java.nio.channels.SocketChannel[connected local= remote=/home/vascod/.local/share/scalacli/bloop/daemon/socket])))
nailgun debug: Sending arguments '' to Nailgun server
nailgun debug: Sending environment variables to Nailgun server
nailgun debug: Sending working directory /home/vascod/dev/r/test-proj/scala-cli-getting-started to Nailgun server
nailgun debug: Sending command to about Nailgun server
nailgun debug: Finished sending command information to Nailgun server
nailgun debug: Starting thread to read stdin...
nailgun debug: Received action Print([B@1528e87c) from Nailgun server
nailgun debug: Received action Print([B@7f1fbd2f) from Nailgun server
nailgun debug: Received action Print([B@6793f4ee) from Nailgun server
nailgun debug: Received action Print([B@6c130b90) from Nailgun server
nailgun debug: Received action Print([B@793a12f4) from Nailgun server
nailgun debug: Received action Print([B@781ece71) from Nailgun server
nailgun debug: Received action Exit(0) from Nailgun server
nailgun debug: Waiting for stdin thread to finish...
nailgun debug: Waiting for heartbeat thread to finish...
nailgun debug: Returning exit code...
Checking for a running Bloop server at /home/vascod/.local/share/scalacli/bloop/daemon ...
Attempting to connect to Bloop server /home/vascod/.local/share/scalacli/bloop/daemon ...
Connection attempt result: Some(Right(Right(java.nio.channels.SocketChannel[connected local= remote=/home/vascod/.local/share/scalacli/bloop/daemon/socket])))
Checking for a running Bloop server at /home/vascod/.local/share/scalacli/bloop/daemon ...
Attempting to connect to Bloop server /home/vascod/.local/share/scalacli/bloop/daemon ...
Connection attempt result: Some(Right(Right(java.nio.channels.SocketChannel[connected local= remote=/home/vascod/.local/share/scalacli/bloop/daemon/socket])))
nailgun debug: Sending arguments '' to Nailgun server
nailgun debug: Sending environment variables to Nailgun server
nailgun debug: Sending working directory /home/vascod/dev/r/test-proj/scala-cli-getting-started to Nailgun server
nailgun debug: Sending command to about Nailgun server
nailgun debug: Finished sending command information to Nailgun server
nailgun debug: Starting thread to read stdin...
nailgun debug: Received action Print([B@54c14d20) from Nailgun server
nailgun debug: Received action Print([B@3b51836e) from Nailgun server
nailgun debug: Received action Print([B@1a06ed1a) from Nailgun server
nailgun debug: Received action Print([B@11ba40ef) from Nailgun server
nailgun debug: Received action Print([B@7a1a7981) from Nailgun server
nailgun debug: Received action Print([B@34a3bc43) from Nailgun server
nailgun debug: Received action Exit(0) from Nailgun server
nailgun debug: Waiting for stdin thread to finish...
nailgun debug: Waiting for heartbeat thread to finish...
nailgun debug: Returning exit code...
Opening BSP connection with bloop
Bloop BSP connection waiting at local:/home/vascod/.cache/scalacli/bsp-sockets/proc-150682
BSP connection at /home/vascod/.cache/scalacli/bsp-sockets/proc-150682 not found, waiting 100 milliseconds
nailgun debug: Sending arguments '--protocol local --socket /home/vascod/.cache/scalacli/bsp-sockets/proc-150682' to Nailgun server
nailgun debug: Sending environment variables to Nailgun server
nailgun debug: Sending working directory /home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build to Nailgun server
nailgun debug: Sending command to bsp Nailgun server
nailgun debug: Finished sending command information to Nailgun server
nailgun debug: Starting thread to read stdin...
nailgun debug: Received action Print([B@493c2496) from Nailgun server
The server is listening for incoming connections at local:///home/vascod/.cache/scalacli/bsp-sockets/proc-150682...
BSP connection at /home/vascod/.cache/scalacli/bsp-sockets/proc-150682 opened
Connected to Bloop via BSP at local:/home/vascod/.cache/scalacli/bsp-sockets/proc-150682
Connected to Bloop via BSP at local:/home/vascod/.cache/scalacli/bsp-sockets/proc-150682
nailgun debug: Received action Print([B@5fbe6466) from Nailgun server
Accepted incoming BSP client connection at local:///home/vascod/.cache/scalacli/bsp-sockets/proc-150682
Sending buildInitialize BSP command to Bloop
nailgun debug: Received action Print([B@442ad6e) from Nailgun server
request received: build/initialize
nailgun debug: Received action Print([B@42d9500d) from Nailgun server
BSP initialization handshake complete.
Fetching List(org.scala-lang::scala3-compiler:3.1.1), adding List(ivy:file:///home/vascod/.cache/scalacli/local-repo/v0.1.2//[defaultPattern])
Found 13 artifacts:
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.1.1/scala3-compiler_3-3.1.1.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.1.1/scala3-interfaces-3.1.1.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.1.1/scala3-library_3-3.1.1.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.1.1/tasty-core_3-3.1.1.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-asm/9.1.0-scala-1/scala-asm-9.1.0-scala-1.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/compiler-interface/1.3.5/compiler-interface-1.3.5.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-reader/3.19.0/jline-reader-3.19.0.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal/3.19.0/jline-terminal-3.19.0.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal-jna/3.19.0/jline-terminal-jna-3.19.0.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.6/scala-library-2.13.6.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.7.0/protobuf-java-3.7.0.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.3.0/util-interface-1.3.0.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.3.1/jna-5.3.1.jar

Fetching List(org.scala-lang::scala3-library::3.1.1, com.lihaoyi::os-lib:0.7.8, org.virtuslab.scala-cli::runner:0.1.2), adding List(ivy:file:///home/vascod/.cache/scalacli/local-repo/v0.1.2//[defaultPattern])
Fetching List(org.virtuslab.scala-cli:stubs:0.1.2), adding List(ivy:file:///home/vascod/.cache/scalacli/local-repo/v0.1.2//[defaultPattern])
Found 1 artifacts:
  /home/vascod/.cache/scalacli/local-repo/v0.1.2/org.virtuslab.scala-cli/stubs/0.1.2/jars/stubs.jar

Fetching List(org.scala-lang::scala3-compiler:3.1.1), adding List(ivy:file:///home/vascod/.cache/scalacli/local-repo/v0.1.2//[defaultPattern])
Found 13 artifacts:
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-compiler_3/3.1.1/scala3-compiler_3-3.1.1.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-interfaces/3.1.1/scala3-interfaces-3.1.1.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.1.1/scala3-library_3-3.1.1.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/tasty-core_3/3.1.1/tasty-core_3-3.1.1.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-asm/9.1.0-scala-1/scala-asm-9.1.0-scala-1.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/compiler-interface/1.3.5/compiler-interface-1.3.5.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-reader/3.19.0/jline-reader-3.19.0.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal/3.19.0/jline-terminal-3.19.0.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline-terminal-jna/3.19.0/jline-terminal-jna-3.19.0.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.6/scala-library-2.13.6.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.7.0/protobuf-java-3.7.0.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-sbt/util-interface/1.3.0/util-interface-1.3.0.jar
  /home/vascod/.cache/coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.3.1/jna-5.3.1.jar

Fetching List(org.scala-lang::scala3-library::3.1.1, com.lihaoyi::os-lib:0.7.8, org.virtuslab.scala-cli::runner:0.1.2), adding List(ivy:file:///home/vascod/.cache/scalacli/local-repo/v0.1.2//[defaultPattern])
Fetching List(org.virtuslab.scala-cli:stubs:0.1.2), adding List(ivy:file:///home/vascod/.cache/scalacli/local-repo/v0.1.2//[defaultPattern])
Found 1 artifacts:
  /home/vascod/.cache/scalacli/local-repo/v0.1.2/org.virtuslab.scala-cli/stubs/0.1.2/jars/stubs.jar

Writing bloop project in /home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/.bloop/project_97d768c1d3_97d768c1d3.json
Listing BSP build targets
Compiling project_97d768c1d3_97d768c1d3 with Bloop
Received onBuildTaskStart from bloop: TaskStartParams [
  taskId = TaskId [
    id = "1"
    parents = null
  ]
  eventTime = 1648766728641
  message = "Compiling project_97d768c1d3_97d768c1d3 (2 Scala sources)"
  dataKind = "compile-task"
  data = {"target":{"uri":"file:/home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/?id=project_97d768c1d3_97d768c1d3"}}
]
Compiling project (Scala 3.1.1, JVM)
Received onBuildTaskFinish from bloop: TaskFinishParams [
  taskId = TaskId [
    id = "1"
    parents = null
  ]
  eventTime = 1648766728952
  message = "Compiled 'project_97d768c1d3_97d768c1d3'"
  status = OK
  dataKind = "compile-report"
  data = {"target":{"uri":"file:/home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/?id=project_97d768c1d3_97d768c1d3"},"originId":null,"errors":0,"warnings":0,"time":null,"isNoOp":false,"isLastCycle":true,"clientDir":"file:///home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/project_97d768c1d3_97d768c1d3/classes/main/","analysisOut":"file:///home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/.bloop/project_97d768c1d3_97d768c1d3/project_97d768c1d3_97d768c1d3-analysis.bin"}
]
Compiled project (Scala 3.1.1, JVM)
Compilation succeeded
Post-processing class files of pre-processed sources
Overwriting .scala-build/project_97d768c1d3_97d768c1d3/classes/main/countByExtension_sc$.class
Overwriting .scala-build/project_97d768c1d3_97d768c1d3/classes/main/countByExtension_sc.class
Overwriting .scala-build/project_97d768c1d3_97d768c1d3/classes/main/countByExtension.class
Overwriting .scala-build/project_97d768c1d3_97d768c1d3/classes/main/countByExtension$.class
Moving semantic DBs around
Reading TASTy file /home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/project_97d768c1d3_97d768c1d3/classes/main/countByExtension.tasty
Parsed TASTy file /home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/project_97d768c1d3_97d768c1d3/classes/main/countByExtension.tasty
Overwriting .scala-build/project_97d768c1d3_97d768c1d3/classes/main/countByExtension.tasty
Reading TASTy file /home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/project_97d768c1d3_97d768c1d3/classes/main/files$package.tasty
Parsed TASTy file /home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/project_97d768c1d3_97d768c1d3/classes/main/files$package.tasty
Reading TASTy file /home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/project_97d768c1d3_97d768c1d3/classes/main/countByExtension_sc.tasty
Parsed TASTy file /home/vascod/dev/r/test-proj/scala-cli-getting-started/.scala-build/project_97d768c1d3_97d768c1d3/classes/main/countByExtension_sc.tasty
Overwriting .scala-build/project_97d768c1d3_97d768c1d3/classes/main/countByExtension_sc.tasty
nailgun debug: Received action Print([B@35f85260) from Nailgun server
[W] BSP server cancelled, closing socket...
nailgun debug: Received action Exit(0) from Nailgun server
nailgun debug: Waiting for stdin thread to finish...
nailgun debug: Waiting for heartbeat thread to finish...
nailgun debug: Returning exit code...
Exception in thread "main" java.util.zip.ZipException: invalid entry CRC (expected 0xb6119209 but got 0x3392577b)
        at java.util.zip.ZipInputStream.readEnd(ZipInputStream.java:409)
        at java.util.zip.ZipInputStream.read(ZipInputStream.java:198)
        at coursier.launcher.internal.FileUtil$.readFullyUnsafe(FileUtil.scala:20)
        at coursier.launcher.internal.Zip$$anon$1.next(Zip.scala:20)
        at coursier.launcher.internal.Zip$$anon$1.next(Zip.scala:10)
        at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:514)
        at scala.collection.Iterator.foreach(Iterator.scala:943)
        at scala.collection.Iterator.foreach$(Iterator.scala:943)
        at scala.collection.AbstractIterator.foreach(Iterator.scala:1431)
        at coursier.launcher.BootstrapGenerator$.writeZip(BootstrapGenerator.scala:112)
        at coursier.launcher.BootstrapGenerator$.$anonfun$generate$2(BootstrapGenerator.scala:62)
        at coursier.launcher.BootstrapGenerator$.$anonfun$generate$2$adapted(BootstrapGenerator.scala:18)
        at coursier.launcher.internal.FileUtil$.withOutputStream(FileUtil.scala:43)
        at coursier.launcher.BootstrapGenerator$.generate(BootstrapGenerator.scala:18)
        at scala.cli.commands.Package$.scala$cli$commands$Package$$bootstrap(Package.scala:484)
        at scala.cli.commands.Package$stateMachine$async$1.apply(Package.scala:174)
        at scala.build.EitherStateMachine.start(EitherCps.scala:58)
        at scala.cli.commands.Package$.doPackage(Package.scala:98)
        at scala.cli.commands.Package$.run(Package.scala:83)
        at scala.cli.commands.Package$.run(Package.scala:32)
        at caseapp.core.app.CaseApp.main(CaseApp.scala:149)
        at caseapp.core.app.CommandsEntryPoint.main(CommandsEntryPoint.scala:116)
        at scala.cli.ScalaCliCommands.main(ScalaCliCommands.scala:89)
        at scala.cli.ScalaCli$.main0(ScalaCli.scala:148)
        at scala.cli.ScalaCli$.main(ScalaCli.scala:71)
        at scala.cli.ScalaCli.main(ScalaCli.scala)

I've condensed the code and docker here - https://github.com/vascorsd/scala-cli-getting-started

@lwronski
Copy link
Contributor

lwronski commented Apr 4, 2022

It seems, that there is some problem with a native version of scala-cli, when I use JVM-based Scala CLI launcher it works. You can find more detail about --cli-version here

[root@abb09225ee76 sca]# scala-cli package Hello.scala -o Hello -f
Error: java.util.zip.ZipException: invalid entry CRC (expected 0xb6119209 but got 0x3392577b)
For more details, please see '/sca/.scala-build/stacktraces/1649073552-2160585729422295376.log'
[root@abb09225ee76 sca]# scala-cli --cli-version 0.1.2  package Hello.scala -o Hello -f
Fetching Scala CLI 0.1.2
Downloading one dependency and one internal dependency
Downloading internal stub dependency
Wrote Hello, run it with
  ./Hello
[root@abb09225ee76 sca]# ./Hello 
Hello

Thanks for finding a bug in the native Scala CLI launcher.

@alexarchambault
Copy link
Contributor

That seems to be a native image issue… I opened oracle/graal#4479 for it. #865 should help in the mean time.

@fehu
Copy link

fehu commented Apr 14, 2022

NixOS unstable channel is also affected.

@lwronski lwronski added the bug Something isn't working label May 4, 2022
@alexarchambault
Copy link
Contributor

As was commented on oracle/graal#4479, this seems to originate from (apparently legit?) changes in zlib. It seems a workaround should be available in Arch Linux at some point.

@rjcortese
Copy link

rjcortese commented May 7, 2022

It sounds like this issue is understood and a fix is in progress. Adding this for extra context.

I'm also running Archlinux and have almost the same issue. It happens at the very first step though.

~/test/scala >>> echo 'println("Hello")' | scala-cli -
Error: java.util.zip.ZipException: invalid entry CRC (expected 0xa8ad4caa but got 0x8950a739)
For more details, please see '/home/rjcortese/.cache/scalacli/virtual-projects/7d/project-34b8e93c/.scala-build/stacktraces/1651900203-15551929153428264874.log'

I've installed everything using sdkman with the versions below:

~/test/scala >>> sdk current

Using:

java: 17.0.3-tem
sbt: 1.6.2
scala: 3.1.2
scalacli: 0.1.5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants