- 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
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
- 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
- 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';
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
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
.
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
- Apache (apache2)
- Python WSGI adapter module for Apache (libapache2-mod-wsgi)
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)
- 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
- Find your local TeX tree with
kpsewhich -var-value TEXMFLOCAL
- Get ucharclasses.sty from CTAN
- Install it in your local TeX tree,
/usr/local/share/texmf/tex/ucharclasses
for example - Update the installation with
sudo mktexlsr /usr/local/share/texmf
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
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
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
ormysql
- 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
anddtbook_hyphenator
. So ifdtbook2sbsform
is installed in/opt/dtbook2sbsform
then setEXTERNAL_PATH
toos.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
You will have to migrate the database:
./manage.py migrate
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.
- Import and update new productions from ABACUS
importABACUS.py
- When importing a new production syncronize the content with the content in the archive
- done in
importABACUS.py
- Daisyproducer used to check out documents under certain circumstances. However this functionality has been retired.
- ebooks are copied to
/var/spool/daisyproducer
- 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.