Sorry for all the confusing questions, but getting to know a new build
process, especially such an advanced one as Debians, is quite....
confusing to begin with.
On 08.02.2019 02:29, Thorsten Glaser wrote:
On Thu, 7 Feb 2019, Thomas Finneid wrote:
One thought, both the scala team and the sbt team produces .deb
packages, can they be uploaded as final distribution packages, or even
used as the the toolchain package on the CI system?
No, of course absolutely not.
I have been trying to read some of the documentation on package
mainteneance, especially "Debian New Maintainers' Guide" and the newer
"Guide for Debian Maintainers".
I havent been able to find yet, any documentation that describes the
entire build system, from package editing to building and publishing to
repositories. Is there a chapter or document that contains the entire
description?
Some cross-compiling things to get things bootstrapped is often
possible, for C stuff at least. But otherwise… not normally, and
especially not if there’s another way to do it, no matter how
painful it may be.
Recommended reading:
https://www.archive.ece.cmu.edu/~ganger/712.fall02/papers/p761-thompson.pdf
This is even more recommended as I understand that Scala is
some sort of compiler?
I suspect you already know this, but just so there is no
misunderstanding about what is what:
- Scala is a jvm based programming language. So the scala package
provides jar files, which contains a scala compiler, repl and runtime
system. It depends on a JDK, currently v8, so it needs that installed.
- Sbt is the Scala Build Tool, its comparable to make, in a modern form,
similar to gradle and maven. It also depends on jdk in addition to scala.
Scala and sbt proper runs on the jvm, by adding scala and sbt language
libraries to the jvm classpath. So scala and sbt is really only jar
files containing the scala and sbt environemtns in jvm bytecode.
One question comes to mind, does building the debian package require the
upstream scala source or could one use the binary release of scala and
sbt (bearing in mind "binary release" means jvm bytecode)?
Thinking of it, not using the relase binaries, would make the resulting
compilation unsafe, as the CI system the scala team uses, contains an
integrity test part, which bootstraps the entire build. I dont knwo how
to set that up, if possible at all for anyone but the scala developers.
Regards
Thomas