From Fedora Project Wiki

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.

Moving towards a package of Upstream

Recommended you start with these notes on how I'm getting Etherpad 1.1 to work without bundled libraries.

Based on SDZ spec (see "not really guidelines compliant version") and tons of packages by JStanley and Spot (see chart below)

--Colin Z 00:03, 18 October 2010 (UTC)

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. R1 with appjet patches package: spot fedorapeople rpm
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. Yuicompressor w/ patches working in above appjetrhino package: spot fedorapeople rpm

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/

  • java_uno-3.2.0.jar -> openoffice.org-ure
  • juh-3.2.0.jar -> openoffice.org-ure
  • jurt-3.2.0.jar -> openoffice.org-ure
  • ridl-3.2.0.jar -> openoffice.org-ure
  • unoil-3.2.0.jar -> openoffice.org-ure
  • commons-io-1.4.jar -> jakarta-commons-io
  • commons-fileupload-1.2.1.jar -> jakarta-commons-fileupload

(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.

Note from Matěj Cepl

User:MCepl