From Fedora Project Wiki
Goals
- package latest Gradle 2.x
- implement local resolver so that packages can be built with Gradle
- this includes Gradle itself
- package older Gradle from 1.x line, if needed (optionall)
- some projects won't compile with Gradle 2.x or even incompatible version from 1.x line
TODO
- report usage of non-free JSON library (org.json:json)
- "The Software shall be used for Good, not Evil."
- android-json-org-java can be used as free replacement
- packaging
- update to newer version
- groovy (1.8.x -> 2.3.x)
- spock-core
- native-platform (0.3 -> 0.10)
- aqute-bndlib (1.x -> 2.x)
- update to newer version
- patching Gradle
- port to apache-sshd 0.11.0 (uses 0.10.0, minor patch)
- port to jetty 9 (uses 6)
- port to aether-ant-tasks from maven-ant-tasks
- port to bouncycastle 1.50 (uses 1.46)
Bootstrap plan
Plan for bootstrapping Gradle in Fedora.
People involved: Mikolaj Izdebski
Current state: during phase 3
Phase 1 (initial bootstrap)
- build rpm package containing upstream binaries
- rebuild Gradle from source
- all dependencies coming from the Internet
- from now on:
- Gradle can be installed from rpm
- results: https://mizdebsk.fedorapeople.org/gradle/stage1/
Phase 2 (local mode)
- implement local mode using XMvn
- package all Gradle build dependencies in wrapper rpm
- binaries taken from the Internet
- XMvn metadata added
- from now on:
- Gradle can be built in isolated environment without Internet access
- new rpm packages can be created which use gradle as build system
- results: http://copr.fedoraproject.org/coprs/mizdebsk/gradle/
Phase 3 (dependency refinement)
- while wrapper rpm is not empty:
- pick one artifact from wrapper rpm
- if it is not yet available in fedora:
- build it from source and package it as rpm
- skip tests if there are too many missing test dependencies
- add any missing build or test dependencies to wrapper rpm
- rebuild Gradle and run tests to make sure everything keeps working
- if there are build or test failures, debug them and create patches
- get rid of wrapper rpm
- from now on:
- Gradle with all dependencies are free from prebuilt binaries
- everything is patched to work with artifact versions available in Fedora
Phase 4 (push to Fedora)
- request FPC bootstrap exception
- for all new packages:
- do review (licensing etc)
- cleanup spec file
- submit for review
- someone else reviews the package
- package is checked into Fedora git and built in Koji
- from now on:
- we have gradle in Fedora
Phase 5 (further improvements)
- implement javapackages macros for Gradle
- prepare packaging documentation
- announce gradle availability
- upstream patches
- enable tests (if skipped)
Dependencies
Gradle 2.1 build and test dependencies.
groupId | artifactId | extension | classifier | version | Fedora package | Fedora version |
---|---|---|---|---|---|---|
biz.aQute.bnd | bndlib | pom | 2.1.0 | |||
biz.aQute.bnd | bndlib | jar | 2.1.0 | |||
biz.aQute.bnd | parent | pom | 2.1.0 | |||
cglib | cglib-nodep | pom | 2.2 | |||
cglib | cglib-nodep | jar | 2.2 | |||
com.typesafe.sbt | compiler-interface | pom | 0.13.0 | |||
com.typesafe.sbt | compiler-interface | jar | sources | 0.13.0 | ||
com.typesafe.sbt | incremental-compiler | jar | 0.13.0 | |||
com.typesafe.sbt | incremental-compiler | pom | 0.13.0 | |||
com.typesafe.sbt | sbt-interface | jar | 0.13.0 | |||
com.typesafe.sbt | sbt-interface | pom | 0.13.0 | |||
com.typesafe.zinc | zinc | pom | 0.3.0 | |||
com.typesafe.zinc | zinc | jar | 0.3.0 | |||
docbook | docbook-xsl | zip | 1.75.2 | |||
docbook | docbook-xsl | pom | 1.75.2 | |||
jquery | jquery.min | js | 1.11.0 | |||
junit | junit | pom | 4.11 | junit | 4.11 | |
junit | junit | pom | 4.12-beta-1 | junit | 4.11 | |
junit | junit | pom | 4.12-beta-2 | junit | 4.11 | |
net.rubygrapefruit | native-platform | pom | 0.10 | native-platform | 0.3 | |
net.rubygrapefruit | native-platform | jar | 0.10 | native-platform | 0.3 | |
net.rubygrapefruit | native-platform-freebsd-amd64 | pom | 0.10 | |||
net.rubygrapefruit | native-platform-freebsd-amd64 | jar | 0.10 | |||
net.rubygrapefruit | native-platform-freebsd-i386 | pom | 0.10 | |||
net.rubygrapefruit | native-platform-freebsd-i386 | jar | 0.10 | |||
net.rubygrapefruit | native-platform-linux-amd64 | pom | 0.10 | native-platform | 0.3 | |
net.rubygrapefruit | native-platform-linux-amd64 | jar | 0.10 | native-platform | 0.3 | |
net.rubygrapefruit | native-platform-linux-i386 | pom | 0.10 | |||
net.rubygrapefruit | native-platform-linux-i386 | jar | 0.10 | |||
net.rubygrapefruit | native-platform-osx-amd64 | pom | 0.10 | |||
net.rubygrapefruit | native-platform-osx-amd64 | jar | 0.10 | |||
net.rubygrapefruit | native-platform-osx-i386 | jar | 0.10 | |||
net.rubygrapefruit | native-platform-osx-i386 | pom | 0.10 | |||
net.rubygrapefruit | native-platform-windows-amd64 | jar | 0.10 | |||
net.rubygrapefruit | native-platform-windows-amd64 | pom | 0.10 | |||
net.rubygrapefruit | native-platform-windows-i386 | pom | 0.10 | |||
net.rubygrapefruit | native-platform-windows-i386 | jar | 0.10 | |||
org.apache.maven | maven-ant-tasks | pom | 2.1.3 | |||
org.apache.maven | maven-ant-tasks | jar | 2.1.3 | |||
org.bouncycastle | bcpg-jdk15 | jar | 1.46 | |||
org.bouncycastle | bcpg-jdk15 | pom | 1.46 | |||
org.bouncycastle | bcprov-jdk15 | jar | 1.46 | |||
org.bouncycastle | bcprov-jdk15 | pom | 1.46 | |||
org.codehaus.groovy | groovy | pom | 2.3.7 | groovy-lib | 1.8.9 | |
org.codehaus.groovy | groovy | pom | 2.4.0-beta-1 | groovy-lib | 1.8.9 | |
org.codehaus.groovy | groovy | pom | 2.4.0-beta-2 | groovy-lib | 1.8.9 | |
org.codehaus.groovy | groovy | pom | 2.4.0-beta-3 | groovy-lib | 1.8.9 | |
org.codehaus.sonar-plugins | parent | pom | 13 | |||
org.codehaus.sonar-plugins | sonar-runner | jar | 2.0 | |||
org.codehaus.sonar-plugins | sonar-runner | pom | 2.0 | |||
org.codehaus.sonar | sonar | pom | 2.9 | |||
org.codehaus.sonar | sonar-batch | pom | 2.9 | |||
org.codehaus.sonar | sonar-batch | jar | 2.9 | |||
org.codehaus.sonar | sonar-batch-bootstrapper | pom | 2.9 | |||
org.codehaus.sonar | sonar-batch-bootstrapper | jar | 2.9 | |||
org.codehaus.sonar | sonar-plugin-api | jar | 2.9 | |||
org.codehaus.sonar | sonar-plugin-api | pom | 2.9 | |||
org.mortbay.jetty | jetty | pom | 6.1.25 | |||
org.mortbay.jetty | jetty | jar | 6.1.25 | |||
org.mortbay.jetty | jetty-annotations | jar | 6.1.25 | |||
org.mortbay.jetty | jetty-annotations | pom | 6.1.25 | |||
org.mortbay.jetty | jetty-naming | jar | 6.1.25 | |||
org.mortbay.jetty | jetty-naming | pom | 6.1.25 | |||
org.mortbay.jetty | jetty-parent | pom | 10 | |||
org.mortbay.jetty | jetty-parent | pom | 7 | |||
org.mortbay.jetty | jetty-plus | jar | 6.1.25 | |||
org.mortbay.jetty | jetty-plus | pom | 6.1.25 | |||
org.mortbay.jetty | jetty-util | jar | 6.1.25 | |||
org.mortbay.jetty | jetty-util | pom | 6.1.25 | |||
org.mortbay.jetty | jsp-2.1 | jar | 6.1.14 | |||
org.mortbay.jetty | jsp-2.1 | pom | 6.1.14 | |||
org.mortbay.jetty | jsp-api-2.1 | jar | 6.1.14 | |||
org.mortbay.jetty | jsp-api-2.1 | pom | 6.1.14 | |||
org.mortbay.jetty | project | pom | 6.1.14 | |||
org.mortbay.jetty | project | pom | 6.1.25 | |||
org.scala-lang.modules | scala-xml_2.11 | pom | 1.0.2 | |||
org.scala-lang | scala-library | pom | 2.11.3 | scala | 2.10.4 | |
org.scalatest | scalatest_2.11 | pom | 2.2.2 | |||
org.scalatest | scalatest_2.11 | pom | 2.2.3-SNAP1 | |||
org.scalatest | scalatest_2.11 | pom | 2.2.3-SNAP2 | |||
org.scalatest | scalatest_2.11 | pom | 3.0.0-SNAP1 | |||
org.sonatype.pmaven | pmaven-common | pom | 0.8-20100325 | |||
org.sonatype.pmaven | pmaven-common | jar | 0.8-20100325 | |||
org.sonatype.pmaven | pmaven-groovy | jar | 0.8-20100325 | |||
org.sonatype.pmaven | pmaven-groovy | pom | 0.8-20100325 | |||
xhtmlrenderer | xhtmlrenderer | jar | R8rc1 | |||
xhtmlrenderer | xhtmlrenderer | pom | R8rc1 | |||
xslthl | xslthl | jar | 2.0.1 | |||
xslthl | xslthl | pom | 2.0.1 |