Difference between revisions of "Dependencies and Linux Packaging"
(→Guidelines for adding/upgrading dependencies) |
m (→Dependencies) |
||
Line 34: | Line 34: | ||
| [http://forge.scilab.org/index.php/p/jlatexmath/ JLaTeXMath] | | [http://forge.scilab.org/index.php/p/jlatexmath/ JLaTeXMath] | ||
| Used for LaTeX Rendering in node extension (1.2.x) / node core (1.3.x) | | 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) | + | | >=0.9.7 (1.2.x) / >=1.0.2 (1.3.x) |
| [http://anonscm.debian.org/viewvc/pkg-java/trunk/libjlatexmath-java/ libjlatexmath-java] | | [http://anonscm.debian.org/viewvc/pkg-java/trunk/libjlatexmath-java/ libjlatexmath-java] | ||
|- | |- |
Revision as of 09:22, 1 February 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 onlylatest 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!
- also mention latex in core, openmaps integration, workspace plugins in 1.3.x manpage
make sure that srcpure does not contain *.class, *.exe, *.dll, ...build LaTeXLexer.java before build target runsremove /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
- gradle build system
- three new dependencies for ribbons
- knopflerfish upgraded
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:
- http://anonscm.debian.org/gitweb/?p=pkg-java/simplyhtml.git
- http://anonscm.debian.org/gitweb/?p=pkg-java/freeplane.git
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
- discuss your intent to add a dependency on freeplane-developer
- make sure that the dependency does not require a newer version of java than freeplane currently does (i.e. JMapViewer 1.05 would require Java7)
- new dependencies means more work for package developers (both maven and local git deps)
- prefer a library that is actively maintained
- prefer a versioned release over a (git-) snapshot
- document the exact upstream version and where it can be 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 if they match this naming pattern)
- use the flat file repository for source attachments to work (see existing libraries like SimplyHTML)