Merge pull request #56 from JensErat/SOGo-asciidoc
Converted documentation to ASCIIdoc
@@ -14,3 +14,5 @@ SoObjects/SOGo/derived_src/
|
||||
Tests/*/config.py
|
||||
*.pyc
|
||||
._*
|
||||
Documentation/*.docbook
|
||||
Documentation/*.pdf
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
all: $(patsubst %.asciidoc,%.pdf,$(wildcard *.asciidoc))
|
||||
|
||||
%.pdf : %.asciidoc
|
||||
asciidoc -a docinfo2 -b docbook -d book -d book -o $<.docbook $<
|
||||
fop -c fonts/fop-config.xml -xsl docbook/xsl/sogo-fo.xsl -xml $<.docbook -pdf $@
|
||||
|
||||
clean:
|
||||
rm *.asciidoc.docbook *.pdf
|
||||
@@ -0,0 +1,330 @@
|
||||
Mobile Devices Configuration Guide
|
||||
==================================
|
||||
|
||||
////
|
||||
|
||||
This file is part of the SOGo project.
|
||||
|
||||
See SOGo Mobile Devices Configuration-docinfo.xml for authors,
|
||||
copyright and license information.
|
||||
|
||||
////
|
||||
|
||||
include::includes/global-attributes.asciidoc[]
|
||||
|
||||
About this Guide
|
||||
----------------
|
||||
|
||||
This guide will walk you through the installation and configuration of
|
||||
popular SyncML clients to be used with the SOGo solution.
|
||||
|
||||
This guide also include instructions for configuring Apple iPhone OS
|
||||
devices (iPhone, iPod touch, and iPad).
|
||||
|
||||
The instructions are based on version {release_version} of SOGo.
|
||||
|
||||
The latest version of this guide is available at
|
||||
http://www.sogo.nu/downloads/documentation.html.
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
SOGo is a free and modern scalable groupware server. It offers shared
|
||||
calendars, address books, and emails through your favourite Web browser
|
||||
and by using a native client such as Mozilla Thunderbird and Lightning.
|
||||
|
||||
SOGo is standard-compliant. It supports CalDAV, CardDAV, GroupDAV, iMIP
|
||||
and iTIP and reuses existing IMAP, SMTP and database servers - making
|
||||
the solution easy to deploy and interoperable with many applications.
|
||||
|
||||
SOGo features:
|
||||
|
||||
* Scalable architecture suitable for deployments from dozen to many
|
||||
thousand users
|
||||
* Rich Web-based interface that shares the look and feel, the features
|
||||
and the data of Mozilla Thunderbird and Lightning
|
||||
* Improved integration with Mozilla Thunderbird and Lighthing by using
|
||||
the SOGo Connector and the SOGo Integrator
|
||||
* Two-way synchronization support with any Microsoft ActiveSync-capable
|
||||
device, or Outlook 2013
|
||||
|
||||
SOGo is developed by a community of developers located mainly in North
|
||||
America and Europe. More information can be found on
|
||||
http://www.sogo.nu/.
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
This section will guide you through the installation of popular SyncML
|
||||
clients on various devices.
|
||||
|
||||
Funambol SyncML Client
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The recommended SyncML client for BlackBerry, Apple iPhone (for
|
||||
contacts), mobile devices based on Microsoft Windows Mobile Smartphone
|
||||
or Windows Mobile PocketPC, is the one provided directly by Funambol,
|
||||
which is free and open source.
|
||||
|
||||
For Microsoft Window Mobile, you must identify which kind of device you
|
||||
have ("Smartphone" vs. "PocketPC").
|
||||
|
||||
Once you've identified what kind of device you have, download the
|
||||
appropriate client from:
|
||||
|
||||
http://www.funambol.com/opensource/downloads.php
|
||||
|
||||
The version 8.5 GA or later is required.
|
||||
|
||||
NextHaus SyncJe
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
For BlackBerry and Apple iPhone devices, you can also use the
|
||||
SyncJe SyncML client from NextHaus (http://www.nexthaus.com/). This
|
||||
client allows one to synchronize contacts, event and tasks with SOGo.
|
||||
|
||||
The version 2.43 or later is required. For BlackBerry 7XXX devices, the
|
||||
required version is 2.25 but isn't officially supported. You can install
|
||||
SyncJe on your BlackBerry device, over the air, by opening the following
|
||||
link from your BlackBerry device:
|
||||
|
||||
http://www.nexthaus.com/bb/syncjebb.jad
|
||||
|
||||
This will download and install the application on your mobile device.
|
||||
It's important to use the Web browser application and not the WAP
|
||||
browser to perform this operation. Once installed, restart the device.
|
||||
This procedure can also be used to update the SyncJe application. Note
|
||||
that an update of SyncJe will not affect the state of previous
|
||||
synchronizations. It's not necessary to perform a "slow sync" after an
|
||||
update of SyncJe.
|
||||
|
||||
Synthesis SyncML Client
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The Synthesis (http://www.synthesis.ch/) company provides a SyncML
|
||||
client for Palm OS-based devices.
|
||||
|
||||
"Over The Air" synchronization is possible, as well as synchronization
|
||||
through a cradle. For the latter, you must install Softick PPP using the
|
||||
Palm Desktop software. The version 3.01 or later is required and you can
|
||||
download it from http://www.softick.com/ppp/. Once installed, the
|
||||
desktop computer must be restarted.
|
||||
|
||||
Once completed, you must download the Synthesis client for Palm OS. The
|
||||
version 3.0.2.9 or later is required. Either the standard or the
|
||||
professional version can be used.
|
||||
|
||||
Once downloaded, uncompress the archive and install the `.prc` file on
|
||||
your Palm OS-based device. After, you should see a "SyncML" icon on your
|
||||
device.
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
In this section, you'll learn how to configure the popular SyncML
|
||||
clients in order to fully synchronize your mobile device with SOGo.
|
||||
|
||||
Instructions for Apple iPhone OS based devices are also included. Note
|
||||
that those devices do not require a SyncML client for synchronizing
|
||||
calendars.
|
||||
|
||||
Funambol SyncML Client
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Once the Funambol SyncML client is installed, start the application from
|
||||
your mobile device to configure it using the following steps:
|
||||
|
||||
From the _Tools_ menu, choose _Options..._:
|
||||
|
||||
* Specify the _Location_. If your SOGo server is `sogo.domain.com`, the
|
||||
location should be `http://sogo.domain.com/funambol/ds`.
|
||||
* Specify your username and password
|
||||
* Check the _Contacts_ check box and click on the _Details_ button.
|
||||
The synchronization type is _two-way_ and the _Remote name_ is
|
||||
`sogo-card`. The data format is vCard.
|
||||
* Check the _Calendar_ check box and click on the _Details_ button. The
|
||||
synchronization type is _two-way_ and the _Remote name_ is `sogo-cal`.
|
||||
The data format is vCalendar.
|
||||
* Check the _Tasks_ check box and click on the _Details_ button. The
|
||||
synchronization type is _two-way_ and the _Remote name_ is
|
||||
`sogo-todo`. The data format is SIF.
|
||||
* Save the preferences.
|
||||
|
||||
To prevent the BlackBerry to automatically add a new event in the
|
||||
calendar when an invitation is received by email (IMIP message) on the
|
||||
BlackBerry device, you should delete the CICAL service from the Service
|
||||
Book. To do so, proceed with the following steps:
|
||||
|
||||
From the _Options_ menu:
|
||||
|
||||
* Choose _Advanced Options_
|
||||
* Choose _Service Book_
|
||||
* Identify the line that mentions the email address of the BlackBerry
|
||||
user followed by the `[CICAL]` string. For example, `user@domain.com
|
||||
[CICAL]`.
|
||||
* Delete this entry.
|
||||
|
||||
Once completed, you must restart the device by removing its battery for
|
||||
a couple of seconds. If you ever want to reactivate the CICAL service,
|
||||
follow those instructions:
|
||||
|
||||
http://support.appriver.com/KB/a205/how-to-resend-service-books-on-blackberry.aspx
|
||||
|
||||
Once complete, the client is ready for an initial synchronization.
|
||||
|
||||
Ideally, you should *delete* all data from the mobile device before the
|
||||
initial synchronization. To do so:
|
||||
|
||||
* From the _Tools_ menu, choose _Recover..._
|
||||
* Choose _Replace with data from server_
|
||||
* Check the _Contacts_, _Calendar_ and _Tasks_ check boxes
|
||||
|
||||
Finally, click on the _Sync All_ button to proceed with the
|
||||
synchronization.
|
||||
|
||||
NextHaus SyncJe
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
Once NextHaus SyncJe is installed, proceed with the following steps,
|
||||
from your BlackBerry device, to configure it:
|
||||
|
||||
* Open the _SyncJe Client_
|
||||
|
||||
From the _Settings_ menu:
|
||||
|
||||
* Specify the _Server URL_. If your SOGo server is `sogo.domain.com`,
|
||||
the URL should be `http://sogo.domain.com/funambol/ds`.
|
||||
* Specify your user name and password
|
||||
* Check the _Contacts_ check box and specify `sogo-card` as the
|
||||
_Foldername_
|
||||
* Check the _Calendar_ check box and specify `sogo-cal` as the
|
||||
_Foldername_
|
||||
* Check the _ToDo_ check box and specify `sogo-todo` as the _Foldername_
|
||||
* Check the _Auto Sync_ check box if you wish to automatically
|
||||
synchronize contacts, events and tasks at a predefined time interval
|
||||
* Do *not* check the _Sync events between_ check box
|
||||
* Check the _Skip saving attendees_ - this will prevent the BlackBerry
|
||||
device from sending emails to meeting participants for events
|
||||
downloaded from the SOGo server
|
||||
* Check the _BIS_ check box (for _BlackBerry Internet Services_)
|
||||
* Leave the other fields to the their default value
|
||||
* Then choose _Save_ from the menu to save the preferences
|
||||
|
||||
To prevent the BlackBerry to automatically add a new event in the
|
||||
calendar when an invitation is received by email (IMIP message) on the
|
||||
BlackBerry device, you should delete the CICAL service from the Service
|
||||
Book. To do so, proceed with the following steps:
|
||||
|
||||
From the _Options_ menu:
|
||||
|
||||
* Choose _Advanced Options_
|
||||
* Choose _Service Book_
|
||||
* Identify the line that mentions the email address of the BlackBerry
|
||||
user followed by the `[CICAL]` string. For example, `user@domain.com
|
||||
[CICAL]`.
|
||||
* Delete this entry
|
||||
|
||||
Once completed, you must restart the device by removing its battery for
|
||||
a couple of seconds. If you ever want to reactivate the CICAL service,
|
||||
follow those instructions:
|
||||
|
||||
http://support.appriver.com/KB/a205/how-to-resend-service-books-on-blackberry.aspx
|
||||
|
||||
Once done, you're now ready for your first synchronization.
|
||||
|
||||
Ideally, you must delete all data on the BlackBerry before proceeding
|
||||
with the initial synchronization. To do so, proceed with the following
|
||||
steps:
|
||||
|
||||
* Open the _SyncJe Client_
|
||||
|
||||
From the _Settings_ menu:
|
||||
|
||||
* Choose the _Clear databases_ option
|
||||
* Respond _Yes_ to all questions. This will delete all contacts, events
|
||||
and tasks from your BlackBerry device.
|
||||
* Go back in the previous menu
|
||||
* Choose the _Force Slow Sync_ option
|
||||
* Choose the _Start Sync_ option to start the synchronization. This
|
||||
could take a few minutes if you have many contacts, events or tasks.
|
||||
Subsequent synchronizations should be much faster.
|
||||
|
||||
After the initial _Slow Sync_, you can simply chose the _Start Sync_
|
||||
option if you do a manual synchronization to synchronize all changes.
|
||||
|
||||
Synthesis SyncML Client
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Once the Synthesis SyncML client is installed, proceed with the
|
||||
following steps to configure it:
|
||||
|
||||
* Open the _Synthesis SyncML Standard Edition_ application
|
||||
|
||||
From the _Settings..._ menu:
|
||||
|
||||
* Specify the _Server URL_. If your SOGo server is `sogo.domain.com`,
|
||||
the URL should be `http://sogo.domain.com/funambol/ds`.
|
||||
* Specify your user name and password
|
||||
* Check the _Contacts_, _Events_ and _Task_ check boxes
|
||||
* Click on the _more..._ button
|
||||
* For the _Contacts_, choose _reload device_ and specify `sogo-card` as
|
||||
the _Server Path_.
|
||||
* For the _Events_, choose _reload device_ and specify `sogo-cal` as
|
||||
the _Server Path_. Do *not* check the _Only from..._ check box.
|
||||
* For the _Tasks_, choose _reload device_ and specify `sogo-todo` as
|
||||
the _Server Path_.
|
||||
* Once completed, click on the _Done_ button
|
||||
|
||||
The _reload device_ value will *delete* all entries on the device during
|
||||
the initial synchronization and obtain contacts, events and tasks from
|
||||
the server. If you do not want to delete everything from the device,
|
||||
please choose _normal_ instead of _reload device_.
|
||||
|
||||
Once ready, click on the _Start_ button to proceed with the initial
|
||||
synchronization.
|
||||
|
||||
During the initial synchronization, the Palm device will ask you how to
|
||||
connect to the desktop system. From the Palm device, choose _Windows
|
||||
RAS_ without specifying an user name or a password. This will allow the
|
||||
Palm device to establish a PPP connection between itself and Softick PPP
|
||||
and then communicate using its TCP/IP stack to the Funambol server.
|
||||
|
||||
Apple iOS — Calendars
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Starting from iOS 3, Apple has added CalDAV support to the calendar
|
||||
application included in the iPhone/iPod/iPad.
|
||||
|
||||
To add a CalDAV account, follow those instructions:
|
||||
|
||||
* From the _Settings_ menu, choose _Mail, Contacts, Calendars_
|
||||
* Choose _Add Account..._
|
||||
* Choose _Other_
|
||||
* Choose _Add CalDAV Account_
|
||||
* Specify the _Server_, the URL should be
|
||||
`http://sogo.domain.com/SOGo/dav/<username>`
|
||||
|
||||
On iOS 3.1.2 and later, you must also specify the range of events you
|
||||
want to have.
|
||||
|
||||
* From the _Settings_ menu, choose _Mail, Contacts, Calendars_
|
||||
* From the _Sync_ menu, choose _All Events_
|
||||
|
||||
Note that other options (_Events 2 Weeks Back_, etc.) do not work right
|
||||
now.
|
||||
|
||||
Apple iOS — Contacts
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
If you want to synchronize contacts with your Apple mobile device, use
|
||||
the native address book application with SOGo using the CardDAV
|
||||
protocol. To configure the address book application so it works with
|
||||
SOGo, create a new CardDAV account and specify your server name. In
|
||||
the _Advanced Settings_, set the port to `8800`.
|
||||
|
||||
On iOS prior to version 4, you must install the Funambol client and
|
||||
configure the `sogo-card` source.
|
||||
|
||||
include::includes/additional-info.asciidoc[]
|
||||
|
||||
include::includes/commercial-support.asciidoc[]
|
||||
@@ -0,0 +1,358 @@
|
||||
Mozilla Thunderbird Configuration Guide
|
||||
=======================================
|
||||
|
||||
////
|
||||
|
||||
This file is part of the SOGo project.
|
||||
|
||||
See SOGo Mozilla Thunderbird Configuration Guide-docinfo.xml for
|
||||
authors, copyright and license information.
|
||||
|
||||
////
|
||||
|
||||
include::includes/global-attributes.asciidoc[]
|
||||
|
||||
About this Guide
|
||||
----------------
|
||||
|
||||
This guide will walk you through the installation and configuration of
|
||||
Mozilla Thunderbird and its associated extensions so it can be used with
|
||||
the SOGo solution.
|
||||
|
||||
The instructions are based on version {release_version} of SOGo.
|
||||
|
||||
The latest version of this guide is available
|
||||
at http://www.sogo.nu/downloads/documentation.html.
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
SOGo is a free and modern scalable groupware server. It offers shared
|
||||
calendars, address books, and emails through your favourite Web browser
|
||||
and by using a native client such as Mozilla Thunderbird and Lightning.
|
||||
|
||||
SOGo is standard-compliant. It supports CalDAV, CardDAV, GroupDAV, iMIP
|
||||
and iTIP and reuses existing IMAP, SMTP and database servers - making
|
||||
the solution easy to deploy and interoperable with many applications.
|
||||
|
||||
SOGo features:
|
||||
|
||||
* Scalable architecture suitable for deployments from dozen to many
|
||||
thousand users
|
||||
* Rich Web-based interface that shares the look and feel, the features
|
||||
and the data of Mozilla Thunderbird and Lightning
|
||||
* Improved integration with Mozilla Thunderbird and Lightning by using
|
||||
the SOGo Connector and the SOGo Integrator extensions
|
||||
* Two-way synchronization support with any Microsoft ActiveSync-capable
|
||||
device, or Outlook 2013
|
||||
|
||||
SOGo is developed by a community of developers located mainly in North
|
||||
America and Europe. More information can be found on
|
||||
http://www.sogo.nu/.
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
This section will guide you through the installation of Thunderbird and
|
||||
its associated extensions.
|
||||
|
||||
Mozilla Thunderbird
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Mozilla Thunderbird is the official front end client of SOGo.
|
||||
|
||||
Mozilla Thunderbird version 2, 3.1, 10 ESR (Extended Support Release),
|
||||
17 ESR, and 24 are supported and it is recommended to use version 24 of
|
||||
Thunderbird.
|
||||
|
||||
In order to download and install Mozilla Thunderbird, please visit:
|
||||
|
||||
https://www.mozilla.org/en-US/thunderbird/organizations/all-esr.html
|
||||
|
||||
Mozilla Lightning
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
When using version 24 of Thunderbird, you can use the latest version of
|
||||
Mozilla Lightning. Use the Add-ons manager of Thunderbird or visit:
|
||||
|
||||
https://addons.mozilla.org/en-US/thunderbird/addon/lightning/
|
||||
|
||||
When using version 17 ESR of Thunderbird, you can use Mozilla Lightning
|
||||
version 1.9.1. In order to download the extension, please visit:
|
||||
|
||||
https://addons.mozilla.org/en-US/thunderbird/addon/lightning/versions/?page=1#version-1.9.1
|
||||
|
||||
For Thunderbird 2 and 3.1, you need the _Inverse Edition_of Mozilla
|
||||
Lightning. It provides back ported features, bug fixes and security
|
||||
fixes from the current development version of Mozilla Lightning. For
|
||||
Thunderbird 2, it is based on release version 0.9 of Lightning. For
|
||||
Thunderbird 3.1, it is based on 1.0b2.
|
||||
|
||||
In order to download and install Mozilla Lightning – Inverse Edition for
|
||||
Thunderbird 2 or 3.1, please visit:
|
||||
|
||||
http://www.sogo.nu/downloads/frontends.html
|
||||
|
||||
SOGo Connector and SOGo Integrator
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The SOGo Connector and Integrator extensions are provided to perfect the
|
||||
integration of Mozilla Thunderbird 2, 3.1, 10 ESR, 17 ESR and 24 with
|
||||
the SOGo groupware solution.
|
||||
|
||||
First of all, the SOGo Connector extension transforms Thunderbird into a
|
||||
full DAV client for groupware servers such as SOGo, eGroupware or
|
||||
Citadel. It does this by adding support for remote DAV address books and
|
||||
by adding features to be used along with the Lightning calendar
|
||||
extension.
|
||||
|
||||
Among supported features of the SOGo Connector extension, we have:
|
||||
|
||||
* Free / Busy URL field in the address book
|
||||
* Free / Busy functionality through HTTP
|
||||
* Event organizers
|
||||
* Synchronization of the address book using GroupDAV
|
||||
* CardDAV implementation for the address book
|
||||
* Support for WebDAV ACL
|
||||
|
||||
On the other hand, the SOGo Integrator extension transforms Thunderbird
|
||||
into a pure "heavy" client for SOGo. Whereas the SOGo Connector is meant
|
||||
for portability (horizontal integration), the SOGo Integrator makes use
|
||||
of the features and layout only available from SOGo (vertical
|
||||
integration).
|
||||
|
||||
Among the supported features of the SOGo Integrator extension, we have :
|
||||
|
||||
* Remote administration of folder subscriptions
|
||||
* Remote administration of folder access control lists (ACL)
|
||||
* Automatic replication of your local and subscribed folders
|
||||
* When correctly configured, it handles the propagation of updates to
|
||||
chosen extensions from a local update server
|
||||
* Automatic propagation of default settings
|
||||
|
||||
In order to download and install the SOGo Connector and Integrator
|
||||
extensions, please visit:
|
||||
|
||||
http://www.sogo.nu/downloads/frontends.html
|
||||
|
||||
Prior to installing the SOGo Integrator extension, you should read the
|
||||
following chapter – _SOGo Integrator Customization_.
|
||||
|
||||
SOGo Integrator Customization
|
||||
-----------------------------
|
||||
|
||||
In this section, you'll learn how to customize the SOGo Integrator
|
||||
extension so it can be used alongside your SOGo server.
|
||||
|
||||
Customization
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
The customization steps described here involves understanding of XML and
|
||||
of text file edition. If you do not have those skills, it is recommended
|
||||
that you don't try to use this extension.
|
||||
|
||||
There are actually two steps in the configuration of a working
|
||||
environment for SOGo Integrator. First of all, the Integrator will use
|
||||
the same user name used to connect to the first email server configured
|
||||
in Thunderbird. It is a current limitation but it will fit nearly all
|
||||
configurations out there.
|
||||
|
||||
For testing purpose, you are strongly recommended to create and
|
||||
configure an additional user profile for Thunderbird. This is for two
|
||||
reasons. The first is because of the limitation mentioned above. The
|
||||
second is because the Integrator will synchronize your personal address
|
||||
book onto the SOGo server and then remove it so that only your personal
|
||||
address book on SOGo will be available. If you are not able to do that,
|
||||
you may want to make a copy of that address book beforehand.
|
||||
|
||||
The second part requires editing one file in the extension file sub tree
|
||||
to specify where the SOGo server is located. This is done by hand. In an
|
||||
enterprise environment, this step is only required once per release
|
||||
since the updates are expected to propagate automatically.
|
||||
|
||||
Uncompress (using a ZIP or jar tool) the SOGo Integrator XPI and locate
|
||||
the following file:
|
||||
|
||||
extensions.rdf
|
||||
|
||||
This file is used for locating the extension update server and the SOGo
|
||||
server, which we consider to be the same for the moment. There is a line
|
||||
starting with a "Seq" tag and with an attribute named "isi:updateURL".
|
||||
Replace the host part of that url with the SOGo server you want to
|
||||
connect to.
|
||||
|
||||
For example, one would replace:
|
||||
|
||||
<Seq about="http://inverse.ca/sogo-integrator/extensions" isi:updateURL="http://sogo-demo.inverse.ca/plugins/updates.php?plugin=%ITEM_ID%&version=%ITEM_VERSION%&platform=%PLATFORM%">
|
||||
|
||||
by:
|
||||
|
||||
<Seq about="http://inverse.ca/sogo-integrator/extensions" isi:updateURL="https://sogo.acme.com/plugins/updates.php?plugin=%ITEM_ID%&version=%ITEM_VERSION%&platform=%PLATFORM%">
|
||||
|
||||
if the SOGo server is accessible from the following URL:
|
||||
|
||||
https://sogo.acme.com/SOGo
|
||||
|
||||
Note that if you changed the `x-webobjects-server-url` configuration
|
||||
setting from your HTTP server configuration file for SOGo, the
|
||||
value *must* match the one you specify in `isi:updateURL` – even the
|
||||
port number.
|
||||
|
||||
Moreover, you *must* change the value of the
|
||||
`sogo-integrator.autocomplete.server.urlid` preference from
|
||||
`defaults/preferences/site.js` to match the identifier of your
|
||||
_SOGoUserSources_. This source will be used by Thunderbird for
|
||||
autocompletion.
|
||||
|
||||
Once you're done modifying the configuration file, save your changes and
|
||||
reconstruct the XPI file.
|
||||
|
||||
Now start Thunderbird and install your newly modified extension.
|
||||
|
||||
SOGo Update Server
|
||||
------------------
|
||||
|
||||
In this section, you will learn how to install and configure the SOGo
|
||||
Update Server.
|
||||
|
||||
The SOGo Update Server can be used to automatically install or uninstall
|
||||
Mozilla Thunderbird extensions, push user settings and more – all from a
|
||||
central place managed by system administrators.
|
||||
|
||||
Installation
|
||||
~~~~~~~~~~~~
|
||||
|
||||
Installation is relatively straightforward. You need to make
|
||||
the `updates.php` script available through your HTTP server at the URL
|
||||
you've specified from the `extensions.rdf` file. The `updates.php`
|
||||
script can be found in the SOGo sources, under the `Scripts` directory.
|
||||
|
||||
The `updateLink` section of the XML payload returned to sogo-integrator
|
||||
is built dynamically using the `SCRIPT_URI` variable, which is only
|
||||
available when running with mod_rewrite. It should work out of the box
|
||||
as long as the script is placed in the same directory as the xpi files.
|
||||
|
||||
If it is not the case, then the link should be adjusted to fit the
|
||||
actual file layout:
|
||||
|
||||
<em:updateLink><?php echo dirname(getenv('SCRIPT_URI')) . '/relative/path/to/' . $plugin["filename"] ?></em:updateLink>
|
||||
|
||||
An http request similar to the following can be used to make sure that
|
||||
the generated link is correct:
|
||||
|
||||
http://sogo.host/path/to/updates.php?plugin=sogo-integrator@inverse.ca&version=0.00
|
||||
|
||||
Please refer to your HTTP server documentation for the installation and
|
||||
configuration of PHP.
|
||||
|
||||
Configuration
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
To configure the SOGo update server, you need to modify the
|
||||
`updates.php` script directly.
|
||||
|
||||
Adding an extension to be pushed automatically by the update server
|
||||
require you to modify the `$plugins` array from updates.php and also
|
||||
adjust accordingly SOGo Integrator's `extensions.rdf` file.
|
||||
|
||||
For example, to automatically install SOGo Connector, SOGo Integrator
|
||||
and Lightning, you would have:
|
||||
|
||||
----
|
||||
$plugins
|
||||
= array( "sogo-connector@inverse.ca"
|
||||
=> array( "application" => "thunderbird",
|
||||
"version" => "24.0.5",
|
||||
"filename" => "sogo-connector-24.0.5.xpi" ),
|
||||
"sogo-integrator@inverse.ca"
|
||||
=> array( "application" => "thunderbird",
|
||||
"version" => "24.0.5",
|
||||
"filename" => "sogo-integrator-24.0.5-sogo-demo.xpi" ),
|
||||
"{e2fda1a4-762b-4020-b5ad-a41df1933103}"
|
||||
=> array( "application" => "thunderbird",
|
||||
"version" => "2.6.5",
|
||||
"filename" => "lightning.xpi" ));
|
||||
----
|
||||
|
||||
The syntax is:
|
||||
|
||||
----
|
||||
"<extension ID>"
|
||||
=> array( "application" => "thunderbird",
|
||||
"version" => "<exact version found in the extension's install.rdf file>",
|
||||
"filename" => "<exact filename on the filesystem>" )
|
||||
----
|
||||
|
||||
The path of the filename, specified in the `filename` parameter, is
|
||||
relative to the location of the `updates.php` script. For extensions
|
||||
that are dependant on the architecture and operating system (Microsoft
|
||||
Windows, Apple Mac OS X, etc.), they can be placed in subdirectories
|
||||
relative again to the `updates.php` script (but the filename must be
|
||||
identical in all subdirectories). For exemple, for Mozilla Lightning, we
|
||||
could have:
|
||||
|
||||
----
|
||||
Darwin_x86-gcc3/lightning.xpi
|
||||
Linux_x86-gcc3/lightning.xpi
|
||||
Linux_x86_64-gcc3/lightning.xpi
|
||||
WINNT_x86-msvc/lightning.xpi
|
||||
----
|
||||
|
||||
If you eventually want to disable an extension, that is, without
|
||||
removing it from your users' computers, you can specify `disabled` as
|
||||
the version number.
|
||||
|
||||
Next is to modify the `extensions.rdf` file. Again, to automatically
|
||||
install SOGo Connector, SOGo Integrator and Lightning, you would have:
|
||||
|
||||
----
|
||||
<li>
|
||||
<Description
|
||||
em:id="{e2fda1a4-762b-4020-b5ad-a41df1933103}"
|
||||
em:name="Lightning"/>
|
||||
</li>
|
||||
<li>
|
||||
<Description
|
||||
em:id="sogo-integrator@inverse.ca"
|
||||
em:name="SOGo Integrator"/>
|
||||
</li>
|
||||
<li>
|
||||
<Description
|
||||
em:id="sogo-connector@inverse.ca"
|
||||
em:name="SOGo Connector"/>
|
||||
</li>
|
||||
----
|
||||
|
||||
Using SOGo Integrator, you can also push user-settings for any part of
|
||||
Thunderbird or its extensions. There are two kind of user-settings
|
||||
push:
|
||||
|
||||
* Settings that are pushed during the initial configuration of
|
||||
Thunderbird
|
||||
* Settings that are pushed upon every restart (ie., forced) of
|
||||
Thunderbird
|
||||
|
||||
Settings that pushed are pushed during initial configuration are
|
||||
controlled by the `./defaults/preferences/site.js` file from SOGo
|
||||
Integrator. Here is an example:
|
||||
|
||||
----
|
||||
pref("calendar.alarms.showmissed", false);
|
||||
pref("calendar.caldav.sched.enabled", true);
|
||||
----
|
||||
|
||||
Preferences that are forced upon every restart of Thunderbird are
|
||||
controlled from the `./chrome/content/general/custom-preferences.js`
|
||||
configuration file.
|
||||
|
||||
Here is an example:
|
||||
|
||||
----
|
||||
force_int_pref("changequote.replyformat.format", 0);
|
||||
force_bool_pref("changequote.headers.withcc", true);
|
||||
force_char_pref(“foo.bar”, “zot”);
|
||||
----
|
||||
|
||||
include::includes/additional-info.asciidoc[]
|
||||
|
||||
include::includes/commercial-support.asciidoc[]
|
||||
@@ -0,0 +1,691 @@
|
||||
Native Microsoft Outlook Configuration Guide
|
||||
============================================
|
||||
|
||||
////
|
||||
|
||||
This file is part of the SOGo project.
|
||||
|
||||
See SOGo Native Microsoft Outlook Configuration-docinfo.xml for
|
||||
authors, copyright and license information.
|
||||
|
||||
////
|
||||
|
||||
include::includes/global-attributes.asciidoc[]
|
||||
|
||||
About this Guide
|
||||
----------------
|
||||
|
||||
This guide will walk you through the installation and configuration of
|
||||
the native Microsoft Outlook compatibility layer SOGo offers.
|
||||
|
||||
Prior going over this guide, you should have a working SOGo
|
||||
installation. Please refer to the _SOGo Installation and Configuration
|
||||
Guide_ for more information on installing and configuring SOGo.
|
||||
|
||||
This guide also includes instructions for configuring Microsoft Outlook
|
||||
with SOGo.
|
||||
|
||||
The instructions are based on version {release_version} of SOGo.
|
||||
|
||||
The latest version of this guide is available
|
||||
at http://www.sogo.nu/downloads/documentation.html.
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
SOGo is a free and modern scalable groupware server. It offers shared
|
||||
calendars, address books, and emails through your favourite Web browser
|
||||
and by using a native client such as Mozilla Thunderbird and Lightning.
|
||||
|
||||
SOGo is standard-compliant. It supports CalDAV, CardDAV, GroupDAV, iMIP
|
||||
and iTIP and reuses existing IMAP, SMTP and database servers — making
|
||||
the solution easy to deploy and interoperable with many applications.
|
||||
|
||||
SOGo features:
|
||||
|
||||
* Scalable architecture suitable for deployments from dozen to many
|
||||
thousand users
|
||||
* Rich Web-based interface that shares the look and feel, the features
|
||||
and the data of Mozilla Thunderbird and Lightning
|
||||
* Improved integration with Mozilla Thunderbird and Lightning by using
|
||||
the SOGo Connector and the SOGo Integrator
|
||||
* Native compatibility for Microsoft Outlook 2003, 2007, 2010, and 2013
|
||||
* Two-way synchronization support with any Microsoft ActiveSync-capable
|
||||
device, and Outlook 2013
|
||||
|
||||
SOGo is developed by a community of developers located mainly in North
|
||||
America and Europe. More information can be found
|
||||
on http://www.sogo.nu/.
|
||||
|
||||
Architecture
|
||||
------------
|
||||
|
||||
The following diagram demonstrates the architecture of the native
|
||||
Outlook compatibility layer of SOGo.
|
||||
|
||||
image::images/openchange.png[]
|
||||
|
||||
With Samba 4 and OpenChange, Microsoft Outlook clients can communicate
|
||||
natively with SOGo using the Microsoft Exchange protocol, without
|
||||
requiring costly and hard-to-maintain third-party MAPI connectors for
|
||||
Microsoft Outlook.
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
Organizations generally have solutions to authenticate users such as
|
||||
LDAP servers or Microsoft Active Directory servers.
|
||||
|
||||
The solution being used will influence how users are provisioned in
|
||||
Samba 4, a key component for native Outlook compatibility in SOGo.
|
||||
|
||||
LDAP Server
|
||||
~~~~~~~~~~~
|
||||
|
||||
If your organization uses a LDAP server such OpenLDAP, Novell
|
||||
eDirectory, Apache Directory or any other solution, you must use
|
||||
Samba 4's internal directory server and synchronize the data between
|
||||
both.
|
||||
|
||||
Synchronization scripts are not provided and unless you have clear-text
|
||||
passwords of your existing users, they will have to be changed during
|
||||
your initial synchronization so that your LDAP's server passwords are
|
||||
identical to the ones from Samba 4.
|
||||
|
||||
Any modifications to your existing LDAP server (password change, user
|
||||
addition or deletion, etc.) will have to be replicated to Samba 4's
|
||||
internal directory server.
|
||||
|
||||
Note that if you install Samba 4 on a server that is already running a
|
||||
LDAP service, you will have to change to TCP port on which your LDAP
|
||||
server listens to. Samba 4 will use the TCP port 389 and it can't be
|
||||
changed.
|
||||
|
||||
For example, with OpenLDAP, you can use the `-h` parameter for `slapd`
|
||||
to make it listen on an other TCP port.
|
||||
|
||||
Microsoft Active Directory
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
If your organization uses Microsoft Active Directory, Samba 4 will need
|
||||
to be joined to your Active Directory domain, as a DC.
|
||||
|
||||
Samba 4 will be able to reuse all the information contained in Microsoft
|
||||
Active Directory and no synchronization process needs to be put in place
|
||||
as information will get replicated to Samba 4 automatically.
|
||||
|
||||
For more information on joining Samba 4 to an existing Microsoft Active
|
||||
Directory domain, please refer to the Samba 4 documentation available at
|
||||
the following URL:
|
||||
|
||||
http://wiki.samba.org/index.php/Samba4
|
||||
|
||||
More specifically, have a look at the `samba-tool domain join` command.
|
||||
Note that joining Samba 4 to your Active Directory domain as a member
|
||||
will currently not work. An authentication bug is present in Samba 4
|
||||
which then prevents all Outlook users to successfully authenticate
|
||||
through Samba 4. This issue has been reported to the Samba team and is
|
||||
being worked on.
|
||||
|
||||
Other or No Solution
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
If your organization neither uses a LDAP server or Microsoft Active
|
||||
Directory, you can start using Samba 4 as your directory server.
|
||||
|
||||
Samba 4's directory can be queried over LDAP just like Microsoft Active
|
||||
Directory and can also serve as a domain controller for Windows-based
|
||||
environments.
|
||||
|
||||
For example, SOGo can very well use Samba 4's built-in directory server
|
||||
to authenticate users. A SOGoUserSources entry to achieve this wold look
|
||||
like this:
|
||||
|
||||
----
|
||||
su – sogo
|
||||
defaults write sogod SOGoUserSources '(
|
||||
{
|
||||
CNFieldName = displayName;
|
||||
IDFieldName = cn;
|
||||
UIDFieldName = sAMAccountName;
|
||||
baseDN = "cn=Users,dc=example,dc=com";
|
||||
bindDN = "cn=Administrator,cn=Users,dc=example,dc=com";
|
||||
bindFields = (
|
||||
sAMAccountName
|
||||
);
|
||||
bindPassword = "%1OpenChange";
|
||||
canAuthenticate = YES;
|
||||
displayName = "Shared Addresses";
|
||||
hostname = "127.0.0.1";
|
||||
id = samba;
|
||||
isAddressBook = YES;
|
||||
port = 389;
|
||||
}
|
||||
)'
|
||||
----
|
||||
|
||||
Please refer to the _SOGo Installation and Configuration Guide_ for more
|
||||
information regarding `SOGoUserSources`.
|
||||
|
||||
IMAP Server and Trust
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
An IMAP server supporting the ACL, UIDPLUS and QRESYNC IMAP extensions
|
||||
is required, such as Cyrus IMAP version 2.4 or later, or Dovecot version
|
||||
2.1 or later. If your current IMAP server does not support these
|
||||
extensions, you can use Dovecot's proxying capabilities. The follow
|
||||
configuration example makes Dovecot proxy all IMAP request to an
|
||||
existing server:
|
||||
|
||||
----
|
||||
auth_mechanisms = plain login
|
||||
imapc_host = inverse.ca
|
||||
imapc_port = 993
|
||||
imapc_ssl = imaps
|
||||
imapc_ssl_verify = no
|
||||
mail_gid = imapproxy
|
||||
mail_home = /home/imapproxy/%u
|
||||
mail_location = imapc:~/imapc
|
||||
mail_uid = imapproxy
|
||||
passdb {
|
||||
args = host=inverse.ca ssl=imaps port=993 ssl_ca_dir=/etc/pki/tls/certs
|
||||
default_fields = userdb_imapc_user=%u userdb_imapc_password=%w
|
||||
driver = imap
|
||||
}
|
||||
protocols = imap
|
||||
ssl = no
|
||||
userdb {
|
||||
driver = prefetch
|
||||
}
|
||||
----
|
||||
|
||||
SOGo would then be configured to use Dovecot's proxy as the IMAP server.
|
||||
|
||||
Moreover, the authentication mode in use by Windows with Samba and
|
||||
Exchange servers prevent the backend from knowing the real password
|
||||
being used by the user. This implies that the IMAP server must accept
|
||||
any passwords from the host on which Samba is running.
|
||||
|
||||
To accomplish this with Cyrus IMAP Server, set `sasl_pwcheck_method`
|
||||
to `alwaystrue` in `/etc/imapd.conf`. You should restrain this to
|
||||
an `imapd` instance dedicated to SOGo.
|
||||
|
||||
For Dovecot, use an authentication source similar to:
|
||||
|
||||
----
|
||||
passdb {
|
||||
driver = static
|
||||
args = nopassword=y allow_nets=127.0.0.1/32
|
||||
}
|
||||
----
|
||||
|
||||
You should also make sure that you restrain this only to the SOGo
|
||||
processes.
|
||||
|
||||
For any other IMAP server, refer to the product's documentation. If such
|
||||
capability is not offered, you can alternatively define the cleartext
|
||||
password for each user. Please refer to the _Adding Users_ section from
|
||||
this document.
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
This section will guide you through the installation of the native
|
||||
Microsoft Outlook compatibility layer SOGo offers.
|
||||
|
||||
Red Hat Enterprise Linux v5 and v6
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
If you are using Red Hat Enterprise Linux (or CentOS) version 5 or
|
||||
version 6, packages for Samba 4, OpenChange and SOGo and the SOGo
|
||||
OpenChange backend are available from SOGo's web site. Please follow the
|
||||
instructions from
|
||||
http://www.sogo.nu/english/downloads/backend_nightly.html.
|
||||
|
||||
In order to satisfy certain dependencies, you should also add the EPEL
|
||||
source corresponding to your distribution and architecture. More
|
||||
information on this is available here:
|
||||
http://fedoraproject.org/wiki/EPEL – or more specifically,
|
||||
http://fedoraproject.org/wiki/EPEL/FAQ#How_can_I_install_the_packages_from_the_EPEL_software_repository.3F.
|
||||
|
||||
Once ready, install the OpenChange packages on top of an existing SOGo
|
||||
installation:
|
||||
|
||||
----
|
||||
yum clean all && yum makecache
|
||||
yum install samba4 \
|
||||
openchange \
|
||||
sogo-openchange-backend \
|
||||
openchange-ocsmanager \
|
||||
openchange-rpcproxy
|
||||
----
|
||||
|
||||
Once the packages are installed, refer to the _Configuration_ chapter
|
||||
from this guide.
|
||||
|
||||
Debian 6.0 (Squeeze) and Ubuntu 12.04 (Precise Pangolin)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Samba 4, OpenChange, SOGo and the SOGo OpenChange backend are now
|
||||
available from SOGo's web site. Please follow the instructions from
|
||||
http://www.sogo.nu/english/downloads/backend_nightly.html to setup your
|
||||
apt sources.
|
||||
|
||||
Debian Squeeze ships an older version of some libraries required by
|
||||
Samba 4. In order to workaround this, users of this distribution will
|
||||
have to use the _squeeze-backports_ repository. To do so, create
|
||||
`/etc/apt/sources.list.d/backports.list`:
|
||||
|
||||
deb http://backports.debian.org/debian-backports squeeze-backports main
|
||||
|
||||
Then install the dependencies on Debian Squeeze, do:
|
||||
|
||||
----
|
||||
apt-get update
|
||||
apt-get install -t squeeze-backports libwbclient-dev samba-common smbclient libsmbclient libsmbclient-dev
|
||||
----
|
||||
|
||||
Once ready, install the `samba4` package on top of an existing SOGo
|
||||
installation:
|
||||
|
||||
----
|
||||
apt-get update
|
||||
apt-get install samba4
|
||||
----
|
||||
|
||||
The current post installation script shipped with the Samba 4 package is
|
||||
far from perfect and might fail even on a fresh install. The following
|
||||
command is needed to let dpkg know that everything is fine about Samba 4
|
||||
if the post install script fails.
|
||||
|
||||
sed --in-place 'N; s/Package: samba4\nStatus: install ok half-configured/Package: samba4\nStatus: install ok installed/;' /var/lib/dpkg/status
|
||||
|
||||
Once completed, install the packages related to OpenChange and the SOGo
|
||||
provider:
|
||||
|
||||
----
|
||||
apt-get install openchangeserver \
|
||||
sogo-openchange \
|
||||
openchangeproxy \
|
||||
openchange-ocsmanager \
|
||||
openchange-rpcproxy
|
||||
----
|
||||
|
||||
Once the packages are installed, refer to the _Configuration_ chapter
|
||||
from this guide.
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
In this section, you'll learn how to configure the native Microsoft
|
||||
Outlook compatibility layer that SOGo offers.
|
||||
|
||||
SOGo Configuration
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
First thing to do is to configure SOGo to use your current services,
|
||||
which are your IMAP, SMTP and SQL database servers. The configuration
|
||||
instructions for this are available in the SOGo Installation and
|
||||
Configuration Guide available from http://www.sogo.nu/.
|
||||
|
||||
Please refer to that documentation before continuing with the
|
||||
instructions included in this guide.
|
||||
|
||||
Samba 4 Configuration
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Run the following commands as root:
|
||||
|
||||
----
|
||||
samba-tool domain provision --realm=example.com \
|
||||
--domain=OPENCHANGE \
|
||||
--adminpass='%1OpenChange' \
|
||||
--server-role='domain controller'
|
||||
|
||||
samba-tool user setexpiry administrator --noexpiry
|
||||
----
|
||||
|
||||
You might consider changing the realm and domain used, to suit your
|
||||
enviroment.
|
||||
|
||||
You might also have to
|
||||
remove `/etc/samba4/smb.conf` (or `/etc/samba/smb.conf` on Debian-based
|
||||
distributions) prior running this command.
|
||||
|
||||
Add the following parameters to the `[global]` section of the
|
||||
`/etc/samba4/smb.conf` (`/samba/smb.conf` if you use a Debian-based
|
||||
distribution) configuration file:
|
||||
|
||||
----
|
||||
### Configuration required by OpenChange server ###
|
||||
dcerpc endpoint servers = +epmapper, +mapiproxy
|
||||
dcerpc_mapiproxy:server = true
|
||||
dcerpc_mapiproxy:interfaces = exchange_emsmdb, exchange_nsp, exchange_ds_rfr
|
||||
### Configuration required by OpenChange server ###
|
||||
----
|
||||
|
||||
Your Samba 4 configuration file should look like this:
|
||||
|
||||
----
|
||||
# Global parameters
|
||||
[global]
|
||||
server role = active directory domain controller
|
||||
workgroup = EXAMPLE
|
||||
realm = example.com
|
||||
netbios name = sogo
|
||||
passdb backend = samba4
|
||||
### Configuration required by OpenChange server ###
|
||||
dcerpc endpoint servers = +epmapper, +mapiproxy
|
||||
dcerpc_mapiproxy:server = true
|
||||
dcerpc_mapiproxy:interfaces = exchange_emsmdb, exchange_nsp, exchange_ds_rfr
|
||||
### Configuration required by OpenChange server ###
|
||||
|
||||
[netlogon]
|
||||
path = /var/lib/samba/sysvol/example.com/scripts
|
||||
read only = No
|
||||
|
||||
[sysvol]
|
||||
path = /var/lib/samba/sysvol
|
||||
read only = No
|
||||
----
|
||||
|
||||
OpenChange Configuration
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The Samba AD schema needs to be filled with additional object
|
||||
definitions by running the following commands:
|
||||
|
||||
----
|
||||
openchange_provision
|
||||
|
||||
NOTE: This operation can take several minutes
|
||||
[+] Step 1: Register Exchange OIDs
|
||||
[+] Step 2: Add Exchange attributes to Samba schema
|
||||
[+] Step 3: Add Exchange auxiliary classes to Samba schema
|
||||
[+] Step 4: Add Exchange objectCategory to Samba schema
|
||||
[+] Step 5: Add Exchange containers to Samba schema
|
||||
[+] Step 6: Add Exchange *sub* containers to Samba schema
|
||||
[+] Step 7: Add Exchange CfgProtocol subcontainers to Samba schema
|
||||
[+] Step 8: Add Exchange mailGateway subcontainers to Samba schema
|
||||
[+] Step 9: Add Exchange classes to Samba schema
|
||||
[+] Step 10: Add possSuperior attributes to Exchange classes
|
||||
[+] Step 11: Extend existing Samba classes and attributes
|
||||
[+] Step 12: Exchange Samba with Exchange configuration objects
|
||||
[SUCCESS] Done!
|
||||
----
|
||||
|
||||
You can safely ignore the "`ERROR: no subClassOf 'serviceAdministrationPoint' for 'rRASAdministrationConnectionPoint'`" message when running the `openchange_provision` command.
|
||||
|
||||
Provision the OpenChange database:
|
||||
|
||||
----
|
||||
openchange_provision --openchangedb
|
||||
|
||||
Setting up openchange db
|
||||
[+] Public Folders
|
||||
===================
|
||||
* Public Folder Root 0x0100000000000001
|
||||
* IPM_SUBTREE 0x0200000000000001
|
||||
* NON_IPM_SUBTREE 0x0300000000000001
|
||||
* EFORMS REGISTRY 0x0400000000000001
|
||||
* OFFLINE ADDRESS BOOK 0x0500000000000001
|
||||
* /o=First Organization/cn=addrlists/cn=oabs/cn=Default Offline Address Book 0x0600000000000001
|
||||
* SCHEDULE+ FREE BUSY 0x0700000000000001
|
||||
* EX:/o=First Organization/ou=Exchange Administrative Group (UBUNTU-OC) 0x0800000000000001
|
||||
* Events Root 0x0900000000000001
|
||||
----
|
||||
|
||||
On RHEL, make sure SELinux is disabled:
|
||||
|
||||
setenforce 0
|
||||
|
||||
Next, you can start Samba using the usual command :
|
||||
|
||||
/etc/init.d/samba4 start
|
||||
|
||||
You can also launch the OpenChange web services:
|
||||
|
||||
/etc/init.d/openchange-ocsmanager start
|
||||
|
||||
Apache Configuration for Web Services
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The OpenChange web services consist of two components:
|
||||
|
||||
1. *OCS Manager* which is used for autodiscovery and freebusy lookups on
|
||||
Outlook 2007 and 2010. This service runs in its own application server
|
||||
which listens on `127.0.0.1:5000` by default. Apache needs to be
|
||||
configured to forward certain requests to it to make it accessible from
|
||||
the outside.
|
||||
Note that this service *MUST* be accessible over*HTTPS*, otherwise Outlook
|
||||
won't use it.
|
||||
2. *RPC Proxy* which is used for RPC over HTTP ("Outlook Anywhere").
|
||||
This service runs as a WSGI application under apache (mod_wsgi).
|
||||
While HTTPS is not required to access this service, it is strongly
|
||||
recommended.
|
||||
|
||||
On RHEL-based distributions, the apache configuration required by these
|
||||
services can be found in `/etc/httpd/conf.d/ocsmanager.conf` and
|
||||
`/etc/httpd/conf.d/rpcproxy.conf`.
|
||||
|
||||
For Debian-based distributions, these files can be found
|
||||
in `/etc/apache2/conf.d/`.
|
||||
|
||||
The configuration requires three Apache modules: _mod_proxy_,
|
||||
_mod_proxy_http_ and _mod_wsgi_. These are usually already installed but
|
||||
might need to be activated on Debian-based installations:
|
||||
|
||||
a2enmod proxy proxy_http wsgi
|
||||
|
||||
On RHEL-based distributions, make sure the `LoadModule` directive is
|
||||
uncommented in `/etc/httpd/conf.d/wsgi.conf` (or
|
||||
`python26-mod_wsgi.conf` on RHELv5).
|
||||
|
||||
The _reqtimeout_ apache module is known to cause problems when using the
|
||||
default configuration shipped with Debian-based systems. On such
|
||||
distributions, apache will close (HTTP/1.1 500) any HTTP request for
|
||||
which the HTTP body hasn't arrived in 10 seconds.
|
||||
|
||||
While this is arguably good practice with regular HTTP, it will disrupt
|
||||
the RPC over HTTP protocol implemented by RPC Proxy: Outlook will
|
||||
continuously disconnect and reconnect leading to suboptimal performance.
|
||||
|
||||
To avoid this problem, use a much higher timeout or disable the module:
|
||||
|
||||
a2dismod reqtimeout
|
||||
|
||||
You should now restart the Apache service and make sure it will start on
|
||||
boot. On RHEL-based distributions, do:
|
||||
|
||||
chkconfig httpd on && /etc/init.d/httpd restart
|
||||
|
||||
On Debian-based distributions, do:
|
||||
|
||||
update-rc.d apache2 defaults && /etc/init.d/apache2 restart
|
||||
|
||||
Name Service Configuration for Web Services
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The autodiscovery service must be made accessible in order to advertise
|
||||
the web services provided by OpenChange. This can be done in two ways.
|
||||
|
||||
1. The first is to associate the FQDN `autodiscover.example.com.` with
|
||||
the machine that hosts Samba 4 / OpenChange, by adding a `CNAME` entry
|
||||
in your DNS configuration. Note that, instead or changing your DNS
|
||||
server configuration, you can simply add a similar entry to the _hosts_
|
||||
file of the Windows machine from where you'll run Outlook, which is
|
||||
handy for testing purposes.
|
||||
2. The second option is to add a `SRV` entry to your DNS configuration
|
||||
where the `_service` value would be `Autodiscover` and the `_protocol`
|
||||
would be `_tcp`.
|
||||
|
||||
For example:
|
||||
|
||||
_autodiscover._tcp.example.com. IN SRV 0 0 443 sogo.example.com.
|
||||
|
||||
Again, the autodiscovery service must be accessible over HTTPS.
|
||||
|
||||
Adding Users
|
||||
------------
|
||||
|
||||
Users that wish to connect natively to SOGo must be provisioned in
|
||||
Samba 4 and in OpenChange – even if they already exist in your current
|
||||
LDAP or Microsoft Active Directory server.
|
||||
|
||||
To add a user, execute the following commands:
|
||||
|
||||
----
|
||||
# add user to samba
|
||||
samba-tool domain passwordsettings set --complexity=off
|
||||
samba-tool domain passwordsettings set --min-pwd-length=1
|
||||
samba-tool user add <username>
|
||||
samba-tool user setexpiry <username> --noexpiry
|
||||
# create user in openchange+ +openchange_newuser --create <username>
|
||||
----
|
||||
|
||||
If you don't have a trust between your IMAP server and SOGo, you must at
|
||||
this point set the cleartext password of the newly created user in
|
||||
`/var/lib/samba4/private/mapistore/<username/password` (or
|
||||
`/var/lib/samba/private/mapistore/<username/password` on Debian-based
|
||||
distributions).
|
||||
|
||||
This per-user file contains the cleartext password of the user as a
|
||||
UTF-8 string, on a single line. This password will be used to
|
||||
authenticate SOGo/OpenChange storage provider to your IMAP server.
|
||||
|
||||
Microsoft Outlook Configuration
|
||||
-------------------------------
|
||||
|
||||
To connect Microsoft Outlook, you can either use the IP address of the
|
||||
server or its DNS name. If you prefer using the DNS name, add an entry
|
||||
like the following to the `c:\windows\system32\drivers\etc\hosts` file
|
||||
in order to associate the IP address with the right DNS names:
|
||||
|
||||
192.168.1.1 sogo.example.com autodiscover.example.com
|
||||
|
||||
Next, you must configure Microsoft Outlook.
|
||||
|
||||
* Open the Control Panel => Mail => Email Accounts.
|
||||
* Select _Add a new e-mail account_
|
||||
* Choose _Microsoft Exchange Server_
|
||||
* Fill the required information. Enter the DNS name or the IP address of
|
||||
your SOGo server in the _Microsoft Exchange Server_ field
|
||||
* Leave the _Use Cached Exchange Mode_ checkbox enabled
|
||||
* Enter your username in the _User Name_ field
|
||||
* Click on _More Settings_ and ignore the warning, if any, about
|
||||
Exchange being offline by clicking on Cancel
|
||||
* From the Security tab, enable Always prompt for user name and password
|
||||
* From the _Connection_ tab, enable _"Outlook Anywhere"_ if you plan to
|
||||
use Outlook outside of your LAN. Moreover, click on the _Exchange Proxy
|
||||
Settings..._ button to enable it for slow and fast networks. Specify
|
||||
also the host, which should be the same value you specified in the
|
||||
Microsoft Exchange Server field.
|
||||
* Finally, click on Check Name and confirm your username and password
|
||||
|
||||
Start Microsoft Outlook and enter your username and password. It will
|
||||
start to synchronize your mailbox. This could take a long time if you
|
||||
have many emails, events, tasks and contacts. Once this step is
|
||||
completed, check the autodiscovery service with Outlook 2007 or 2010 by
|
||||
simultaneously holding the CTRL key on your keyboard and right-clicking
|
||||
on the Outlook icon in the notification toolbar. A special entry named
|
||||
"Test E-mail AutoConfiguration..." will appear and will enable you to
|
||||
check the service.
|
||||
|
||||
Known Issues or Limitations
|
||||
---------------------------
|
||||
|
||||
* Make sure you periodically backup all your data regarding SOGo.
|
||||
* Make sure you have no firewalls activated between your Microsoft
|
||||
Outlook clients and the SOGo server with Native Outlook Compatibility
|
||||
module. If you do, use "Outlook Anywhere" to connect Outlook to
|
||||
SOGo/OpenChange.
|
||||
|
||||
Current Limitations
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The current version of the Native Microsoft Outlook compatibility layer
|
||||
has some limitations.
|
||||
|
||||
Those limitations will be overcome in the upcoming releases. If you are
|
||||
interested in having those limitations fixed more rapidly, please
|
||||
contact Inverse by sending an email to support@inverse.ca.
|
||||
|
||||
General
|
||||
^^^^^^^
|
||||
|
||||
* If you can't see any email's content with Microsoft Outlook 2007,
|
||||
install the latest Service Pack available from Microsoft's website for
|
||||
this specific version. Microsoft Outlook 2007 (12.0.6423.100) SP2 MSO
|
||||
(12.0.6425.1000) is known to work.
|
||||
* When you create a new Microsoft Outlook profile, not all folders might
|
||||
be synchronized during the first start. Simply select the appropriate
|
||||
folder and click "Send and Receive". Synchronizing a folder may take
|
||||
some time. For example, a folder with 1000 email messages might take
|
||||
around 5 minutes based on the underlying hardware.
|
||||
* Errors when synchronizing the "Offline Address Book" are normal and
|
||||
can be ignored for now. This feature is currently not supported.
|
||||
* If you face strange issues from Microsoft Outlook, you might want to
|
||||
remove any data associated with the user from the SOGo server and
|
||||
recreate a Microsoft Outlook profile.
|
||||
To remove any data associated to a user, use
|
||||
the `openchange_user_cleanup` script distributed with SOGo. The script
|
||||
can be found in `/usr/share/doc/sogo/` (`/usr/share/sogo-VERSION/` on
|
||||
RHEL).
|
||||
To reset a user, run the script as root:
|
||||
`python openchange_user_cleanup username`. See the usage output for additional options.
|
||||
* The "Out of Office Assistant" will not currently work. This feature
|
||||
has not been implemented.
|
||||
* Creating folders below INBOX (when not normally permitted by the IMAP
|
||||
server), below the Personal Calendar or Personal Address Book will work
|
||||
in Outlook cached mode but the server-side operation will fail and these
|
||||
folders will never be created. Potentially data loss can occur if the
|
||||
Outlook profile is destroyed. If you wan to create additional top-level
|
||||
mail folders, calendars or address books, open Outlook's folder list,
|
||||
select the top level node (usually, "email@example.com") and choose "New
|
||||
Folder..." from the contextual menu. Choose the relevant item types.
|
||||
|
||||
Mail
|
||||
^^^^
|
||||
|
||||
* Sharing mail folders is not supported.
|
||||
* To avoid possibly lossy conversion from RTF to HTML, Outlook should be
|
||||
configured to send all mails as HTML (or plaintext) instead of _Outlook
|
||||
Rich Text Format_.
|
||||
|
||||
Calendar
|
||||
^^^^^^^^
|
||||
|
||||
* Labels will not work.
|
||||
* It might be impossible to view event details from a shared calendar.
|
||||
This issue is being worked on.
|
||||
|
||||
Tasks
|
||||
^^^^^
|
||||
|
||||
* Tasks with start/due dates created from Outlook might not appear
|
||||
correctly in SOGo due to a timezone issue.
|
||||
* Reminders are not yet supported.
|
||||
* Assigning tasks will not work.
|
||||
|
||||
Contacts
|
||||
^^^^^^^^
|
||||
|
||||
* Categories will not work.
|
||||
* Distribution lists will not work.
|
||||
* Under Microsoft Outlook 2010, the special folder "Suggested Contacts"
|
||||
will not work.
|
||||
* The "Offline Address Book" will not work. This feature is not yet
|
||||
supported.
|
||||
|
||||
Notes
|
||||
^^^^^
|
||||
|
||||
* Notes are not synchronized in any ways with SOGo. The current version
|
||||
of SOGo lacks support for notes.
|
||||
|
||||
If you notice anything else, please send contact Inverse by sending an
|
||||
email to support@inverse.ca.
|
||||
|
||||
include::includes/additional-info.asciidoc[]
|
||||
|
||||
include::includes/commercial-support.asciidoc[]
|
||||
@@ -0,0 +1,16 @@
|
||||
#
|
||||
# fop fix to build our documentation on CentOS 6
|
||||
#
|
||||
# Inverse inc. <info@inverse.ca>
|
||||
#
|
||||
--- /usr/bin/fop.orig 2012-01-17 21:25:50.000000000 -0500
|
||||
+++ /usr/bin/fop 2012-01-17 21:26:04.000000000 -0500
|
||||
@@ -26,7 +26,7 @@
|
||||
# Set parameters
|
||||
set_jvm
|
||||
set_classpath commons-io batik-all avalon-framework xmlgraphics-commons \
|
||||
- commons-logging fop
|
||||
+ commons-logging fop xalan-j2
|
||||
set_flags $BASE_FLAGS
|
||||
set_options $BASE_OPTIONS
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
#
|
||||
# xmlgraphics-fop fix to build our documentation on CentOS 5
|
||||
# taken from https://build.opensuse.org/request/show/68994
|
||||
#
|
||||
# Inverse inc. <info@inverse.ca>
|
||||
#
|
||||
--- /usr/bin/xmlgraphics-fop.orig 2012-01-17 18:42:08.000000000 -0500
|
||||
+++ /usr/bin/xmlgraphics-fop 2012-01-17 18:42:18.000000000 -0500
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
# Rest of the configuration
|
||||
MAIN_CLASS=org.apache.fop.cli.Main
|
||||
-BASE_JARS="xmlgraphics-fop xmlgraphics-batik/util xml-commons-jaxp-1.3-apis excalibur/avalon-framework-api xerces-j2 xalan-j2 xalan-j2-serializer"
|
||||
+BASE_JARS="xmlgraphics-fop batik-all xml-commons-jaxp-1.3-apis excalibur/avalon-framework-impl excalibur/avalon-framework-api xerces-j2 xalan-j2 xalan-j2-serializer"
|
||||
|
||||
# Set parameters
|
||||
set_jvm
|
||||
@@ -0,0 +1,107 @@
|
||||
<?xml version='1.0'?>
|
||||
<xsl:stylesheet
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
||||
version="1.0">
|
||||
|
||||
<!-- ********************************************************************
|
||||
|
||||
Header / Footer customizations
|
||||
|
||||
This file is part of the SOGo project.
|
||||
Authors:
|
||||
- Inverse inc. <info@inverse.ca>
|
||||
|
||||
Copyright (C) 2011-2014 Inverse inc.
|
||||
License: GFDL 1.2 or later. http://www.gnu.org/licenses/fdl.html
|
||||
|
||||
******************************************************************** -->
|
||||
|
||||
<!--
|
||||
Here we are re-defining docbook-xsl/fo/pagesetup.xsl to fit our needs.
|
||||
- top: chapter number on the left
|
||||
- bottom: copyright, chapter name, page
|
||||
-->
|
||||
|
||||
<xsl:param name="header.rule" select="0"/>
|
||||
|
||||
<xsl:template name="header.content">
|
||||
<xsl:param name="pageclass" select="''"/>
|
||||
<xsl:param name="sequence" select="''"/>
|
||||
<xsl:param name="position" select="''"/>
|
||||
<xsl:param name="gentext-key" select="''"/>
|
||||
|
||||
<fo:block>
|
||||
<!-- sequence can be odd, even, first, blank -->
|
||||
<!-- position can be left, center, right -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="$sequence = 'blank'">
|
||||
<!-- nothing -->
|
||||
</xsl:when>
|
||||
|
||||
<xsl:when test="($sequence='first' or $sequence='odd' or $sequence='even') and $position='left'">
|
||||
<xsl:if test="$pageclass != 'titlepage' and $pageclass != 'lot'">
|
||||
<xsl:call-template name="gentext">
|
||||
<xsl:with-param name="key" select="'chapter'"/>
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name="gentext.space"/>
|
||||
<xsl:number count="chapter" from="book" level="any"/>
|
||||
</xsl:if>
|
||||
</xsl:when>
|
||||
|
||||
<!-- draft -->
|
||||
<xsl:when test="$position='right'">
|
||||
<xsl:call-template name="draft.text"/>
|
||||
</xsl:when>
|
||||
|
||||
<xsl:otherwise>
|
||||
<!-- nop -->
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:param name="footer.rule" select="0"/>
|
||||
<xsl:template name="footer.content">
|
||||
<xsl:param name="pageclass" select="''"/>
|
||||
<xsl:param name="sequence" select="''"/>
|
||||
<xsl:param name="position" select="''"/>
|
||||
<xsl:param name="gentext-key" select="''"/>
|
||||
|
||||
<fo:block>
|
||||
<!-- pageclass can be front, body, back -->
|
||||
<!-- sequence can be odd, even, first, blank -->
|
||||
<!-- position can be left, center, right -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="$pageclass = 'titlepage'">
|
||||
<!-- nop; no footer on title pages -->
|
||||
</xsl:when>
|
||||
|
||||
<xsl:when test="$double.sided = 0 and $position='left'">
|
||||
<xsl:apply-templates select="//copyright[1]" mode="titlepage.mode"/>
|
||||
</xsl:when>
|
||||
|
||||
<xsl:when test="($sequence='first' or $sequence='odd' or $sequence='even') and $position='center'">
|
||||
<xsl:if test="$pageclass != 'titlepage' and $pageclass != 'lot'">
|
||||
<xsl:apply-templates select="." mode="titleabbrev.markup"/>
|
||||
</xsl:if>
|
||||
</xsl:when>
|
||||
|
||||
<xsl:when test="$double.sided = 0 and $position='right'">
|
||||
<fo:page-number/>
|
||||
</xsl:when>
|
||||
|
||||
<xsl:when test="$sequence='blank'">
|
||||
<!-- nop -->
|
||||
</xsl:when>
|
||||
|
||||
<xsl:otherwise>
|
||||
<!-- nop -->
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
</xsl:stylesheet>
|
||||
<!-- vim: set shiftwidth=2 tabstop=2 expandtab: -->
|
||||
@@ -0,0 +1,193 @@
|
||||
<?xml version='1.0'?>
|
||||
<xsl:stylesheet
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
||||
version="1.0">
|
||||
|
||||
<!-- ********************************************************************
|
||||
|
||||
SOGo Documentation Docbook FO Parameters
|
||||
|
||||
This file is part of the SOGo project.
|
||||
Authors:
|
||||
- Inverse inc. <info@inverse.ca>
|
||||
|
||||
Copyright (C) 2011-2014 Inverse inc.
|
||||
License: GFDL 1.2 or later. http://www.gnu.org/licenses/fdl.html
|
||||
|
||||
******************************************************************** -->
|
||||
|
||||
<!--
|
||||
Global Tasks
|
||||
|
||||
TODO prettier revhistory
|
||||
TODO prettier Table of Contents
|
||||
TODO generate PDF table of contents (like OSX's Preview shows on the right hand side)
|
||||
TODO title 2
|
||||
- align with text?
|
||||
- more above whitespace
|
||||
TODO change the bullet for a prettier one
|
||||
TODO title 3 and 4
|
||||
- align with text?
|
||||
- should be easier to differentiate (check network guide)
|
||||
TODO icon on line wrap in monospace boxes
|
||||
TODO caution, notes, warnings, etc.
|
||||
- box around it
|
||||
- sexy icon
|
||||
TODO -> is converted into an arrow but it's not pretty (is it font or docbook-thingy?)
|
||||
|
||||
-->
|
||||
|
||||
<!--
|
||||
Load default values
|
||||
|
||||
Real upstream schema is at:
|
||||
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl"/>
|
||||
|
||||
but we decided to load all sensible local xsd since it only produce a warning on missing imports.
|
||||
-->
|
||||
<!-- CentOS / RHEL -->
|
||||
<xsl:import href="/usr/share/sgml/docbook/xsl-stylesheets/fo/docbook.xsl"/>
|
||||
<!-- Debian / Ubuntu -->
|
||||
<xsl:import href="/usr/share/xml/docbook/stylesheet/docbook-xsl/fo/docbook.xsl"/>
|
||||
<!-- OSX through mac ports -->
|
||||
<xsl:import href="/opt/local/share/xsl/docbook-xsl/fo/docbook.xsl"/>
|
||||
|
||||
<!-- title page extra styling -->
|
||||
<xsl:import href="titlepage-fo.xsl"/>
|
||||
|
||||
<!-- header / footer extra styling -->
|
||||
<xsl:import href="headerfooter-fo.xsl"/>
|
||||
|
||||
<!-- attaching an image to the verso legalnotice component -->
|
||||
<xsl:template match="legalnotice" mode="book.titlepage.verso.mode">
|
||||
<xsl:apply-templates mode="titlepage.mode"/>
|
||||
<fo:block text-align="right">
|
||||
<fo:external-graphic src="url('images/inverse-logo.jpg')" width="3in" content-width="scale-to-fit"/>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<!-- stylesheet options -->
|
||||
<xsl:param name="title.font.family">Sorts Mill Goudy</xsl:param>
|
||||
<xsl:param name="chapter.autolabel" select="0"/>
|
||||
<xsl:attribute-set name="component.title.properties">
|
||||
<xsl:attribute name="padding-bottom">0.5em</xsl:attribute>
|
||||
<xsl:attribute name="border-bottom">solid 2px</xsl:attribute>
|
||||
<xsl:attribute name="margin-bottom">1em</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="section.title.level1.properties">
|
||||
<xsl:attribute name="border-bottom">solid 1px</xsl:attribute>
|
||||
<xsl:attribute name="margin-top">1em</xsl:attribute>
|
||||
<xsl:attribute name="margin-bottom">1em</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="section.title.level2.properties">
|
||||
<xsl:attribute name="margin-top">1em</xsl:attribute>
|
||||
<xsl:attribute name="margin-bottom">1em</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="section.title.level3.properties">
|
||||
<xsl:attribute name="margin-top">1em</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="section.title.level4.properties">
|
||||
<xsl:attribute name="margin-top">1em</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- paragraph spacing -->
|
||||
<xsl:attribute-set name="normal.para.spacing">
|
||||
<xsl:attribute name="space-before.optimum">1.5em</xsl:attribute>
|
||||
<xsl:attribute name="space-before.minimum">1.5em</xsl:attribute>
|
||||
<xsl:attribute name="space-before.maximum">2.2em</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- default fonts -->
|
||||
<xsl:param name="body.font.family">Delicious</xsl:param>
|
||||
<xsl:param name="body.font.master">10</xsl:param>
|
||||
<xsl:param name="monospace.font.family">Incosolata</xsl:param>
|
||||
|
||||
<!-- revision table layout -->
|
||||
<xsl:attribute-set name="revhistory.title.properties">
|
||||
<xsl:attribute name="font-size">12pt</xsl:attribute>
|
||||
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
||||
<xsl:attribute name="text-align">center</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="revhistory.table.properties">
|
||||
<xsl:attribute name="break-before">page</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="revhistory.table.cell.properties">
|
||||
<xsl:attribute name="border-bottom">1px solid</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- Table Of Contents (TOC) options -->
|
||||
<!-- We only want 2 level of ToC depth -->
|
||||
<xsl:param name="toc.section.depth" select="2"/>
|
||||
|
||||
<!-- titles left margin -->
|
||||
<xsl:attribute-set name="section.title.properties">
|
||||
<xsl:attribute name="start-indent"><xsl:value-of select="$body.start.indent"/></xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<xsl:attribute-set name="list.item.spacing">
|
||||
<xsl:attribute name="space-before.optimum">0em</xsl:attribute>
|
||||
<xsl:attribute name="space-before.minimum">0em</xsl:attribute>
|
||||
<xsl:attribute name="space-before.maximum">0.2em</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- lists type -->
|
||||
<xsl:template name="itemizedlist.label.markup">
|
||||
<xsl:param name="itemsymbol" select="'square'"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="$itemsymbol='square'"><fo:inline font-family="Delicious">∏</fo:inline></xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
<xsl:template name="next.itemsymbol">
|
||||
<xsl:param name="itemsymbol" select="'default'"/>
|
||||
<xsl:choose>
|
||||
<xsl:otherwise>square</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<!-- admonition -->
|
||||
<xsl:param name="admon.graphics" select="1"></xsl:param>
|
||||
<xsl:param name="admon.graphics.path">images/</xsl:param>
|
||||
<xsl:param name="admon.graphics.extension">.png</xsl:param>
|
||||
<xsl:attribute-set name="graphical.admonition.properties">
|
||||
<xsl:attribute name="border-top">1px solid</xsl:attribute>
|
||||
<xsl:attribute name="border-bottom">1px solid</xsl:attribute>
|
||||
<xsl:attribute name="padding-top">0.5em</xsl:attribute>
|
||||
<xsl:attribute name="padding-bottom">0.5em</xsl:attribute>
|
||||
<xsl:attribute name="margin-left">2em</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
|
||||
<!-- grey boxes around code (screen, programlisting) -->
|
||||
<xsl:param name="shade.verbatim" select="1"/>
|
||||
<xsl:attribute-set name="shade.verbatim.style">
|
||||
<xsl:attribute name="background-color">#E0E0E0</xsl:attribute>
|
||||
<xsl:attribute name="border">solid</xsl:attribute>
|
||||
<xsl:attribute name="margin">0pt</xsl:attribute>
|
||||
<xsl:attribute name="padding">0.5em</xsl:attribute>
|
||||
<!-- prevent page breaks in screen and programlisting tags -->
|
||||
<xsl:attribute name="keep-together.within-column">always</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- breaking long lines in code (screen, programlisting) -->
|
||||
<xsl:attribute-set name="monospace.verbatim.properties">
|
||||
<xsl:attribute name="wrap-option">wrap</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- don't show raw links in [ .. ] after a link -->
|
||||
<xsl:param name="ulink.show" select="0"/>
|
||||
|
||||
<!-- blue underlined hyperlink -->
|
||||
<xsl:attribute-set name="xref.properties">
|
||||
<xsl:attribute name="color">blue</xsl:attribute>
|
||||
<xsl:attribute name="text-decoration">underline</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- copyright in range instead of seperated years -->
|
||||
<xsl:param name="make.year.ranges" select="1" />
|
||||
|
||||
<!-- variablelist behavior (asciidoc's term:: lists) -->
|
||||
<!-- <xsl:param name="variablelist.term.break.after" select="1" /> -->
|
||||
|
||||
</xsl:stylesheet>
|
||||
<!-- vim: set shiftwidth=2 tabstop=2 expandtab: -->
|
||||
@@ -0,0 +1,175 @@
|
||||
<?xml version='1.0'?>
|
||||
<xsl:stylesheet
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
||||
version="1.0">
|
||||
|
||||
<!-- ********************************************************************
|
||||
|
||||
SOGo Documentation Docbook FO Parameters
|
||||
|
||||
This file is part of the SOGo project.
|
||||
Authors:
|
||||
- Inverse inc. <info@inverse.ca>
|
||||
|
||||
Copyright (C) 2011-2014 Inverse inc.
|
||||
License: GFDL 1.2 or later. http://www.gnu.org/licenses/fdl.html
|
||||
|
||||
******************************************************************** -->
|
||||
|
||||
<!--
|
||||
Global Tasks
|
||||
|
||||
TODO prettier revhistory
|
||||
TODO prettier Table of Contents
|
||||
TODO generate PDF table of contents (like OSX's Preview shows on the right hand side)
|
||||
TODO title 2
|
||||
- align with text?
|
||||
- more above whitespace
|
||||
TODO change the bullet for a prettier one
|
||||
TODO title 3 and 4
|
||||
- align with text?
|
||||
- should be easier to differentiate (check network guide)
|
||||
TODO icon on line wrap in monospace boxes
|
||||
TODO caution, notes, warnings, etc.
|
||||
- box around it
|
||||
- sexy icon
|
||||
TODO -> is converted into an arrow but it's not pretty (is it font or docbook-thingy?)
|
||||
|
||||
-->
|
||||
|
||||
<!--
|
||||
Load default values
|
||||
|
||||
Real upstream schema is at:
|
||||
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl"/>
|
||||
|
||||
but we decided to load all sensible local xsd since it only produce a warning on missing imports.
|
||||
-->
|
||||
<!-- CentOS / RHEL -->
|
||||
<xsl:import href="/usr/share/sgml/docbook/xsl-stylesheets/fo/docbook.xsl"/>
|
||||
<!-- Debian / Ubuntu -->
|
||||
<xsl:import href="/usr/share/xml/docbook/stylesheet/docbook-xsl/fo/docbook.xsl"/>
|
||||
<!-- OSX through mac ports -->
|
||||
<xsl:import href="/opt/local/share/xsl/docbook-xsl/fo/docbook.xsl"/>
|
||||
|
||||
<!-- title page extra styling -->
|
||||
<xsl:import href="titlepage-fo.xsl"/>
|
||||
|
||||
<!-- header / footer extra styling -->
|
||||
<xsl:import href="headerfooter-fo.xsl"/>
|
||||
|
||||
<!-- attaching an image to the verso legalnotice component -->
|
||||
<xsl:template match="legalnotice" mode="book.titlepage.verso.mode">
|
||||
<xsl:apply-templates mode="titlepage.mode"/>
|
||||
<fo:block text-align="right">
|
||||
<fo:external-graphic src="url('images/inverse-logo.jpg')" width="3in" content-width="scale-to-fit"/>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<!-- stylesheet options -->
|
||||
<xsl:param name="title.font.family">Sorts Mill Goudy</xsl:param>
|
||||
<xsl:param name="chapter.autolabel" select="0"/>
|
||||
<xsl:attribute-set name="component.title.properties">
|
||||
<xsl:attribute name="padding-bottom">2.5em</xsl:attribute>
|
||||
<xsl:attribute name="border-bottom">solid 2px</xsl:attribute>
|
||||
<xsl:attribute name="margin-bottom">1em</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="section.title.level1.properties">
|
||||
<xsl:attribute name="border-bottom">solid 1px</xsl:attribute>
|
||||
<xsl:attribute name="margin-top">2em</xsl:attribute>
|
||||
<xsl:attribute name="margin-bottom">1em</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- titles spacing -->
|
||||
<xsl:attribute-set name="section.title.level2.properties">
|
||||
<xsl:attribute name="margin-top">1em</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- default fonts -->
|
||||
<xsl:param name="body.font.family">Delicious</xsl:param>
|
||||
<xsl:param name="body.font.master">10</xsl:param>
|
||||
<xsl:param name="monospace.font.family">Incosolata</xsl:param>
|
||||
|
||||
<!-- revision table layout -->
|
||||
<xsl:attribute-set name="revhistory.title.properties">
|
||||
<xsl:attribute name="font-size">12pt</xsl:attribute>
|
||||
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
||||
<xsl:attribute name="text-align">center</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="revhistory.table.properties">
|
||||
<xsl:attribute name="break-before">page</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
<xsl:attribute-set name="revhistory.table.cell.properties">
|
||||
<xsl:attribute name="border-bottom">1px solid</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- Table Of Contents (TOC) options -->
|
||||
<!-- We only want 2 level of ToC depth -->
|
||||
<xsl:param name="toc.section.depth" select="1"/>
|
||||
|
||||
<!-- titles left margin -->
|
||||
<xsl:attribute-set name="section.title.properties">
|
||||
<xsl:attribute name="start-indent"><xsl:value-of select="$body.start.indent"/></xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- lists type -->
|
||||
<xsl:template name="itemizedlist.label.markup">
|
||||
<xsl:param name="itemsymbol" select="'square'"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="$itemsymbol='square'"><fo:inline font-family="Delicious">∏</fo:inline></xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
<xsl:template name="next.itemsymbol">
|
||||
<xsl:param name="itemsymbol" select="'default'"/>
|
||||
<xsl:choose>
|
||||
<xsl:otherwise>square</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<!-- admonition -->
|
||||
<xsl:param name="admon.graphics" select="1"></xsl:param>
|
||||
<xsl:param name="admon.graphics.path">images/</xsl:param>
|
||||
<xsl:param name="admon.graphics.extension">.png</xsl:param>
|
||||
<xsl:attribute-set name="graphical.admonition.properties">
|
||||
<xsl:attribute name="border-top">1px solid</xsl:attribute>
|
||||
<xsl:attribute name="border-bottom">1px solid</xsl:attribute>
|
||||
<xsl:attribute name="padding-top">0.5em</xsl:attribute>
|
||||
<xsl:attribute name="padding-bottom">0.5em</xsl:attribute>
|
||||
<xsl:attribute name="margin-left">2em</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
|
||||
<!-- grey boxes around code (screen, programlisting) -->
|
||||
<xsl:param name="shade.verbatim" select="1"/>
|
||||
<xsl:attribute-set name="shade.verbatim.style">
|
||||
<xsl:attribute name="background-color">#E0E0E0</xsl:attribute>
|
||||
<xsl:attribute name="border">solid</xsl:attribute>
|
||||
<xsl:attribute name="margin">0pt</xsl:attribute>
|
||||
<xsl:attribute name="padding">0.5em</xsl:attribute>
|
||||
<!-- prevent page breaks in screen and programlisting tags -->
|
||||
<xsl:attribute name="keep-together.within-column">always</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- breaking long lines in code (screen, programlisting) -->
|
||||
<xsl:attribute-set name="monospace.verbatim.properties">
|
||||
<xsl:attribute name="wrap-option">wrap</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- don't show raw links in [ .. ] after a link -->
|
||||
<xsl:param name="ulink.show" select="0"/>
|
||||
|
||||
<!-- blue underlined hyperlink -->
|
||||
<xsl:attribute-set name="xref.properties">
|
||||
<xsl:attribute name="color">blue</xsl:attribute>
|
||||
<xsl:attribute name="text-decoration">underline</xsl:attribute>
|
||||
</xsl:attribute-set>
|
||||
|
||||
<!-- copyright in range instead of seperated years -->
|
||||
<xsl:param name="make.year.ranges" select="1" />
|
||||
|
||||
<!-- variablelist behavior (asciidoc's term:: lists) -->
|
||||
<!-- <xsl:param name="variablelist.term.break.after" select="1" /> -->
|
||||
|
||||
</xsl:stylesheet>
|
||||
<!-- vim: set shiftwidth=2 tabstop=2 expandtab: -->
|
||||
@@ -0,0 +1,96 @@
|
||||
<!DOCTYPE t:templates [
|
||||
<!ENTITY hsize0 "10pt">
|
||||
<!ENTITY hsize1 "12pt">
|
||||
<!ENTITY hsize2 "14.4pt">
|
||||
<!ENTITY hsize3 "17.28pt">
|
||||
<!ENTITY hsize4 "20.736pt">
|
||||
<!ENTITY hsize5 "24.8832pt">
|
||||
<!ENTITY hsize0space "7.5pt"> <!-- 0.75 * hsize0 -->
|
||||
<!ENTITY hsize1space "9pt"> <!-- 0.75 * hsize1 -->
|
||||
<!ENTITY hsize2space "10.8pt"> <!-- 0.75 * hsize2 -->
|
||||
<!ENTITY hsize3space "12.96pt"> <!-- 0.75 * hsize3 -->
|
||||
<!ENTITY hsize4space "15.552pt"> <!-- 0.75 * hsize4 -->
|
||||
<!ENTITY hsize5space "18.6624pt"> <!-- 0.75 * hsize5 -->
|
||||
]>
|
||||
<t:templates xmlns:t="http://nwalsh.com/docbook/xsl/template/1.0"
|
||||
xmlns:param="http://nwalsh.com/docbook/xsl/template/1.0/param"
|
||||
xmlns:fo="http://www.w3.org/1999/XSL/Format"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
|
||||
<!-- ********************************************************************
|
||||
|
||||
SOGo title page
|
||||
|
||||
This file is part of the SOGo project.
|
||||
Authors:
|
||||
- Inverse inc. <info@inverse.ca>
|
||||
|
||||
Copyright (C) 2011-2014 Inverse inc.
|
||||
License: GFDL 1.2 or later. http://www.gnu.org/licenses/fdl.html
|
||||
|
||||
******************************************************************** -->
|
||||
|
||||
<!--
|
||||
If you make changes you need to rebuild XSL:
|
||||
|
||||
xsltproc -o docs/docbook/xsl/titlepage-fo.xsl \
|
||||
/usr/share/xml/docbook/stylesheet/docbook-xsl/template/titlepage.xsl \
|
||||
docs/docbook/xsl/titlepage-fo.xml
|
||||
|
||||
On some platforms the titlepage.xsl is located elsewhere:
|
||||
* OSX: /opt/local/share/xsl/docbook-xsl/template/titlepage.xsl
|
||||
|
||||
This is a customized version of docbook-xsl/fo/titlepage.templates.xml.
|
||||
I removed every section except the book one. Feel free to add more if more
|
||||
customization are required.
|
||||
-->
|
||||
|
||||
<t:titlepage t:element="book" t:wrapper="fo:block">
|
||||
<t:titlepage-content t:side="recto">
|
||||
<mediaobject/>
|
||||
<title
|
||||
t:named-template="division.title"
|
||||
param:node="ancestor-or-self::book[1]"
|
||||
text-align="right"
|
||||
font-size="&hsize5;"
|
||||
space-before="&hsize5space;"
|
||||
font-weight="bold"
|
||||
font-family="{$title.fontset}"
|
||||
margin-top="8em"/>
|
||||
<subtitle
|
||||
text-align="right"
|
||||
font-size="&hsize4;"
|
||||
space-before="&hsize4space;"
|
||||
font-family="{$title.fontset}"
|
||||
border-bottom="solid"/>
|
||||
</t:titlepage-content>
|
||||
|
||||
<t:titlepage-content t:side="verso">
|
||||
<title
|
||||
font-size="&hsize2;"
|
||||
font-weight="bold"
|
||||
font-family="{$title.fontset}"/>
|
||||
<corpauthor/>
|
||||
<authorgroup t:named-template="verso.authorgroup"/>
|
||||
<author/>
|
||||
<othercredit/>
|
||||
<releaseinfo space-before="0.5em"/>
|
||||
<pubdate space-before="1em"/>
|
||||
<copyright/>
|
||||
<abstract/>
|
||||
<legalnotice font-size="8pt"/>
|
||||
</t:titlepage-content>
|
||||
|
||||
<t:titlepage-separator>
|
||||
<fo:block break-after="page"/>
|
||||
</t:titlepage-separator>
|
||||
|
||||
<t:titlepage-before t:side="recto">
|
||||
</t:titlepage-before>
|
||||
|
||||
<t:titlepage-before t:side="verso">
|
||||
<fo:block break-after="page"/>
|
||||
</t:titlepage-before>
|
||||
</t:titlepage>
|
||||
|
||||
</t:templates>
|
||||
@@ -0,0 +1,208 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" version="1.0" exclude-result-prefixes="exsl">
|
||||
|
||||
<!-- This stylesheet was created by template/titlepage.xsl-->
|
||||
|
||||
<xsl:template name="book.titlepage.recto">
|
||||
<xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/mediaobject"/>
|
||||
<xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/mediaobject"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="bookinfo/title">
|
||||
<xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/title"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="info/title">
|
||||
<xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/title"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="title">
|
||||
<xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="title"/>
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
|
||||
<xsl:choose>
|
||||
<xsl:when test="bookinfo/subtitle">
|
||||
<xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="bookinfo/subtitle"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="info/subtitle">
|
||||
<xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="info/subtitle"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="subtitle">
|
||||
<xsl:apply-templates mode="book.titlepage.recto.auto.mode" select="subtitle"/>
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="book.titlepage.verso">
|
||||
<xsl:choose>
|
||||
<xsl:when test="bookinfo/title">
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/title"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="info/title">
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="info/title"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="title">
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="title"/>
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/corpauthor"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="info/corpauthor"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/authorgroup"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="info/authorgroup"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/author"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="info/author"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/othercredit"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="info/othercredit"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/releaseinfo"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="info/releaseinfo"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/pubdate"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="info/pubdate"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/copyright"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="info/copyright"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/abstract"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="info/abstract"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/legalnotice"/>
|
||||
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="info/legalnotice"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="book.titlepage.separator"><fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" break-after="page"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="book.titlepage.before.recto">
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="book.titlepage.before.verso"><fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" break-after="page"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="book.titlepage">
|
||||
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
|
||||
<xsl:variable name="recto.content">
|
||||
<xsl:call-template name="book.titlepage.before.recto"/>
|
||||
<xsl:call-template name="book.titlepage.recto"/>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="recto.elements.count">
|
||||
<xsl:choose>
|
||||
<xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
|
||||
<xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
|
||||
<!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($recto.content)/*)"/></xsl:when>
|
||||
<xsl:otherwise>1</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:if test="(normalize-space($recto.content) != '') or ($recto.elements.count > 0)">
|
||||
<fo:block><xsl:copy-of select="$recto.content"/></fo:block>
|
||||
</xsl:if>
|
||||
<xsl:variable name="verso.content">
|
||||
<xsl:call-template name="book.titlepage.before.verso"/>
|
||||
<xsl:call-template name="book.titlepage.verso"/>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="verso.elements.count">
|
||||
<xsl:choose>
|
||||
<xsl:when test="function-available('exsl:node-set')"><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
|
||||
<xsl:when test="contains(system-property('xsl:vendor'), 'Apache Software Foundation')">
|
||||
<!--Xalan quirk--><xsl:value-of select="count(exsl:node-set($verso.content)/*)"/></xsl:when>
|
||||
<xsl:otherwise>1</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:if test="(normalize-space($verso.content) != '') or ($verso.elements.count > 0)">
|
||||
<fo:block><xsl:copy-of select="$verso.content"/></fo:block>
|
||||
</xsl:if>
|
||||
<xsl:call-template name="book.titlepage.separator"/>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="*" mode="book.titlepage.recto.mode">
|
||||
<!-- if an element isn't found in this mode, -->
|
||||
<!-- try the generic titlepage.mode -->
|
||||
<xsl:apply-templates select="." mode="titlepage.mode"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="*" mode="book.titlepage.verso.mode">
|
||||
<!-- if an element isn't found in this mode, -->
|
||||
<!-- try the generic titlepage.mode -->
|
||||
<xsl:apply-templates select="." mode="titlepage.mode"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="mediaobject" mode="book.titlepage.recto.auto.mode">
|
||||
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.recto.style">
|
||||
<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="title" mode="book.titlepage.recto.auto.mode">
|
||||
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.recto.style" text-align="right" font-size="24.8832pt" space-before="18.6624pt" font-weight="bold" font-family="{$title.fontset}" margin-top="8em">
|
||||
<xsl:call-template name="division.title">
|
||||
<xsl:with-param name="node" select="ancestor-or-self::book[1]"/>
|
||||
</xsl:call-template>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="subtitle" mode="book.titlepage.recto.auto.mode">
|
||||
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.recto.style" text-align="right" font-size="20.736pt" space-before="15.552pt" font-family="{$title.fontset}" border-bottom="solid">
|
||||
<xsl:apply-templates select="." mode="book.titlepage.recto.mode"/>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="title" mode="book.titlepage.verso.auto.mode">
|
||||
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style" font-size="14.4pt" font-weight="bold" font-family="{$title.fontset}">
|
||||
<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="corpauthor" mode="book.titlepage.verso.auto.mode">
|
||||
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style">
|
||||
<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="authorgroup" mode="book.titlepage.verso.auto.mode">
|
||||
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style">
|
||||
<xsl:call-template name="verso.authorgroup">
|
||||
</xsl:call-template>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="author" mode="book.titlepage.verso.auto.mode">
|
||||
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style">
|
||||
<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="othercredit" mode="book.titlepage.verso.auto.mode">
|
||||
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style">
|
||||
<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="releaseinfo" mode="book.titlepage.verso.auto.mode">
|
||||
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style" space-before="0.5em">
|
||||
<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="pubdate" mode="book.titlepage.verso.auto.mode">
|
||||
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style" space-before="1em">
|
||||
<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="copyright" mode="book.titlepage.verso.auto.mode">
|
||||
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style">
|
||||
<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="abstract" mode="book.titlepage.verso.auto.mode">
|
||||
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style">
|
||||
<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="legalnotice" mode="book.titlepage.verso.auto.mode">
|
||||
<fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" xsl:use-attribute-sets="book.titlepage.verso.style" font-size="8pt">
|
||||
<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/>
|
||||
</fo:block>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
<!-- TODO have the build system take care of this -->
|
||||
<releaseinfo>Version 2.2.8 - September 2014</releaseinfo>
|
||||
<subtitle>for version 2.2.8</subtitle>
|
||||
<date>2014-09-14</date>
|
||||
|
||||
<legalnotice>
|
||||
<para>Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".</para>
|
||||
|
||||
<!-- font licenses -->
|
||||
<para>The fonts used in this guide are licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: <ulink url="http://scripts.sil.org/OFL">http://scripts.sil.org/OFL</ulink></para>
|
||||
<para>Copyright © Barry Schwartz, <ulink url="http://www.crudfactory.com">http://www.crudfactory.com</ulink>, with Reserved Font Name: "Sorts Mill Goudy".</para>
|
||||
<para>Copyright © Raph Levien, <ulink url="http://levien.com/">http://levien.com/</ulink>, with Reserved Font Name: "Inconsolata".</para>
|
||||
</legalnotice>
|
||||
<mediaobject>
|
||||
<objectinfo>
|
||||
<corpname>Inverse inc.</corpname>
|
||||
</objectinfo>
|
||||
<textobject>
|
||||
<phrase>SOGo logo</phrase>
|
||||
</textobject>
|
||||
<imageobject>
|
||||
<imagedata align="left" width="4in" format="PNG" fileref="images/sogo-logo.png" />
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><font-metrics metrics-version="2" type="TYPE0"><font-name>Delicious-Roman</font-name><full-name>Delicious-Roman</full-name><family-name>Delicious</family-name><embed/><cap-height>630</cap-height><x-height>490</x-height><ascender>694</ascender><descender>-176</descender><bbox><left>-73</left><bottom>-210</bottom><right>958</right><top>890</top></bbox><flags>33</flags><stemv>0</stemv><italicangle>0</italicangle><subtype>TYPE0</subtype><multibyte-extras><cid-type>CIDFontType2</cid-type><default-width>0</default-width><bfranges><bf gi="3" ue="126" us="32"/><bf gi="98" ue="165" us="160"/><bf gi="104" ue="172" us="167"/><bf gi="110" ue="177" us="174"/><bf gi="114" ue="184" us="180"/><bf gi="119" ue="187" us="186"/><bf gi="121" ue="207" us="191"/><bf gi="138" ue="214" us="209"/><bf gi="144" ue="220" us="216"/><bf gi="149" ue="239" us="223"/><bf gi="166" ue="252" us="241"/><bf gi="178" ue="255" us="255"/><bf gi="179" ue="305" us="305"/><bf gi="180" ue="339" us="338"/><bf gi="182" ue="376" us="376"/><bf gi="183" ue="402" us="402"/><bf gi="184" ue="711" us="710"/><bf gi="186" ue="733" us="728"/><bf gi="192" ue="916" us="916"/><bf gi="193" ue="937" us="937"/><bf gi="194" ue="960" us="960"/><bf gi="195" ue="8212" us="8211"/><bf gi="197" ue="8218" us="8216"/><bf gi="200" ue="8222" us="8220"/><bf gi="203" ue="8226" us="8224"/><bf gi="206" ue="8230" us="8230"/><bf gi="207" ue="8240" us="8240"/><bf gi="208" ue="8250" us="8249"/><bf gi="210" ue="8260" us="8260"/><bf gi="211" ue="8482" us="8482"/><bf gi="212" ue="8706" us="8706"/><bf gi="213" ue="8719" us="8719"/><bf gi="214" ue="8721" us="8721"/><bf gi="215" ue="8730" us="8730"/><bf gi="216" ue="8734" us="8734"/><bf gi="217" ue="8747" us="8747"/><bf gi="218" ue="8776" us="8776"/><bf gi="219" ue="8800" us="8800"/><bf gi="220" ue="8805" us="8804"/><bf gi="222" ue="9674" us="9674"/><bf gi="223" ue="64258" us="64257"/><bf gi="0" ue="65535" us="65535"/></bfranges><cid-widths start-index="0"><wx w="1000"/><wx w="0"/><wx w="333"/><wx w="300"/><wx w="264"/><wx w="346"/><wx w="556"/><wx w="445"/><wx w="699"/><wx w="630"/><wx w="208"/><wx w="336"/><wx w="339"/><wx w="424"/><wx w="471"/><wx w="258"/><wx w="302"/><wx w="258"/><wx w="356"/><wx w="450"/><wx w="450"/><wx w="450"/><wx w="450"/><wx w="450"/><wx w="450"/><wx w="450"/><wx w="450"/><wx w="450"/><wx w="450"/><wx w="258"/><wx w="258"/><wx w="300"/><wx w="480"/><wx w="300"/><wx w="358"/><wx w="792"/><wx w="510"/><wx w="502"/><wx w="497"/><wx w="547"/><wx w="454"/><wx w="412"/><wx w="524"/><wx w="548"/><wx w="238"/><wx w="245"/><wx w="485"/><wx w="382"/><wx w="742"/><wx w="554"/><wx w="548"/><wx w="489"/><wx w="548"/><wx w="505"/><wx w="434"/><wx w="405"/><wx w="558"/><wx w="510"/><wx w="708"/><wx w="492"/><wx w="471"/><wx w="458"/><wx w="248"/><wx w="335"/><wx w="249"/><wx w="624"/><wx w="450"/><wx w="338"/><wx w="466"/><wx w="503"/><wx w="412"/><wx w="512"/><wx w="471"/><wx w="286"/><wx w="455"/><wx w="519"/><wx w="238"/><wx w="238"/><wx w="471"/><wx w="236"/><wx w="771"/><wx w="519"/><wx w="488"/><wx w="516"/><wx w="516"/><wx w="319"/><wx w="420"/><wx w="306"/><wx w="519"/><wx w="452"/><wx w="670"/><wx w="424"/><wx w="454"/><wx w="426"/><wx w="333"/><wx w="222"/><wx w="333"/><wx w="666"/><wx w="225"/><wx w="264"/><wx w="412"/><wx w="442"/><wx w="542"/><wx w="476"/><wx w="420"/><wx w="384"/><wx w="879"/><wx w="420"/><wx w="500"/><wx w="535"/><wx w="879"/><wx w="335"/><wx w="352"/><wx w="447"/><wx w="338"/><wx w="519"/><wx w="543"/><wx w="258"/><wx w="402"/><wx w="412"/><wx w="500"/><wx w="358"/><wx w="510"/><wx w="510"/><wx w="510"/><wx w="510"/><wx w="510"/><wx w="510"/><wx w="726"/><wx w="497"/><wx w="454"/><wx w="454"/><wx w="454"/><wx w="454"/><wx w="238"/><wx w="238"/><wx w="238"/><wx w="238"/><wx w="554"/><wx w="548"/><wx w="548"/><wx w="548"/><wx w="548"/><wx w="548"/><wx w="548"/><wx w="558"/><wx w="558"/><wx w="558"/><wx w="550"/><wx w="572"/><wx w="466"/><wx w="466"/><wx w="466"/><wx w="466"/><wx w="466"/><wx w="466"/><wx w="725"/><wx w="412"/><wx w="471"/><wx w="471"/><wx w="471"/><wx w="471"/><wx w="238"/><wx w="238"/><wx w="238"/><wx w="238"/><wx w="519"/><wx w="488"/><wx w="488"/><wx w="488"/><wx w="488"/><wx w="488"/><wx w="489"/><wx w="488"/><wx w="517"/><wx w="517"/><wx w="517"/><wx w="517"/><wx w="454"/><wx w="238"/><wx w="638"/><wx w="761"/><wx w="471"/><wx w="384"/><wx w="402"/><wx w="402"/><wx w="402"/><wx w="186"/><wx w="520"/><wx w="276"/><wx w="380"/><wx w="585"/><wx w="669"/><wx w="368"/><wx w="424"/><wx w="358"/><wx w="608"/><wx w="267"/><wx w="270"/><wx w="258"/><wx w="446"/><wx w="446"/><wx w="434"/><wx w="418"/><wx w="418"/><wx w="424"/><wx w="604"/><wx w="1005"/><wx w="300"/><wx w="300"/><wx w="339"/><wx w="802"/><wx w="12"/><wx w="424"/><wx w="474"/><wx w="225"/><wx w="619"/><wx w="330"/><wx w="669"/><wx w="480"/><wx w="225"/><wx w="225"/><wx w="476"/><wx w="522"/><wx w="522"/></cid-widths></multibyte-extras></font-metrics>
|
||||
@@ -0,0 +1,23 @@
|
||||
<fop version="1.0">
|
||||
<renderers>
|
||||
<renderer mime="application/pdf">
|
||||
<fonts>
|
||||
<font metrics-url="fonts/inconsolata.xml" kerning="yes" embed-url="fonts/inconsolata.ttf">
|
||||
<font-triplet name="Incosolata" style="normal" weight="normal"/>
|
||||
</font>
|
||||
<font metrics-url="fonts/oflgoudystm.xml" kerning="yes" embed-url="fonts/oflgoudystm.ttf">
|
||||
<font-triplet name="Sorts Mill Goudy" style="normal" weight="normal"/>
|
||||
</font>
|
||||
<font metrics-url="fonts/oflgoudystmitalic.xml" kerning="yes" embed-url="fonts/oflgoudystmitalic.ttf">
|
||||
<font-triplet name="Sorts Mill Goudy" style="italic" weight="normal"/>
|
||||
</font>
|
||||
<font metrics-url="fonts/deliciousroman.xml" kerning="yes" embed-url="fonts/deliciousroman.ttf">
|
||||
<font-triplet name="Delicious" style="normal" weight="normal"/>
|
||||
</font>
|
||||
<font metrics-url="fonts/deliciousitalic.xml" kerning="yes" embed-url="fonts/deliciousitalic.ttf">
|
||||
<font-triplet name="Delicious" style="italic" weight="normal"/>
|
||||
</font>
|
||||
</fonts>
|
||||
</renderer>
|
||||
</renderers>
|
||||
</fop>
|
||||
|
Before Width: | Height: | Size: 401 KiB After Width: | Height: | Size: 401 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 311 KiB After Width: | Height: | Size: 311 KiB |
|
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 104 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
@@ -0,0 +1,27 @@
|
||||
////
|
||||
|
||||
Additional information section
|
||||
|
||||
This file is part of the SOGo project.
|
||||
Authors:
|
||||
- Inverse inc. <info@inverse.ca>
|
||||
|
||||
Copyright (C) 2008-2014 Inverse inc.
|
||||
License: GFDL 1.2 or later. http://www.gnu.org/licenses/fdl.html
|
||||
|
||||
////
|
||||
|
||||
Additional Information
|
||||
----------------------
|
||||
|
||||
For more information, please consult the online FAQs (Frequently Asked
|
||||
Questions) :
|
||||
|
||||
http://www.sogo.nu/english/support/faq.html
|
||||
|
||||
You can also read the mailing archives or post your questions to it. For
|
||||
details, see :
|
||||
|
||||
https://lists.inverse.ca/sogo
|
||||
|
||||
// vim: set syntax=asciidoc tabstop=2 shiftwidth=2 expandtab:
|
||||
@@ -0,0 +1,26 @@
|
||||
////
|
||||
|
||||
Commercial support section
|
||||
|
||||
This file is part of the SOGo project.
|
||||
Authors:
|
||||
- Inverse inc. <info@inverse.ca>
|
||||
|
||||
Copyright (C) 2008-2014 Inverse inc.
|
||||
License: GFDL 1.2 or later. http://www.gnu.org/licenses/fdl.html
|
||||
|
||||
////
|
||||
|
||||
Commercial Support and Contact Information
|
||||
------------------------------------------
|
||||
|
||||
For any questions or comments, do not hesitate to contact us by writing
|
||||
an email to :
|
||||
|
||||
mailto:support@inverse.ca
|
||||
|
||||
Inverse (http://inverse.ca/[http://inverse.ca]) offers professional
|
||||
services around SOGo to help organizations deploy the solution and
|
||||
migrate from their legacy systems.
|
||||
|
||||
// vim: set syntax=asciidoc tabstop=2 shiftwidth=2 expandtab:
|
||||
@@ -0,0 +1,18 @@
|
||||
////
|
||||
|
||||
Global Attributes for our documentation
|
||||
|
||||
This file is part of the SOGo project.
|
||||
Authors:
|
||||
- Inverse inc. <info@inverse.ca>
|
||||
|
||||
Copyright (C) 2008-2014 Inverse inc.
|
||||
License: GFDL 1.2 or later. http://www.gnu.org/licenses/fdl.html
|
||||
|
||||
////
|
||||
|
||||
// TODO have the build system take care of this
|
||||
|
||||
:release_version: 2.2.8
|
||||
|
||||
// vim: set syntax=asciidoc tabstop=2 shiftwidth=2 expandtab:
|
||||
@@ -0,0 +1,19 @@
|
||||
////
|
||||
|
||||
License section
|
||||
|
||||
This file is part of the SOGo project.
|
||||
Authors:
|
||||
- Inverse inc. <info@inverse.ca>
|
||||
|
||||
Copyright (C) 2008-2014 Inverse inc.
|
||||
License: GFDL 1.2 or later. http://www.gnu.org/licenses/fdl.html
|
||||
|
||||
////
|
||||
|
||||
GNU Free Documentation License
|
||||
------------------------------
|
||||
|
||||
Please refer to http://www.gnu.org/licenses/fdl-1.2.txt for the full license.
|
||||
|
||||
// vim: set syntax=asciidoc tabstop=2 shiftwidth=2 expandtab:
|
||||
|
Before Width: | Height: | Size: 55 KiB |