FUDCon Tempe Hackfest: Etherpad
This post is one of multiple FUDCon Tempe hackfest liveblogs. (Not sure what FUDCon is? Read this post first.)
I caught up with and Sebastian Dziallas in the back corner of the lightning talks room as they were winding down several hours of work on Etherpad, a browser-based collaborative text editor that's used widely for realtime document editing within the Fedora community. They're drawing on work started at the Etherpad FAD in October of 2010 and were happily surprised to find some patches from the earlier FAD had already been adopted into the latest upstream release.
What are you guys doing?
Sebastian: We're working on Etherpad and trying to get it packaged in Fedora.
Andrew: It's actually a good example of bringing a random third-party application into Fedora. In a lot of cases, Java applications will bundle random blobs that they get from someplace, so the procedure to go through to get something like that into Fedora is to start with a spec file (a script that, among other things, specifies how to install the software) that will build it the way [the upstream community] expects it to build. Start by using their bundled [library] copies, and one by one go through and replace each [library] with the Fedora copies.
Note for newcomers: "packaging" refers to getting a piece of open source software into the list of "one-click installs" that users of a Linux distribution like Fedora can easily try out. Different distributions have different requirements for packaging, and Fedora has fairly strict standards for licensing and up-to-dateness of code; furthermore, all the software dependencies that a program relies upon must be packaged separately, also in Fedora, before the program itself is allowed in.
Packaging a piece of software for Fedora therefore usually entails a thorough architecture and licensing review along with patching the software to use well-maintained code libraries - it can be a fair amount of work. The payoff is that your software is instantly exposed to a wider audience who can install and test your latest stable release with one command or a few button clicks. You can learn more about packaging software for Fedora at the Package Maintainers page.
Andrew: Most of the hard work has already been done. Almost all the dependencies are already in Fedora.
Mat: We've found the dependencies that aren't [in Fedora] yet, so I'm working on packaging them.
Andrew: And I can get them reviewed hopefully today or tomorrow. There's just a few that remain...
Sebastian: Right - 3 packages. We started out with having 30 libraries which were bundled, and ripped them out over the time, and now we're down to 3.
Andrew: 2 of the remaining ones are actually forked copies of libraries we do have in Fedora, so we're seeing if we can make [Etherpad] work with the unforked version.
What can people do to help?
Andrew: One thing we need is a Scala programmer. We want to see if we can get Etherpad upstream working with the latest version of Scala, 2.8, because right now we're making it work with the compat-package [of an outdated version of Scala].
Sebastian: There's one last package of doom (c3p0-0.9.1.2.jar) that is needed to build Etherpad, but it currently has trouble compiling against the latest Java version. We need a Java programmer to take a look and see if they can fix that, remove Etherpad's dependency on it, or use a different Java compiler on it.
If you're a Scala or Java programmer or packager who can help, get in touch with Andrew, Mat, or Sebastian and take a look at the notes on Packaging Etherpad, and hopefully we'll have Etherpad packaged and etherpad.fedoraproject.org up and running sometime during the next release.