From Fedora Project Wiki

(Added link to sanselan rpm)
(Adding mchange commons (required for c3p0))
Line 33: Line 33:
| activation.jar || classpathx-jaf || works
| activation.jar || classpathx-jaf || works
|-
|-
| c3p0-0.9.1.2.jar || [https://bugzilla.redhat.com/show_bug.cgi?id=252054 review] (new package needed) || needs packaging
| c3p0-0.9.1.2.jar || [https://bugzilla.redhat.com/show_bug.cgi?id=252054 review] (new package needed) || Undergoing update for Java 1.6 compat
|-
| mchange-commons-0.2 || none || Required for c3p0 building, packaged: [http://spot.fedorapeople.org/etherpad/ spot fedorapeople rpm]
|-
|-
| commons-lang-2.4.jar || jakarta-commons-lang || works
| commons-lang-2.4.jar || jakarta-commons-lang || works

Revision as of 00:45, 10 October 2010

Etherpad FAD

Its a go. See Etherpad FAD for more info.

Packaging Etherpad

There's a not really guidelines compliant version alive here: http://repos.fedorapeople.org/repos/sdz/etherpad/

Etherpad bundles a good chunk of libraries. Some of them are already packaging in Fedora, some aren't.

Libraries bundled in Etherpad

in etherpad/lib

file name fedora package status
dnsjava-2.0.6.jar dnsjava works
jbcrypt-0.2.jar jBCrypt packaged
jcommon-1.0.15.jar jcommon works
jfreechart-1.0.12.jar jfreechart works

in infrastructure/lib

file name fedora package status
activation.jar classpathx-jaf works
c3p0-0.9.1.2.jar review (new package needed) Undergoing update for Java 1.6 compat
mchange-commons-0.2 none Required for c3p0 building, packaged: spot fedorapeople rpm
commons-lang-2.4.jar jakarta-commons-lang works
derby-10.5.1.1.jar derby works
derbytools.jar derby works
dnsjava-2.0.6.jar dnsjava works
jetty-6.1.20.jar jetty works
jetty-sslengine-6.1.20.jar jetty works
jetty-util-6.1.20.jar jetty works
json.jar json Is non-free; free replacement exists [1]
mail.jar javamail works
rhino-js-1.7r1.jar rhino contains proprietary extensions which are patched around. R1 is needed for yuicompressor to work, we have R2 in Fedora
sanselan-0.94aj.jar source (maven-release dependency only from f14 on) packaged: spot fedorapeople rpm
servlet-api-2.5-20081211.jar tomcat6-servlet-2.5-api works
tagsoup-1.2.jar tagsoup works
yuicompressor-2.4-appjet.jar source breaks build, significant api breakage for yuicompressor both in R2 and R3; can be disabled, or we need compat-rhino-17r1. Alternatively, we could ship CSS-only version; performance penalty for JavaScript. needs packaging

Scala Version Issue Compat Packages

Etherpad requires an old version of Scala (upstream ticket)

Jon Stanley's Scala2.7 compat packages:

http://jstanley.fedorapeople.org/etherpad/

Packaged: yes

Accepted: no

Libraries added to the Upstream version (since Google)

Upstream etherpad: http://github.com/ether/pad

Libraries used: http://github.com/ether/pad/tree/master/infrastructure/lib/

  • commons-fileupload-1.2.1.jar
  • commons-io-1.2.1.jar
  • java_uno-3.2.0.jar
  • juh-3.2.0.jar
  • jurt-3.2.0.jar
  • ridl-3.2.0.jar
  • unoil-3.2.0.jar

(note: from commit 70d1f9d6fcaefe611e77, checked 3 Oct 2010)

Notes from Victor Vasilyev

User:Victorv

I've successfully compiled and launched the project on the Fedora 13, and can confirm that is working well. But, I've also noticed that the Google wave has a bit more facilities  :-(

After a brief researching of the project I've opinion that you'll have a lot of the tasks that should be completed before release of the project for the Fedora Linux distribution will happen. I see at least the following tasks:

  • Decomposing of the project, and selecting of all "internal" and "external" components.
  • Replacing the all third-party components with the requirements for each component to have a list of all external dependencies.
  • Providing of the RPM packages for required third-party components that are not in Fedora yet (if any).
  • Dividing of all external dependencies into build-time and run-time dependencies.
  • Sorting of all "internal" components by their languages, and avoiding unneeded languages to simplify the project.

etc.

I think, you should also decide to use a build system that is "usual" for Java (e.g. Ant, Maven, etc.) instead of Bash-scripts.

...And, finally, will be better to see a components diagram for the project (e.g. UML components diagram) that might explain a role of each component, and their dependencies.