Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
C C++ Lua
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
src
.gitignore
README
config.mk
makefile
rules.mk

README

Dietetic Ginga.ar
-----------------

This is a patched version of Ginga.ar. Currently, the main goals of this project are:

* Strip the CMake build system and replace by plain GNU makefiles.
* Strip Boost library dependency, and replace its functionality by POSIX interfaces.

If you are wondering why anyone would do this
---------------------------------------------

There is nothing wrong with CMake or Boost, they are both great, widely used tools.
However, for embedded platforms it may be of interest to tweak the building process,
changing compile and linker flags, using specific headers and/or linking to specifically 
located libraries. For this, it may be easier to use makefiles.

As for the Boost removal, it simply obeys a matter of size reduction, as Boost libraries
are not small and its funcionality can be achieved by standard Posix interfaces.
This can be compared to Busybox vs. GNU (Busybox replaces standard tools) or
ulibc vs glibc (ulibc is a reduced version of glibc aimed at embedded platforms).

In the end, this is just my own experiment. If you want to report any bugs,
place an issue on github, send me patch or a pull request.

UPDATE: 
Since v1.2.0 boost removal is no longer an important issue. 
The reason is that Ginga no longer depends on boost_serialization,
a large boost component. The remaining Boost dependences are 
not large enough to matter.

Dependencies
------------

* DirectFB 1.4.x
* Boost: system, thread, filesystem
* png, jpeg, tiff, gif libraries
* lua 5.1
* xerces-c (for XML parsing)
* ssl
* curl

Installation
------------

Once you execute 'make' the whole ginga middleware is installed inside build/
directory. There you'll find three different kind of stuff:

* headers inside (build/include/)
* static libraries (build/lib/)
* Ginga binary executable (build/bin/)
* config and data files

The first two, headers and static libs, are only required for development, 
not to run Ginga. So, you won't need this unless you need to link against 
some internal (static) library.

The last two are required if you want to run Ginga, and if you
don't want to run it, why are you wasting your time reading this?

Configuration files
-------------------

The Ginga binary requires config and data files. These are located
under directories according to their subsystem (system, ncl, etc).

So to run Ginga correctly you will have to copy them to a suitable
location. This location is configurable with PREFIX_PATH make variable
in config.mk.

The default value is /home/zeta/ginga. So you'll have to copy files
to this directory. They should look like this:

/home/zeta/ginga/
|-- contextmanager
|-- ncl
|   `-- config
|-- ncl-presenter
|   |-- config
|   |-- epgFactory
|   `-- img
|-- player
|   |-- fonts
|   |-- images
|   `-- scripts
`-- system
    `-- config

When running Ginga if you find any of these messages (or similar)
then you should check you've install these files properly:

  can't open input file:/home/zeta/ginga/system/config/input.cfg
  can't open mimedefs.ini
  can't open config file '/home/zeta/ginga/contextmanager/users.ini'
  can't open cfg file '/home/zeta/ginga/contextmanager/contexts.ini'

Scripts files
-------------

Some Ginga NCL applications also require a few Lua scripts.
They are installed inside build/player/scripts.
There are two ways of handling this:

  1. You can copy them to Lua predefined paths, 
     so Lua can find them. This paths are usually,
     /usr/local/share/lua/5.1/ or usr/share/lua/5.1/.

  2. You can define LUA_PATH in your environment
     (.bashrc, bash_profile, etc) so it looks like this:
     LUA_PATH="$LUA_PATH;/home/zeta/ginga/player/scripts/?.lua;"

If you find a message like:

  PANIC: unprotected error in call to Lua API (module 'tcp_event' not found:

then probably you haven't installed this files properly.

Bloat-o-meter
-------------

For x86 the resulting Ginga executable is 4.8 MB.
The rest of the distributable config/resource files total < 1 MB.

Authors
-------

The Ginga project was originally developed by Telemidia Laboratory at PUC-RIO. 
Further development was carried by LIFIA at UNLP, you can get the original 
Ginga.ar source from here:

http://comunidad.ginga.org.ar/
http://tvd.lifia.info.unlp.edu.ar/ginga.ar/

This project is based in Ginga.ar version 1.2.0.

License
-------

Copyright: 1989-2007 PUC-RIO/LABORATORIO TELEMIDIA, All Rights Reserved.
Copyright: 2010 LIFIA - Facultad de Informatica - Univ. Nacional de La Plata

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License version 2 as published by
the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.  See the GNU General Public License version 2 for more
details.

You should have received a copy of the GNU General Public License version 2
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA

For further information contact:
ncl @ telemidia.puc-rio.br
http://www.ncl.org.br
http://www.ginga.org.br
http://www.telemidia.puc-rio.br
Something went wrong with that request. Please try again.