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é
signature.asc
Description: PGP signature
