[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ A ] [ next ]
The DDP considers a Debian Manual to be any piece of documentation created to address the needs of users of Debian system or developers in the Debian project.
FIXME:The documentation which comes with application software packages
and installed in such places as
/usr/share/doc/packagename*.txt.gz
or
/usr/share/doc/packagename/html/*
are not the focus of
this chapter at this moment.
Debian Manuals are moving targets in the sense that they should be constantly be updated to include relevant information related to the object that is being documented. Some of the manuals the DDP currently holds are:
Users' manuals
Debian GNU/Linux FAQ
Debian Installation Manual (*)
Debian Release Notes (*)
Debian Reference
APT HOWTO
dselect Documentation for Beginners (*)
User's Guide
Debian Guide (****)
The Debian Linux User's Guide (****)
Euro support in Debian GNU/Linux
Debian GNU/Linux and Java FAQ
Securing Debian Manual
The Linux Cookbook (****)
Developers' manuals
Debian Policy Manual (**)
Debian Developer's Reference
Debian New Maintainers' Guide
dpkg Internals Manual (***)
Debian Menu System (**)
Introduction to i18n
Miscellaneous manuals
Debian Project History
Linux Magazines (***)
Debiandoc-SGML Markup Manual (***)
Debian SGML/XML HOWTO
Here, some documents are not directly under DDP:
(*) are provided by the boot-floppies team.
(**) are provided by the Debian Policy List [email protected]
.
(***) are provided by the corresponding package.
(****) are online versions of printed books, provided by their authors and the packagers.
Manuals are usually of interest to a wide variety of people across all countries and as such should be translated. This helps avoid problems with language barriers and manages to make Debian more useful to people all over the world.
The DDP provides resources for Debian manual writers, translators and reviewers. These resources help co-operation between all the different people responsible to making a document available to those that wish to read it. Thus, the framework provides:
A common area for holding the sources of documentation.
An automatic method for publishing documentation in the web server (and mirrors) in different formats.
An automatic method for publishing documentation in the FTP server (and mirrors) [under development].
An automatic method for creating packages for the documentation [under development].
An automatic method to keep track of changes between revisions and help translators update the translated sources [under development].
A way to track requests and bug reports through the use of the Bug Tracking System (sending bugs to the associated packages).
The placeholder for the DDP manuals section in the CVS server is the
manuals.sgml
directory. Documents under that directory must
follow the following policies
SGML is used as the source format for all manuals. Both SGML format compatible
with the debiandoc-sgml
[6] tool chain (DTD version 1 or later) and Docbook [7] (SGML or XML, the 4.1.2 version
or later). For the time being the default article style [8] might need to be used.
Note: To translate from debiandoc-sgml format to docbook-xml please obtain and install latest tool from DDP CVS by:
$ cd $HOME $ echo 'export PATH="~/Debiandoc-to-docbook:${PATH}"'>> ~/.bash_profile $ . ~/.bash_profile $ export CVSROOT=:pserver:[email protected]:/cvs/debian-doc $ cvs login $ cvs co -d Debiandoc-to-docbook utils/debiandoc-to-docbook $ cd Debiandoc-to-docbook $ cd /some/debiandoc/sgml/source-directory/ # use of mc is easy way :)
This script translates from debiandoc-sgml to docbook-xml with an XSLT stylesheet. Please read README and dd3xml.html in this archive for the details.
When to you use which format? Docbook needs not be the chosen always as the only documentation format. Debiandoc-sgml is preferred for most manuals since:
it's simpler (46 elements versus 300+) and thus easier to use.
output is (currently) better for some purposes, it is also more consistent (due to simplicity of the DTD).
it's a tool that has been used for all previous Debian) manuals.
However, the debiandoc-sgml DTD does have some drawbacks including:
it is not possible to include images (see Bug #140684
) or tables (see
Bug #141727
)
it is not internationalized completely (see Bug #31266
)
there are some layout issues when generating some formats.
So, stick with debiandoc-sgml unless you need tables, figures, optional framed output and such.
The other options for the source file format were: LaTeX, HTML, texinfo, groff and several other minor formats. Even if some of these were used at some point by DDP documents their use is not supported. All DDP manuals must be provided either in debiandoc-sgml or docbook (sgml or xml) format (this rule does not necessarily apply to other documentation that is handled by the DDP)
FIXME: Add links to relevant discussion on the mailing list, such as:
FIXME: Discuss translation of documents and reference PO
translation of debiandoc documents
and i18n
and documentation
(discuss needs of reviewers and translators).
If you think a manual is missing in the Debian Documentation Project and want to contribute writing it first (or have it already written) please follow this procedure:
read this policy first (you are obviously in the right track, aren't you?)
contact the DDP (through the mailing list
) and post
there the document you want to start working on.
before creating a new manual, consider if your new documentation can be integrated into a previous manual (as a new chapter, for example). Also consider taking up the maintainership of an orphaned manual if it's similar to the one you want to work in.
ask for CVS
access
to the DDP area [9]
(once the document compiles properly) ask for it to be published under the
web server documentation
.
(once you want to make public the document) ask the web team to provide a link
to the document from the DDP
pages
.
create new packages (preferably using cvs-buildpackage
) and submit
it to the debian upload queue.
ask for translations at the internationalization mailing
list
(and keep track of those that volunteered as translators)
attend to bugs either sent directly to your mail address (if published in the
document's author field), through the BTS (if packages are available) or
through the appropriate mailing lists (you should subscribe to the DDP mailing list
,.
Documents under the manuals.sgml
are compiled and published
through a chain of Makefile
s. The Makefile under the root dir
includes a definition of which subdirectories will be handled in the chain.
This makes the Makefile go through each of the subdirs and compile the
documents.
All documents must hold a Makefile
in the main directory.
Contents of this Makefile must be derived from the ones
included in the Makefile.common
, this file includes common
definitions (such as publish) which will be used when compiling and
common variables (such as the place where to install the compiled
documentation) that should not be modified.
Following make target are used:
all: build all formats within the source directory
publish: publish all web contents to the PUBLISHDIR
publish-ftp: publish all FTP contents to the PUBLISHDIR (proposed)
clean: clean files which all target created
distclean: clean files which all, publish, and publish-ftp target created
Following make variables are used:
PUBLISHDIR: root of the directory where files are installed. The value provided by the higher level Makefile shall override one defined in the Makefile.
In order to provide readers for different methods to access documentation, we strive to publish contents in all the following formats:
HTML. This format is required and necessary for publishing documents in different media. This format allows users to browse the web server's documentation, the CD documentation, etc. using any web browser of their choice. For long documents it is preferred to divide into multiple files (this is done automatically by debiandoc-sgml) in order to browse more easily through different chapters (allows for faster downloads).
Plain text. This format is also required since it's the most portable across any environment. It is also best used for using simple (a.k.a grep) and complex (documentation databases) methods to find information on documentation. Manuals provided in plain text must be compiled into a single file.
Postscript (PS). This is an optional format, it allows pretty printing of documents in Postcript-enabled printers and is sometimes better for reading under some environments. Postcript is sometimes associated with Unix-like environments (but there are also Postcript tools for others). It has been currently displaced, however, by the PDF format. Documents in Postcript format are provided in a single file.
Adobe's PDF format. This is also an optional format, however, the PDF format has received widespread use in unix and non-unix environments. Documents in PDF format are used to print the document or to read the document on-screen, since it's usually possible to provide better formatting within this environment. It's also a single file format.
In the following section, the choice of the file names and their locations are explained. Here following conventions are used:
manualname is the generic name of the manual without language specification (it is most likely the source package name).
LANG is the language specification and uses the same convention as the apache auto-language selection (en, fr, it, de, pt-br, ...).
LOCALE is the locale specification and uses the same
convention as the glibc
.
FIXME:I can not find short version of locale "en" or "fr" anyway: en, fr, it, de, pt_BR, ... or should be like full description such as en_US.UTF8.
DDP run CVS server and keep upstream SGML source (or its copy).
CVSROOT=:pserver:[email protected]:/cvs/debian-doc Repository: ddp/manuals.sgml/manualname/
After obtaining concensus in [email protected]
one can start new directory as follows:
$ cd someplace $ CVSROOT=:pserver:[email protected]:/cvs/debian-doc $ export CVSROOT $ cvs co ddp/manuals.sgml/ $ cd ddp/manuals.sgml/ $ mkdir new-ddp-manual-name $ cvs add new-ddp-manual-name $ cvs ci ...
FIXME: write about why you need to make Debian packages. And also how to make them easily.
The Source package contains the SGML source only
Option 1:
packagename_version_all.tar.gz
packagename_version_all.dsc
Option 2
packagename_version_all.tar.gz
packagename_version-buildversion_all.diff.gz
packagename_version-buildversion_all.dsc
The latter format is preferred even if you are the upstream maintainer.
If the source consists of multiple files, you are encouraged to keep them in one specific subdirectory per language.
FIXME: Adam believes that it could be possible to distribute the SGML source _only_ and creating the formats the user wants to have at runtime (could be installation time as well as afterwards). This has several advantages:
the .debs would be small
greatest flexibility
it could be possible even adjust links when compiling the docs, i.e. replacing Internet links to local ones if the files are present !!!
it's probably easier to keep an overall index page up-to-date (a la dwww)
Some disadvantages are:
people need to have debiandoc-sgml installed (but that's not big)
formatting will take a few seconds (not too much but simply unpackaging would be faster)
This has also been discussed recently (see http://lists.debian.org/debian-doc/2002/debian-doc-200212/msg00097.html
)
The Binary package provides the documents in each of the proposed formats for offline reading. Binary packages should include all the formats for which the document compiles. As for translations, they should be provided as separate packages if the binary (with all the available translations) exceeds five megabytes in size (see below for the appropriate naming for these binary packages).
Depending on wether or not translations are provided in different binary packages the package naming will be:
A single packagename_version_all.deb package which holds the english original (and all the translations if any).
If there are multiple binary packages:
One packagename-LANG_version_all.deb for every translation available (including english)
A virtual package packagename_version_all.deb that depends on all of the available translated (and original) versions.
FIXME: this is debatable. Currently many package name packagename_version_all.deb just install the English original. Some people feel that the use of the name for the English package, packagename-en_version_all.deb should be discouraged.
In order to make DDP documents easy to find, use of /usr/share/doc/Debian/ has been adopted as the central location. Currently this file location is under discussion.
Index page (optional, auto generated):
/usr/share/doc/Debian/manualname/index.html or
/usr/share/doc/Debian/manualname/index.LANG.html
HTML:
/usr/share/doc/Debian/manualname/manualname.LANG.html
/usr/share/doc/Debian/manualname/ch-1.LANG.html
... (all other chapters of the document in html forms.)
plain text:
/usr/share/doc/Debian/manualname/manualname.LANG.txt.gz
Compressed file to comply with the policy
Postscript (PS):
/usr/share/doc/Debian/manualname/manualname.LANG.ps.gz
Compressed file to comply with the policy
PDF:
/usr/share/doc/Debian/manualname/manualname.LANG.pdf.gz
Compressed file to comply with the policy
In order to make DDP documents easy to find, use of /usr/share/doc/Debian/ has been adopted as the central location. Currently this file location is under discussion.
Index page (optional, auto generated): ???? === XXX FIXME XXX ===
/usr/share/doc/Debian/manualname/index.html or
/usr/share/doc/Debian/manualname/index.LANG.html
HTML:
/usr/share/doc/Debian/manualname/LANG/html/manualname.html
/usr/share/doc/Debian/manualname/LANG/html/ch-1.html
... (all other chapters of the document in html forms.)
/usr/share/doc/packagename-LANG/html should point to /usr/share/doc/Debian/manualname/LANG/html/ (as a symlink). This is because we need to have (per policy) the packagename-LANG directory if we are going to make packages per language. (FIXME: Policy 13.4-5 does not say this so explicitly. Osamu)
plain text:
/usr/share/doc/Debian/manualname/LANG/manualname.txt.gz
Compressed file to comply with the policy
Any policy required symlink ??? === XXX FIXME XXX ===
Postscript (PS):
/usr/share/doc/Debian/manualname/LANG/manualname.ps.gz
Compressed file to comply with the policy
Any policy required symlink ??? === XXX FIXME XXX ===
PDF:
/usr/share/doc/Debian/manualname/LANG/manualname.pdf.gz
Compressed file to comply with the policy
Any policy required symlink ??? === XXX FIXME XXX ===
Note: having /usr/share/doc/packagename-LANG/ also helps if we want to help people use locale-purge for documentation too. (javi)
If so, we need symlink in /usr/share/doc/Debian/ while /usr/share/doc/packagename-LANG/ should contain real files. (osamu)
These are created with publish target. PUBLISHDIR is used to locate directory to install documentation where http://www.debian.org/doc/manuals/ is pointing.
Index page (optional, auto generated):
http://www.debian.org/doc/manuals/manualname/index.html or
http://www.debian.org/doc/manuals/manualname/index.LANG.html
HTML:
http://www.debian.org/doc/manuals/manualname/manualname.LANG.html
http://www.debian.org/doc/manuals/manualname/ch-1.LANG.html
... (all other chapters of the document in html forms.)
plain text:
http://www.debian.org/doc/manuals/manualname/manualname.LANG.txt
Not-compressed file for better browser interaction
Postscript (PS):
http://www.debian.org/doc/manuals/manualname/manualname.LANG.ps
Not-compressed file for better browser interaction
PDF:
http://www.debian.org/doc/manuals/manualname/manualname.LANG.pdf
Not-compressed file for better browser interaction
Stable version of documents are installed from released package to DDP web page with a script un-compressing files.
FIXME: How is this install automated? Explain the process. We might need ftp-masters to allow access without an upload.
Index page (optional, auto generated):
http://www.debian.org/manuals/manualname/index.html or
http://www.debian.org/manuals/manualname/index.LANG.html
HTML:
http://www.debian.org/manuals/manualname/manualname.LANG.html
http://www.debian.org/manuals/manualname/ch-1.LANG.html
... (all other chapters of the document in html forms.)
plain text:
http://www.debian.org/manuals/manualname/manualname.LANG.txt
Not-compressed file for better browser interaction
Postscript (PS):
http://www.debian.org/manuals/manualname/manualname.LANG.ps
Not-compressed file for better browser interaction
PDF:
http://www.debian.org/doc/manuals/manualname/manualname.LANG.pdf
Not-compressed file for better browser interaction
DDP documents need to be published in Debian's ftp servers (and mirrors) in
order to provide another mean for retrieval to users. The placeholder for this
documentation is ftp://ftp.debian.org/doc/
FIXME: Determine how this is going to be automated (contact
ftp-masters). The /doc
should be handled exclusively by the DDP
team.
FIXME: this is an idea (Osamu). Permissions, etc. need to be fixed too.
FTP files are created with publish-ftp target in top most
Makefile
which uses publish target in the
subdirectories to create file in FTP area by using proper
PUBLISHDIR.
Index page (optional, auto generated): ???? === XXX FIXME XXX ===
ftp://www.debian.org/doc/manualname/index.html or
ftp://www.debian.org/doc/manualname/index.LANG.html
HTML:
ftp://www.debian.org/doc/manualname/LANG/html/manualname.html
ftp://www.debian.org/doc/manualname/LANG/html/ch-1.html
... (all other chapters of the document in html forms.)
plain text:
ftp://www.debian.org/doc/manualname/LANG/manualname.txt.gz
Compressed file to comply with the policy
Postscript (PS):
ftp://www.debian.org/doc/manualname/LANG/manualname.ps.gz
Compressed file to comply with the policy
PDF:
ftp://www.debian.org/doc/manualname/LANG/manualname.pdf.gz
Compressed file to comply with the policy
FIXME: This needs to be more homogeneous.
The current debian-cd
program is used to build the ISO images for
official Debian CD-ROMs. This program extracts documentation to be placed in
the CD-ROMs so that users can access this documentation without needing to
install Debian at all (even if later on they could install the same
documentation just by installing the appropriate packages).
Not all DDP documents are placed on the CD-ROMs since once of the issues on these ISO images is how to distribute the available size so that all the necessary software is available in the first CD-ROMs (so that users do not need to download all the CD-ROMs in order to have a functioning Debian installation). Thus, only important documentation (usually oriented towards users) is placed there. This usually includes documents such as: The Debian FAQ, The Installation Manual, etc.
FIXME: Check if this is true. Also for text, directory are better to use full locale such as en_US.UTF-8/ which is not the case in Debian.
Debian-cd
takes the available documentation from different
sources: the primary FTP server and some documentation packages installed in
the system where the script is run.
Note: Providing a sensible location of documentation in the packages as well as
translations makes it possible to have debian-cd
make localized
CD-ROMs that not only include the installation in a given language but provide
the documentation in that language too!
This section describes few recommended practices but these are not an enforced part of the DDP policy.
Currently, many generated HTML files still create index.html or index.LANG.html as the starting page but these are discouraged practices since they hide other files. (FIXME: This is debatable. It is implemented for the Debian Reference but makefile is a mess.)
user-manuals.wml
entry shall be:
<availability> <released name="release-name" path="path-in-web-site"> <inpackage "package-name"> <released name="package-name" index="index-name" path="package-location" langs="en fr it es" formats="html txt pdf ps"> <inddpcvs name="cvs-location" langs="en pt-br ru" cvsname="cvs-name"> </availability>
For packages which has released version, use "released" instead of "inddpcvs" to create the web page.
In order to reliably produce PS and PDF files, it is recommended to include a
texmf/texmf.cnf
file which only lists those key
parameters (i.e., things like pool_size) which you need to have them large
enough for the proper building environment.
Then Makefile has to use it through the environment variable:
TEXMFCNF=texmf: export TEXMFCNF
Here, the trailing colon is critical. This will ensure rest of parameters to be taken from the system's current default value and avoids TeX version dependencies for the SGML source as well prevents FTBFS bug problems.
If you are running specifically LaTeX, then you may want to have:
pool_size.latex = whatever
to specify that you want it to apply to LaTeX; otherwise a specific one in the
/etc/texmf/texmf.cnf
file might override yours.
Alternatively, you can also specify pool_size etc. as environment variables, which will override the texmf.cnf settings.
sample Makefile for publishing
test if docbook can be compiled in debian's www machine
sample Makefile for publishing using docbook-xml
Add a reference regarding registration of online documentation http://packages.debian.org/stable/doc/doc-base.html
.
Other useful references are (googling :): http://lists.debian.org/debian-devel/2001/debian-devel-200108/msg00975.html
,
ex.doc-base
,
http://datamining.csiro.au/debian/book/Debian_doc_central.html
(summary outside of Debian), http://lists.debian.org/debian-doc/2002/debian-doc-200209/msg00080.html
(regarding translation of doc-base files) and /usr/share/doc/doc-base/doc-base.html/index.html
(not published as a separate manual)
Extract useful information regarding documentation i18n from http://www.debian.org/doc/manuals/developers-reference/ch-best-pkging-practices.en.html#s-bpp-i18n-docs
.
[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ A ] [ next ]
Debian Documentation Policy (DRAFT)
[email protected]