Difference between revisions of "Dependencies and Linux Packaging"

From Freeplane - free mind mapping and knowledge management software
(Debian)
Line 204: Line 204:
 
=== OpenSuSE ===
 
=== OpenSuSE ===
 
see [https://build.opensuse.org/package/view_file?file=freeplane.spec&package=freeplane&project=Office&rev=cf14d37870fb1f12049ad727dc46e083 this link]
 
see [https://build.opensuse.org/package/view_file?file=freeplane.spec&package=freeplane&project=Office&rev=cf14d37870fb1f12049ad727dc46e083 this link]
 +
 +
== Guidelines for adding/upgrading dependencies ==
 +
* document the exact upstream version and where you've downloaded it (usually in a commit message)
 +
* add maven dependencies when possible
 +
* if your jar is not available in maven:
 +
** commit a versioned jar: <package>-<version>.jar
 +
** make sure to add <package>-<version>-sources.jar (source attachments are automatically picked up by the gradle build system)

Revision as of 17:07, 30 January 2015

Packaging Freeplane for Linux distros

This page contains information about Freeplane requirements/dependencies and GNU/Linux packaging information for release 1.2.x and 1.3.x.

See also How to build Freeplane.

Dependencies

Package Description Version required Debian Package
Groovy Dynamic language for the JVM, used for scripting/add-ons >=1.8.6 groovy (=> use groovy-all.jar to get the deps below as well!)
ANTLR Parser Generator used by groovy >= 2.7.7 antlr (but groovy depends on it)
Apache commons CLI Command line parser, used by groovy. >= 1.2 libcommon-cli-java (but groovy depends on it)
ASM Java bytecode manipulation and analysis framework. >= 3.3.2 libasm3-java (but groovy depends on it)
JLaTeXMath Used for LaTeX Rendering in node extension (1.2.x) / node core (1.3.x) >=0.9.7 (1.2.x) / 1.0.2 (1.3.x) libjlatexmath-java
JSyntaxPane Provides JEditorPane with syntax highlighting, used for groovy scripts and LaTeX (>= 1.3.x). See note below current subversion @revision r156 including Debian patches from libjsyntaxpane-java-0.9.6~r156-5 (1.2.x and 1.3.x) libjsyntaxpane-java
SimplyHTML Rich text editor used for editing node content / notes / ... >=0.16.07 (1.2.x and 1.3.x) simplyhtml
Java Help deprecated, but still used by simplyhtml >=2.0.0? javahelp2
Apache commons lang Helper utilities for java.lang >=2.0 (1.2.x), >=2.6 (1.3.x) libcommons-lang-java
Apache commons IO Helper utilities for java.io >=2.4 libcommons-io-java
JGoodies Forms Helper utilities for forms layout >= 1.2.1 (1.4.x: 1.6.0) --> 1.4.x requires libjgoodies-commons-java 1.4.0) libjgoodies-forms-java
GNU Regexp GNU Regexp implementation (not sure if it's used by freeplane directly, but still used by simpyhtml!) >=1.1.4 libgnu-regexp-java
Knopflerfish OSGi OSGi implementation used by freeplane >=2.3.3; >=1.3.13: 4.1.10 libknopflerfish-osgi-framework-java
Apache Batik used by SVG plugin >=1.7 libbatik-java
Rhino Pure Java open source javascript engine, used by SVG plugin >=1.7R librhino-java
Apache FOP Apache Formatting Objects Processor, used by SVG plugin >=1.0 libfop-java
Xerces2 a library for parsing, validating and manipulating XML documents, used by SVG plugin (not needed when starting from dist, but needed when starting from eclipse??) >=2.5.0 libxerces2-java
Apache XML Commons common code and guidelines for xml projects, used by SVG plugin >=1.4? libxml-commons-external-java
InfoNode Docking Windows Used for docking windows (>=1.3.x) >=1.6.1 libidw-java
JMapViewer Used by openmaps plugin (>=1.3.x) >=1.02 (patch for 1.03 is included!) warning: jmapviewer>=1.04 requires J7! jmapviewer
Apache commons codec Used to encode/decode view state (>=1.3.x) >=1.7 libcommons-codec-java (currently at 1.8)

If you want to know the mapping between freeplane jars and jars in Debian packages, check out this patch.

JSyntaxPane

  • unfortunately, JSyntaxpane is no longer maintained upstream
  • therefore, patches are in one of two places:
    • in Freeplane: freeplane_plugin_script/(src|resources)-jsyntaxpane/** (currently the LaTeX support)
    • as quilt patches in the Debian package
  • In order to fix bugs in JSyntaxPane, add patches, create+upload the package and commit the jsyntaxpane.jar from the package to freeplane.git

Build-time dependencies

  • all of the dependencies above are build-deps too
  • junit, ant, jdk
  • 1.3.x: jflex for compiling latex.flex (LaTeX syntax highlighting for JSyntaxPane)
    • LaTeXLexer.java must be built from latex.flex at package build time

Miscellaneous

  • of course mac stuff can (and must) not be built
  • freeplane_plugin_uispec4j/ can be ignored
  • freeplane_plugin_help/ is no longer needed, can be ignored
  • jortho.jar is built from JOrtho_0.4_freeplane/
  • launch4j is Windows-only

Changes for 1.3.x

  • Debian: require openjdk-7-jre as the only JRE (Depends:) because JMapViewer requires it anyway and jdk6 is not in jessie?
  • launch4j => windows only
  • latest JSyntaxPane (..r156) required (LaTeX syntax highlighting)
    • is ...r156 correctly pulled as a dependency (as opposed to r148!)????
  • new plugin "Openmaps integration", new dependency JMapViewer
  • new feature "Docking Windows", with new dependency IDW
  • new command line option -U (include in man page!)
    • also mention latex in core, openmaps integration, workspace plugins in 1.3.x manpage
      • workspace plugin has been disabled for 1.3.x!!
    • bump up version in man-page!
  • make sure that srcpure does not contain *.class, *.exe, *.dll, ...
  • build LaTeXLexer.java before build target runs
  • remove /etc/kde3/magic/freeplane.magic
  • install a 48x48 icon (http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html)?
  • how to fix 80_no_update_check.patch??
  • fix http://lintian.debian.org/tags/menu-icon-uses-relative-path.html (freeplane package) (fixed in 1.2.23-2)

Changes for 1.4.x

  • three new dependencies for ribbons
  • probably gradle build system

Icons

Freeplane 1.2.x and 1.3.x come with a single icon for files + application (freeplane_framework/build/freeplane.{svg,png}), while Freeplane 1.4.x _might_ have two icons (like on Windows):

  • for files / mime types: freeplane_framework/build/freeplane.{svg,png}
  • for the application: freeplane_framework/build/freeplane_app.{svg,png}

Distro-specific information

See this search link for older packages.

Debian / Ubuntu

Current release for Debian/Ubuntu is 1.3.12, maintainer is Felix Natter <fnatter@gmx.net>. It's now in testing/"jessie". This is the release that will be in Debian jessie stable. See versions in Ubuntu.

The packaging source code is maintained in Git repos:

See the table on the top of the page for Debian git/svn packaging repos of some dependencies.

Mageia Linux

Current release is 1.3.11, maintainer is Hartmut Goebel <h.goebel@crazy-compilers.com>.

The packaging source code is available at:

Arch Linux

Current Release for Arch Linux is 1.3.12, maintainer is Leonidas Spyropoulos <artafinde at gmail dot com>

The package is available in AUR:

The PKGBUILD is maintained at github:

Fedora

TODO: where is it?

OpenSuSE

see this link

Guidelines for adding/upgrading dependencies

  • document the exact upstream version and where you've downloaded it (usually in a commit message)
  • add maven dependencies when possible
  • if your jar is not available in maven:
    • commit a versioned jar: <package>-<version>.jar
    • make sure to add <package>-<version>-sources.jar (source attachments are automatically picked up by the gradle build system)