The DaisyDuck project concerns two different projects. The graphical interface (DaisyDuck) is separated of the Daisy files parser (libduck). DaisyDuck is written in C++ whereas libduck is written in C.
DaisyDuck is based on the Qt libraries. Excepted for the audio playback which is done by libVLC, and the handling of the Daisy 2.02 files, which is done by libduck. This software is under the GPL3+ license.
The parsing of Daisy 2.02 files, NCC and SMIL is fully done by
libduck. This library is under the LGPL2.1+ license. Although all
Daisy 2.02 files should be readable, all parts of the specifications
are not supported. This library was written mainly for the graphical
DaisyDuck application. So, the particularities like the XHTML files
support (tag <text> in the SMIL files) are just ignored.
Even for a part of the metadata provided by the Daisy 2.02 files. Only
the fields used by DaisyDuck (in principle) are getable with the
public API of the library. Note that it is easy to add more metadata,
if necessary. The parsing is done with the help of libxml2.
The work on libduck is inspired by the libdaisy library of "The DaisyPlayer Project".
The sources are available online with the help of Git, a distributed revision control system, similar in purpose to tools such as Hg, CVS, SCCS, SVN and Arch. It is used to keep track of the changes made in the sources and to help programmers combine and otherwise manipulate changes made by multiple people or at different times.
There are currently two ways of accessing to the Git tree. Via the command line or (to just have a look to some changes on a specific file, for example) via the web interface with your Internet browser.
In order to access to Git via command line, do the following (be sure that you have installed the git package).
git clone https://github.com/Skywalker13/libduck.git
git clone https://github.com/Skywalker13/DaisyDuck.git
git pull
The compilation of libduck and of DaisyDuck is made with the usual means via the `make` command (as well the building for GNU/Linux as for Windows). Although DaisyDuck is based on Qt4, the Makefiles do not depend of `qmake` and this one must not be used.
./configure make make install
To make a cross-compilation, nothing difficult (example for Windows):
./configure --cross-compile --cross-prefix=i586-mingw32msvc- --prefix=/usr/i586-mingw32msvc make make install
The configure script strongly relies on pkg-config. In the particular
case of Qt4 with DaisyDuck, check that the .pc files for QtCore,
QtGui, QtXml and QtNetwork are available. Otherwise, you must pass all
necessary arguments CXXFLAGS and LDFLAGS or else you must create the
pkg-config files manually.
According to your system settings, it can be necessary to proceed in
this way (and especially in the case of Windows cross-compilation) :
export PKG_CONFIG_PATH=/usr/i586-mingw32msvc/lib/pkgconfig export PKG_CONFIG_LIBDIR=/usr/i586-mingw32msvc/lib ./configure --cross-compile --cross-prefix=i586-mingw32msvc- --prefix=/usr/i586-mingw32msvc make make install
If the configure script fails, look the config.log file which was generated in the root of the sources.
The author of DaisyDuck and of libduck, Mathieu Schroeter, can be contacted by e-mail.