tarcv <[email protected]> writes:

> Hello,
> After almost a year of effort I finally have Gradle 4.5.1[1] bootstrapped 
> just from the sources and passing most of its unit tests (excluded are tests 
> requiring additional dependencies or not compatible with build 
> containerization), along with some notable dependencies like Spock 2 test 
> framework and half of JUnit 5 test framework - 
> https://github.com/TarCV/gradle-guix . Still, I had to exclude some 
> dependencies and remove some features from Gradle to limit scope of this 
> effort. Namely, nothing depending on IntelliJ, Kotlin[2], Scala, Play!, and 
> JRuby is included, also some smaller dependencies required just for 
> unit/integration tests are excluded along with the tests.
> I want to contribute these build receipts to Guix. So my plan is to implement 
> more or less the following steps as PRs:
> * Fix Groovy to be compiled to 1.8 bytecode (as it is defined in the 
> upstream, see 
> https://github.com/apache/groovy/blob/GROOVY_3_0_5/build.gradle#L79) to allow 
> calling Groovy without requiring JDK 10+
> * Fix Groovy JDK enhancements not working because some resources are missing 
> in Groovy JARs
> * Merge Groovy JARs where the upstream release doesn't have separate JARs. 
> Otherwise, groovy-ant is broken and Gradle requires hacks to make its 
> dependency on Groovy work.
> * Make groovy-test visible
> * Fix Plexus Container metadata in maven-3.0-model-builder
> * Update AssertJ package (or create a new package for a newer version)
> * Replace install phases with install-from-pom.xml for all packages Gradle 
> depends on
> * Contribute the remaining dependencies and Gradle
> Please correct me if some of the above ideas are wrong courses of action.
>
> Also, I'm not sure about these things and would be glad if someone can help 
> with them:
> * On my machine Guix can't download Maven Polyglot (version by Sonatype) from 
> SWH, see https://codeberg.org/guix/guix/issues/3590 , so I had to set the 
> package source URL to a random fork having the required commit. Not sure how 
> to debug this.
> * Grafting breaks JARs containing native binaries (because grafting patches 
> store paths in these binaries but doesn't patch CRCs to match) and breaks 
> JARs built from grafted inputs or inputs having dependencies on grafted 
> inputs (because grafting patches store paths in META-INF/INDEX.LST but 
> doesn't patch its CRC to match). Is there some workaround/fix for this?
>
> [1] 4.5.1 is the newest version not having a lot of Kotlin DSL build scripts 
> or sources. Also, a disclaimer: my build receipts don't work with grafting 
> enabled, see the last paragraph for why.
> [2] I was able to build Kotlin up to 1.1.2-5 following and continuing 
> Emmanuel Bourg's and Julien Lepiller's steps, see 
> https://github.com/TarCV/kotlin-guix. However, I don't think contributing 
> these build receipts to Guix is a good idea. Building Kotlin this way 
> requires hundreds of patches and takes half a day on my machine. Instead, I 
> want to try to transpile core Kotlin compiler to Java.
>
> Regards,
> Constantine Tarasov

Omg!!!!

This is really great. Please think about writing down your process so
that you can make a blog post like the one for the mono bootstrap :)

Good day,
Noé

Attachment: signature.asc
Description: PGP signature

Reply via email to