ProDiKi Usage Hints


These are simple instructions to get a basic ProDiKi presentation running. Here we cover how to use the sample storyboard to test your system. This is not intended as a comprehensive manual, but as a "quick guide" with basic common procedures and ideas.


Installing and compiling ProDiKi

Please read INSTALL file present at distribution (package or CVS) for complete instructions. This is a (probably successful) quick guide:

  1. Get the sources. It is strongly recommended to get them from CVS (pretty simple instructions provided). If you get the package instead of CVS, uncompress it where you want to build (a temporary place is Ok, usually it is on your home directory). Use something like
    tar zxvf prodiki-dev-0.4-beta.tgz
    (use real package file name). If your tar version can't pipe through gzip, first
    gunzip prodiki-dev-0.4-beta.tgz
    tar xvf prodiki-dev-0.4-beta.tar
  2. Go to prodiki-dev directory
    cd prodiki-dev
    from where you CVS'd (for the first time) or tar'ed.
  3. There's a lot of subdirs. If you have to change standard configuration (for an instance, if you want it to reside on a place other than /usr/local/prodiki), go to makefiles and edit makefile.base to change whatever you think appropiate. If you're not sure about something to change, just don't change it. Usually it is not necessary to change things here, if you're not sure, first try to compile and, if something goes wrong, start changing things...
    By default, compiler options are for a 32bit Pentium4 compatible CPU and to generate a debugging version; to change these settings and succesfully compile code, you may have to change that values. The right place to do that is into do_config script file (located on the source root, i.e. src/do_config). This is true since September 27th, 2006, so if you got your sources from an older package, you may have to edit makefiles/makefile.base instead (look for -march= then).
    Into do_config script, you can choose your CPU type (see proposed examples, or gcc help for -mtune parameter) and also (if available) if you want a 64bit executable, or just plain 32bit. There's no big optimizations at this stage, yet. To compile with optimizations instead of debugging (somewhat twice faster) set dm="0"
    Go to src
    cd src
    directory. Here type
    and wait. For the first time, several links and some files are created, then compilation starts. If all goes right, make will end with no errors. This is how it looks like:
    david@Spock:~/prodiki/prodiki-dev/src$ make
    Generating config.h...
    --Making all in prodikilib--
     [Compiling] dalmem.c with -ggdb -g3 -O0 -Wall -march=pentium4 -m32 -DHAVE_CONFIG_H -D_NOMODS_
     [Compiling] dalnum.c with -ggdb -g3 -O0 -Wall -march=pentium4 -m32 -DHAVE_CONFIG_H -D_NOMODS_
     [Compiling] daltool.c with -ggdb -g3 -O0 -Wall -march=pentium4 -m32 -DHAVE_CONFIG_H -D_NOMODS_
     [Compiling] dallog.c with -ggdb -g3 -O0 -Wall -march=pentium4 -m32 -DHAVE_CONFIG_H -D_NOMODS_
     [Compiling] dalsig.c with -ggdb -g3 -O0 -Wall -march=pentium4 -m32 -DHAVE_CONFIG_H -D_NOMODS_
     [Compiling] dalxml.c with -ggdb -g3 -O0 -Wall -march=pentium4 -m32 -DHAVE_CONFIG_H -D_NOMODS_
     [Compiling] daltxtb.c with -ggdb -g3 -O0 -Wall -march=pentium4 -m32 -DHAVE_CONFIG_H -D_NOMODS_
     [Compiling] dalhttp.c with -ggdb -g3 -O0 -Wall -march=pentium4 -m32 -DHAVE_CONFIG_H -D_NOMODS_
     [Compiling] pdkcfg.c with -ggdb -g3 -O0 -Wall -march=pentium4 -m32 -DHAVE_CONFIG_H -D_NOMODS_
     [Compiling] img_fx.c with -ggdb -g3 -O0 -Wall -march=pentium4 -m32 -DHAVE_CONFIG_H -D_NOMODS_
     [Compiling] img_tr.c with -ggdb -g3 -O0 -Wall -march=pentium4 -m32 -DHAVE_CONFIG_H -D_NOMODS_
     [Compiling] pdk_sb.c with -ggdb -g3 -O0 -Wall -march=pentium4 -m32 -DHAVE_CONFIG_H -D_NOMODS_
     [Compiling] pdk_wi.c with -ggdb -g3 -O0 -Wall -march=pentium4 -m32 -DHAVE_CONFIG_H -D_NOMODS_
                 Note: This was a pseudo-static build (NO valid created)
    --Making all in prodiki--
     [Compiling] prodiki.c with -ggdb -g3 -O0 -Wall -march=pentium4 -m32 -DHAVE_CONFIG_H -D_NOMODS_
    --Making all in prodikiwi--
     [Compiling] prodikiwi.c with -ggdb -g3 -O0 -Wall -march=pentium4 -m32 -DHAVE_CONFIG_H -D_NOMODS_
    --Making all in examples--
  4. To install ProDiKi application, first we have to create installation directories. It is recommended to have a dedicated user and group for the program, so you may try
    groupadd prodiki
    and then
    useradd -g prodiki prodiki
    (default configuration file uses that values for user and group). For development, usually user and group are set to your user and group, so you don't have to sudo to root or to prodiki user every time you install or run it (in that case, just remember to set User and Group in prodiki.cfg to the desired values). As root, do:
    make installdirs
    to get them created, then change their ownership if you decided to install as a dedicated user - with the previous example, this could be
    chown -R prodiki:prodiki /usr/local/prodiki
    Or, maybe easier, as root:
    mkdir /usr/local/prodiki; chown prodiki:prodiki /usr/local/prodiki
    and then, as prodiki user:
    make installdirs
  5. To install applications, docs, etc, do (as dedicated user or root, depending on what you choosed to install and run as) -into src/ directory-:
    make install
    Applications may be compiled and eventually installed specifically from their own directories (see below), if you need them. If not compiling statically, they need main prodiki library to be installed first (as we did a few lines ago), but this is not the case with current development packages nor CVS.
    This is how it looks when you install from base directory (src/):
    --Making install in prodikilib--
    --Making install in prodiki--
     [Linking]   prodiki (Product Display Kiosk)
                 Building a pseudo-static version (for debugging ONLY)
     [Install]   prodiki to /usr/local/prodiki/bin/prodiki
    --Making install in prodikiwi--
     [Linking]   prodikiwi (Product Display Kiosk Web Interface)
                 Building a pseudo-static version (for debugging ONLY)
     [Install]   prodikiwi to /usr/local/prodiki/bin/prodikiwi
    --Making install in examples--
     [Install]   pdk.cfg-sample to /usr/local/prodiki/conf/pdk.cfg-sample
     [Install]   pdk_storyboard.dtd to /usr/local/prodiki/conf/pdk_storyboard.dtd
     [Install]   transp.gif to /usr/local/prodiki/data/htdocs/img/transp.gif
     [Install]   pdk.css to /usr/local/prodiki/data/htdocs/css/pdk.css
     [Install]   story.xml to /usr/local/prodiki/data/story.xml
    --Making install in po--
     [Install]   es_ES.po to /usr/local/prodiki/po/es_ES.po
     [Install]   ca_ES.po to /usr/local/prodiki/po/ca_ES.po
  6. Go to configuration directory (default is /usr/local/prodiki/conf) and edit pdk.cfg-sample to suit your needs. Then rename it as pdk.cfg. Available configuration options are here, usually the example file values are ok for the first time.

Starting Up

Once you have a storyboard file installed (like story.xml that comes with examples), and the referenced images and fonts (try downloading and installing the demo package available with any beta version), you can play a presentation. A command line like this:

/usr/local/prodiki/bin/prodiki -sw 800 -sh 600 -d -b story.xml
will play story.xml file (by default, located at /usr/local/prodiki/data), into a 800x600 window (unless full screen mode is used), and without detatching (not becoming a daemon). For exact parameters and their meanings, refer to prodiki options. On the other hand, a command like:
/usr/local/prodiki/bin/prodikiwi -b story.xml
would run the Web Interface to browse/edit storyboard story.xml in daemon mode (so just after that, you can connect to the ip:port you specified onto the configuration file with any browser). For more options see prodikiwi options, and to specify global/default options, see also config file options.

Installation Troubleshooting

If you found some trouble trying to compile ProDiKi, please refer first to the README file that comes with your distribution or better, from CVS. If anything fails, please provide me some information as what you did and some piece of the result on your console, or at least, the message you get, posting at project's bugtrack (thank you).
You may also try some of the scripts I use to clean the source tree, instead of reinstalling:

Make options

These are the implemented make options for this project: Logo from