Hello everybody, I believe this is my first post to the list, so let me first introduce myself quickly. My name is Mikołaj Izdebski, I am Java build system maintainer in Fedora and Red Hat Enterprise Linux. You can find list of my Fedora packages at [8]. Since 2011 I am sponsored maintainer of one Debian package [9], for which I'm also upstream developer. I am usually lurking on #debian-java and #debian-devel as "mizdebsk".
For the past 4 years I've been working on improving and automating Java packaging techniques in Fedora/RHEL. Seeing Debian trying to do the same now (esp. recent implementation of Gradle helper and attempt to package Tycho) I feel obligated to help you, at least by pointing and explaining existing solutions in Fedora, sharing other experience or even doing Debian packaging work. Let me start by mentioning a few problems Fedora had with Eclipse packaging and pointing to solutions for them. If anyone is interested in hearing more details, I'll be glad to elaborate on them. 1. Bootstrapping Tycho. Tycho requires itself to build. Furthermore, there is a dependency cycle between Tycho end Eclipse Platform -- Eclipse requires Tycho to build and Tycho uses Eclipse bundles during runtime. Fedora implements two bootstrap modes for Tycho -- partial bootstrap (requires Eclipse in build-depends) and full bootstrap. Patches and scripts used for bootstrapping Tycho in Fedora are available at [1]. 2. Offline OSGi bundle resolution. Having Tycho packaged doesn't mean it can immediately be used for building packages in offline mode (without network access). Fedora has a patch that implements offline ("local") mode, but it depends on XMvn [4,5] and fedoraproject-p2 [6] (despite its name, fedoraproject-p2 is not Fedora specific and should work in Debian too). Fedora patches for Tycho are available at [1]. 3. Droplets. Eclipse Luna adds a new feature - "P2 fragments" [2], aka "droplets", which significantly reduces Eclipse startup time when used [3], but requires additional work to implement. Again, Fedora creates droplets with by using XMvn and fedoraproject-p2. 4. XMvn. I would like to suggest trying using XMvn project in Debian. It has been designed specifically to automate packaging Java software for GNU/Linux distributions. XMvn strives to be distribution-agnostic (all Fedora- and RPM-specific code are in separate project -- javapackages [7]). XMvn has full support for Apache Maven, Gradle, Eclipse Tycho and Apache Ivy, plus partial support for Aether Ant Tasks and SBT (through Ivy). If there is any interest in seeing XMvn used in Debian then I'm willing to package it, maintain it and implement any upstream code necessary to support Debian use cases. I hope you will find this bit of information helpful. -- Mikołaj [1] http://pkgs.fedoraproject.org/cgit/tycho.git/tree/ [2] https://wiki.eclipse.org/Equinox/p2/P2_Fragments [3] https://rgrunber.wordpress.com/2015/10/05/eclipse-p2-droplets-in-rawhide/ [4] https://mizdebsk.fedorapeople.org/xmvn/site/ [5] https://github.com/mizdebsk/xmvn/ [6] https://github.com/rgrunber/fedoraproject-p2 [7] https://github.com/mizdebsk/javapackages [8] https://admin.fedoraproject.org/pkgdb/packager/mizdebsk/ [9] http://qa.debian.org/developer.php?login=zurg...@gmail.com