Skip to content

Latest commit

 

History

History
343 lines (271 loc) · 11.5 KB

INSTALL.org

File metadata and controls

343 lines (271 loc) · 11.5 KB

Daisy Producer INSTALL

Requirements

Basic requirements

  • Python (you need at least Python 2.6.2)
  • Django
  • lxml
  • pyPDF (used for large print volume size calculation)
  • python-stdnum (for isbn validation)
  • Daisy Pipeline (use the Pipeline Core Packages)
  • XeTex (to generate Large Print from LaTeX)
  • texlive (should contain the extbook and titlesec class which is needed for Large Print)
  • latexmk (automates the process of compiling a LaTeX document)
  • Tiresias LP font (a font designed for Large Print publications)
  • Java Runtime (Daisy Pipeline needs at least Java 5)
  • liblouis You need to install both liblouis, liblouixml and the python bindings.
  • A database for example PostgreSQL or MySQL.
  • A Python database interface like psycopg2 or mysqldb for example.
  • docutils to render the help page (which is written in reStructuredText Markup).
  • Jing for schema validation

Required packages

Basics

In terms of (Debian/Ubuntu) packages this translates to

  • python
  • python-django
  • python-lxml
  • python-docutils
  • python-libxml2
  • python-libxslt1
  • python-pypdf
  • python-requests
  • python-stdnum
  • sun-java6-jre
  • texlive-xetex
  • texlive-latex-extra
  • texlive-lang-german
  • latexmk
  • ttf-tiresias
  • libsaxonhe-java
  • jing

Install the basic packages:

sudo aptitude install python python-django python-lxml        \
python-docutils python-libxml2 python-libxslt1 python-pypdf   \
python-stdnum sun-java6-jre texlive-xetex texlive-latex-extra \
texlive-latex-recommended texlive-lang-german latexmk         \
ttf-tiresias lmodern libsaxonhe-java unzip jing

Database

For PostgreSQL

  • postgresql
  • postgresql-client
  • python-psycopg2

Install PostgreSQL:

sudo aptitude install postgresql postgresql-client python-psycopg2

Set up a database, a user and a database:

sudo -u postgres sh
createuser -DRSP daisyproducer
# enter the password "sekret" at the prompt
createdb -O daisyproducer daisyproducer_prod
# adapt pg_hba so that the user daisyproducer can log in with a password

For MySQL

  • mysql-server
  • mysql-client
  • python-mysqldb
sudo aptitude install mysql-server mysql-client python-mysqldb

Again, set up a database, a user and a database:

mysql --user=root
CREATE DATABASE daisyproducer_prod;
CREATE USER 'daisyproducer'@'localhost' IDENTIFIED BY 'sekret';
GRANT ALL ON daisyproducer_prod.* TO 'daisyproducer'@'localhost';

Liblouis

There is a Debian package for liblouis which can be used. If you want the newest liblouis I would recommend to install it from source as follows:

# install liblouis dependencies
sudo aptitude install pkg-config libxml2-dev
# first install liblouis
wget http://www.liblouis.org/downloads/liblouis-2.5.4.tar.gz
tar xzf liblouis-2.5.4.tar.gz
cd liblouis-2.5.4
./configure --enable-ucs4
make
sudo make install
# also install the python bindings
cd python
sudo python setup.py install
# now install liblouisxml
cd
wget http://code.google.com/p/liblouisutdml/downloads/detail?name=liblouisutdml-2.5.0.tar.gz
tar xzf liblouisutdml-2.5.0.tar.gz
cd liblouisutdml-2.5.0
./configure
make
sudo make install
sudo ldconfig

Daisy Pipeline

The Daisy Pipeline has not been packaged so far and will have to be installed somewhere:

cd /opt
sudo wget http://downloads.sourceforge.net/project/daisymfc/pipeline/pipeline-20110317-RC/pipeline-20110317-RC.zip
sudo unzip pipeline-20110317-RC.zip
sudo chmod a+x pipeline-20110317/pipeline.sh

The Daisy Pipeline has some dependencies as well, namely lame and espeak:

sudo aptitude install espeak espeak-data
# on Debian you might have to enable the http://debian-multimedia.org/ repository
sudo aptitude install lame

Then configure the path to lame in /opt/pipeline-20090410/pipeline.user.properties and set it to /usr/bin/lame.

Large print

In case you are using the tiresias font but want to enable font substitutions, i.e. replace glyphs missing from that font with glyphs from another font, you probably want to install the arial font.

sudo aptitude install ttf-mscorefonts-installer

Deployment requirements

Install Apache and WSGI:

