Kotlin

Kotlin is a statically standardized language developed by ?JetBrains. Alike Java, Kotlin has become a choice for developing Android applications. This is evident from the fact that Android Studio comes with inbuilt support for Kotlin like it has for Java. But the fact being, we lack kotlin in Debian, and hence, various supports provided by Android Studio lacks in Debian and it's Derivatives. We intend to package kotlin with version 1.3.30 (v1.1.1 was too old and not supported anymore).

Kotlin packaging is one of the major tasks for the project Android SDK tools in Debian under Google Summer of Code.

What needs to be done?

The ultimate goal is to build Kotlin from itself. Initially, the idea was to build kotlin from its bootstrap. Bootstrap is nothing but the support provided by the SDK manager which provides full distribution for its toolchains. The bootstrap is not from any upstream source, it like a tool that has a bunch of binaries such as kotlin-compiler, Gradle 4.4 et al which is used to build kotlin. In the past year, m36 and seamlik did a lot of work packaging the dependencies and building Kotlin. The kotlin-bootstrap can be found at https://salsa.debian.org/m36-guest/kotlin-bootstrap.

What is the objective?

As per the discussion, The original plan is to make a non-free package containing the Kotlin binaries and use it to build Kotlin. But since Kotlin is architecture-free and the first uploads must always upload the built binaries together, maybe we don't need to upload kotlin-bootstrap to Debian at all.

Kotlin bootstrap is just used to build the real Kotlin on our local machine. For that here is a little workflow, which will give a fair idea of how to build it locally!

Prioritizing the work

For kotlin to build properly, we will have to refine it's dependencies first if some of the packages are left, we need to package them on an urgent basis.

WIP: To list all the dependencies needed for kotlin, along with their status (Needs Changes/Good to Go).

Dependencies for Kotlin

libtrove-intellij-java

Uploaded

proguard:6.0.3

Uploaded

libjna-platform-java

Uploaded

picocontainer-1.3

Uploaded

jengeleman:shadow:4.0.3

Uploaded

libjna-platform-java

Uploaded

JLine3

Uploaded

intellij-community-idea

Needs Refinement

kotlin-bootstrap

Needs Changes

picocontainer-1.4

Needs Changes

io.javaslang:2.0.6

Debian's vavr works

intellij-core

WIP

Just for information, here are the binaries in intellij-community-idea:

libintellij-utils-java

libintellij-jps-model-java

libintellij-extensions-java

libintellij-platform-api-java

libintellij-platform-impl-java

libintellij-core-java

Part of the Java Team

Since Kotlin is a JVM language most of the time, and it requires lots of Java libs, it is part of the Java Team


All the real-time discussions are welcome at #debian-mobile on OFTC.