Publican isn't packaged for some distros, xmlto is a lot more common. Most of
what publican provides for us is the stylesheet anyway, so we can just use
xmlto and the publican stylesheet to get roughly the same look.
PDF and XML generation has been dropped, this needs a bit more more effort
than a mere switchover to xmlto.
The top-level directory structure imposed by publican is kept for now
(specifically the Wayland/en-US/html tree). This makes it easier to transition over
for packagers. Note that the list of files inside has changed.
CSS files are taken from publican to keep a uniform look compared to previous
documentations. Stylesheets are licensed under CC0 1.0 Universal license, see
publican/LICENSE:
1. Files in the datadir/Common_Content directory and its subdirectories are
licensed under the CC0 1.0 Universal license.
To the extent possible under law, the developers of Publican waive all
copyright and related or neighboring rights to the files contained
in the datadir/Common_Content directory and its subdirectories.
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
The shell command for dist_man3_MANS gets invoked several times during
the make process but before the man pages have been generated, which
causes the following warnings when running `make`:
find: `man/man3': No such file or directory
find: `man/man3': No such file or directory
find: `man/man3': No such file or directory
GEN xml/client/index.xml
Despite these error messages, the generated dist tarball contains the
man3 pages as intended, both before and after this patch.
$ make dist
$ tar xxf wayland-1.5.90.tar.xz
$ find wayland-1.5.90/doc/doxygen/man/man3 -name "wl_*.3" | wc -l
85
Signed-off-by: Bryce Harrington <b.harrington@samsung.com>
Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
Tested-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Traced down to the server/client target always rebuilding, causing a rebuild
of everything else. Rework this so the target name is a file we actually
produce and can check for a timestamp.
Note: this also changes the generated file from the doxygen directory into the
en-US publican path and renames it to (server|client)API.xml.tmp to avoid
copying it into the xml output directory.
I suppose the purpose was to print just one GEN line for each doxygen
rule being executed, not print the doxygen command.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
The doxygen.man make target was not a real file that was generated,
therefore the man page rule was ran on every make invocation. Replace it
with a real file that is produced by the man page rule.
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Since /* */ do not nest, documentation is forced to either use C++ style
// comments or some other foreign notation. This commit provides an alias
that allows C-style comments to be introduced in code blocks that support
aliases.
It should be noted that this macro will not work within \code blocks, as
Doxygen commands are ignored there. Instead, Doxygen's fenced code
blocks (created via ~~~) must be used for proper output. To demonstrate:
~~~
struct example_node {
int id;
\comment{Other members ...}
};
~~~
will roughly yield the following HTML (excluding syntax highlighting):
<pre>
struct example_node {
int id;
/* Other members ... */
};
</pre>
This commit creates a shared file list that is included by both the
client and the server for the XML Makefile targets, as classes within
util are used by both the client and the server.
There have been a lot of questions asked lately about versioning of
interfaces and protocol objects. This addition to the documentation should
clear up some of those questions.
Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
The method described of alocation IDs has been wrong at least since version
1.0. This commit updates it to correspond to the way IDs are chosen in
versions >= 1.0.
Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
When generating HTML, don't split once we're into subjections. This
generates a single page for each protocol interface instead of the previous
separate pages for requests, events and enums.
No effect on the rest of the HTML configuration.
Document what we expect in terms of commit messages and coding style.
New contributors are usually unaware of this, so it is good to have a
document to point them too.
This requires that doxygen is run before the man target so find can actually
find the man pages.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Originally written Tiago Vignatti <tiago.vignatti@intel.com>
Some modifications to adjust for previously merged conflicting patches and link
to the sections (instead of <emphasis>).
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
The only difference between the server and client xml files is the
directories and files being named *server* and *client*, respectively. Add a
new make target to get that process done to avoid duplication
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Same as WaylandClientAPI.xml we now also generate WaylandServerAPI.xml for
publication. Most of this hunk is just adding a client/ or server/ into the
xml path to keep the two separate.
The change in wayland.doxygen now causes a standard doxygen call to not
generate anything - what is generated is specified through the options
passed by make.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
[re-run of search/replace after rebasing]
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This directory was called Wayland during my early tries with publican where
the source layout was different and it needed to be set to the same name as
the publican output directory. This reason doesn't exist anymore, so re-name
it to publican to make it more obvious what's hiding in here.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Create client-side and server-side man pages from doxygen. The doxygen
config options are virtually the same as for the XML output, but we do pass
in the specific options via stdin.
WL_EXPORT is predefined to the empty string, it makes the man page look
confusing and provides no value here anyway. This applies for both xml and
man output.
JAVADOC_AUTOBRIEF is disabled for man pages, the formatting in the resulting
man page is IMO hard to read.
Most of the server man pages are virtually empty, there's just not enough
documentation in the source files.
Interesting issue: the usage of @code in the protocol to reference the
parameter breaks the expansion of WL_EXPORT, thus leaving us with WL_EXPORT
in all the man pages.
Presumably this is an issue with doxygen interpreting this as a @code
command, but I already wasted enough time narrowing this down.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
A bunch of changes to the xsl transformation stylesheet to make Chapter 4
(Client API) look nicer and more readable.
Main changes:
- function synopsis listed
- lists for parameters and return values
- long function descriptions
- misc other hooks for "see also", "note", etc
The long description is a sore point. doxygen xml output is difficult to
parse with the output being in the form of
<detailed description>
<para>
<parameterlist> .... </parameterlist>
<simplesect kind="return">... </simplesect>
First paragraph of long description
</para>
<para>
Second paragraph of long <sometag>description</sometag>
</para>
</detaileddescription>
So we need to ignore parameterlist and simplesect, but extract the text from
everything else. Any improvements on that welcome.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
The reason this directory exists is because we need to copy it into
$builddir so we can combine it with generated sources (we can't pass
multiple source paths into publican).
So instead of having en_US, renamed to en-US stop the confusion and rename
the sources to "sources". That gets copied to en-US which will then contain
the actual output.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This makefile is a bit hard to read due to some publican requirements and
the need to generate some files through XSLT. Explain the lot, so that those
looking at this roughly know what will hit them.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
I found the comment a bit confusing and it's quite hard to read. re-explain
with a simple step-by-step list
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Rename Overview.xml to Introduction.xml, reflecting the previous commit.
Organize also Wayland.xml order of the includes.
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
In the beginning of the chapter, it was defined what is the so called "X"
thing and was removed the "Wayland" and "Weston" definitions cause we're
defining later at 1.2 anyway.
"Introduction", "Motivation" and "Compositing manager as the display server"
names sound better a bit than "Overview", "Replacing X11" and "Make the
compositing manager the display server" respectively. That was changed also.
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
"1" sounds better when we mention about the "first" edition or say the
"publishing" edition.
If needed, we might want to increase the edition numbers automatically later,
for instance based on the micro version of the protocol or something like
that.
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
In particular, the preface defines the scope of this document we're building
-- is the definition there enough with respect to what we want with this?
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Instead of relying on downloading the stylesheet from the Internet for
generating man pages, only generate them if the stylesheet is available
locally.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Instead of failing to generate documentation because xsltproc doesn't
exist, don't try to generate at all.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
The amount of generated files and hacks over hacks in the doc/ directory
is getting out of hand and we need a better solution. For now, just get
distcheck back to working.
There's work to do still for giving a prettier style on the documentation, for
instance splitting paragraphs correctly and printing the detailed description
of the methods as well.
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
Add some brief documentation for the public libwayland-client entry
points. This is by no means complete, some functions are still
undocumented and some might need extra information.
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
The xsl translation from the protocol xml to publican would create only
one paragraph for all the text in a description. Make it generate one
paragraph for each block of text separated by two consecutive line
breaks instead.
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
For now only Wayland Client API is described on that chapter, which is
extracted via doxygen on ./src/wayland-client.h. We apply a stylesheet
(doxygen-to-publican) on doxygen output so it becomes docbook valid.
Now all we need to do is populate that header while developing in order to
grow a decent documentation. So please use it!
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
This way looks more pretty, in particular for the Appendix which spawns a big
subsections chain.
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
Replace the outdated section about drag and drop support with a
rewritten section covering the data source/offer mechanism and
wl_data_device, explaining how selection and drag ang drop works.
We really shouldn't add the man-pages when HAVE_XSLTPROC is not true so
move it into the if-clause.
But declare the automake-variables outside of the if-clause to avoid
automake complaints.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This adds a man-page infrastructure based on Docbook XML files. This
allows us to integrate the man-pages into the publican books later. An
example page for wl_display_connect() (with an alias
wl_display_connect_to_fd()) is also added.
Feel free to add more man-pages. Function calls are put in man3 and
overview pages into man7. All pages (including aliases) have to be added
to the Makefile.
Docbook does generate aliases automatically from the additional names that
were put in the XML file. However, a small SED script is needed to fixup
the include-paths in the generated troff files. If someone knows how to
avoid that (or even install them gzip'ped), please fix it up.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
And remove the .tex file
Minor changes:
- where the .tex file had some interface descriptions, the docbook source
now links to the actual protocol. The exception here is the shared object
cache which is simply a <programlisting> until the protocol spec exists.
- "Implementation" section skipped, this seems in need of an update anyway
and may be better documented elsewhere (wiki?)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
When srcdir!=builddir, there is no way to tell publican that the source
is in srcdir rather than builldir. The workaround is to copy the source
files from srcdir to builddir. To retain the en-US final destination
name, the source directory is renamed to en_US.
Tested-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
Publican requires a read-write source tree, see
http://bugzilla.redhat.com/show_bug.cgi?id=798484
And it currently cannot build out-of-tree, so we need to copy the sources
into the _build tree and generate Protocol.xml into that tree too (we'd have
to do this anyway since automake creates a read-only source tree, so we
can't just link).
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Convert the wayland.xml protocol description to a docbook-compatible format
and hook it up to the publican sources.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
automake doesn't seem to provide a sensible method to install a directory of
stuff in $(docdir). Do it manually then.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
I'll leave them in for now as a template for how things looked originally,
this can be removed later.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
$> publican create --name=Wayland
unmodified otherwise
To build the tree to target formats, use
$> publican build --langs=en-US --formats=html,pdf
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>