sudo aptitude install apache2 libapache2-mod-wsgi

Enable wsgi for Apache by using a config file in /etc/apache2/sites-available along the lines of the one given in the apache subdirectory (see also Apache config file example)

Optional requirements

autodoc
(package postgresql-autodoc) if you want to generate the ER diagrams. Note however that autodoc only works if you are sing PostgreSQL as a database.
python-yaml
When running the tests (make check), fixtures will be loaded using yaml.
sqlite
To run the tests you need to have SQLite installed.
sudo aptitude install python-yaml postgresql-autodoc python-pysqlite2 sqlite3
libhyphen
If you want automatically hyphenated Braille you will need to install the hyphenation files from openoffice, the hyphen library and the java bindings to said library
sudo aptitude install openoffice.org-hyphenation-de
ucharclasses
If you want your LaTeX to be able to handle any unicode font then you will need to install the ucharclasses package
  1. Find your local TeX tree with kpsewhich -var-value TEXMFLOCAL
  2. Get ucharclasses.sty from CTAN
  3. Install it in your local TeX tree, /usr/local/share/texmf/tex/ucharclasses for example
  4. Update the installation with sudo mktexlsr /usr/local/share/texmf

Requirements for abacus_import app

The abacus_import app needs a few additional packages to be able to communicate with Alfresco.

cmislib
Provides a CMIS client library for Python that can be used to work with CMIS-compliant repositories such as Alfresco.
httplib2
A comprehensive HTTP client library in Python
sudo aptitude install python-httplib2
sudo aptitude install python-setuptools
sudo easy_install cmislib

Installation

There is currently no released version of Daisy Producer, so you can get it directly from the source code repository:

sudo mkdir /srv/demo.daisyproducer.org
sudo chown dpadmin:dpadmin /srv/demo.daisyproducer.org/
cd /srv/demo.daisyproducer.org
sudo aptitude install git-core autoconf automake
git clone git://github.com/sbsdev/daisyproducer.git daisyproducer
cd daisyproducer
autoreconf -vfi
./configure

Configuration

You need to adapt the settings to your environment:

cd /srv/demo.daisyproducer.org/daisyproducer
emacs settings.py

The following settings have to be adapted for your site:

DATABASE_ENGINE
Needs to be either postgresql_psycopg2 or mysql
DATABASE_NAME
set to daisyproducer_prod
DATABASE_USER
set to daisyproducer
DATABASE_PASSWORD
set to sekret
DAISY_DEFAULT_PUBLISHER
set to the name of your organization
DAISY_PIPELINE_PATH
set to os.path.join('/', 'path', 'to', 'pipeline-20100125')
EXTERNAL_PATH
This is where external utilities (which should eventually end up in the DAISY Pipeline) are located. These tools include dtbook2sbsform and dtbook_hyphenator. So if dtbook2sbsform is installed in /opt/dtbook2sbsform then set EXTERNAL_PATH to os.path.join('/', 'opt').
SECRET_KEY
TIME_ZONE
SERVE_STATIC_FILES
set to False

For the archive create a directory named archive under the daisyproducer directory and give www-data write access to it:

mkdir archive
sudo chown www-data archive

Set up the initial database tables:

python manage migrate

Upgrading from an older installation

You will have to migrate the database:

./manage.py migrate

Application setup

Once the application is installed you will need to configure the workflow, the users and the groups. Daisy Producer comes with a default workflow, default groups and a demo user (password “demo”) that you can use to get started. You are of course free to define your own workflow, users and groups.

Once you are familiar with the concepts you can use the admin interface to define states and transitions between them.

After you’ve defined the states and the transitions you will have to create groups and define which group is responsible for which state. Only members of a group that is responsible for a state will see pending jobs in that particular state.

Lastly you will have to assign your users to particular groups to make sure they see the pending jobs that they are responsible for.

You will also to have to give permission to add documents to some users. This will allow these dedicated users to create new documents that will have to worked on. Use the admin interface to either assign the permission directly to the user or create a specific group (say “Managers”) which has the permission to add documents and assign users to this group. The demo user has permission to add documents.

Interfaces

From ABACUS

  • Import and update new productions from ABACUS
  • importABACUS.py

From Alfresco

  • When importing a new production syncronize the content with the content in the archive
  • done in importABACUS.py

To Alfresco

  • Daisyproducer used to check out documents under certain circumstances. However this functionality has been retired.

To online

  • ebooks are copied to /var/spool/daisyproducer

Braille translation White lists

  • There is a cron job to export the white list data from the db to a Braille table so that it can be consumed by liblouis.