* doc/guix.texi (Java Packages): New subsection.
---
 doc/guix.texi | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/doc/guix.texi b/doc/guix.texi
index 6c7107c..b54582b 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -225,6 +225,7 @@ Packaging Guidelines
 * Synopses and Descriptions::   Helping users find the right package.
 * Python Modules::              Taming the snake.
 * Perl Modules::                Little pearls.
+* Java Packages::               Coffee break.
 * Fonts::                       Fond of fonts.
 
 Contributing
@@ -10739,6 +10740,7 @@ needed is to review and apply the patch.
 * Synopses and Descriptions::   Helping users find the right package.
 * Python Modules::              Taming the snake.
 * Perl Modules::                Little pearls.
+* Java Packages::               Coffee break.
 * Fonts::                       Fond of fonts.
 @end menu
 
@@ -10980,6 +10982,25 @@ are also prepended by @code{perl-}.  Such modules tend 
to have the word
 prefix.  For instance, @code{libwww-perl} becomes @code{perl-libwww}.
 
 
+@node Java Packages
+@subsection Java Packages
+
+Java programs standing for themselves are named as any other package,
+using the lowercase upstream name.
+
+To avoid confusion and naming clashes with other programming languages,
+it's desirable that the name of a package for a Java package is prefixed
+with @code{java-}.  If a project already contains the word
+@code{java}, we drop this; for instance, the package @code{dnsjava}
+is packaged under the name @code{java-dns}.
+
+For Java packages containing a single class or a small class hierarchy,
+we use the lowercase class name, replace all occurrences of @code{.} by
+dashes and prepend the prefix @code{java-}. So the class
+@code{apache.commons.cli} becomes package
+@code{java-apache-commons-cli}.
+
+
 @node Fonts
 @subsection Fonts
 
-- 
2.7.4


Reply via email to