GLOTV installation

Install all the prerequisites:

For the kiosk mode, you'll also want:

Install GLOTV:

  1. Download the tarball: the latest one is glotv2.0a15.tar.bz2.
  2. Unpack the contents in /usr/local. A directory /usr/local/glotvXXX will be created for the files, where XXX is replaced by the version name.
  3. Create a symbolic link /usr/local/glotv to the newly created directory.
  4. Do make in that directory.

Configure GLOTV:

Edit the configuration file /usr/local/glotv/etc/glotv.conf. Fill in your own values for the following:

Alternatively, you can preload the default configuration and then simply add your changes. To do this, replace the contents of glotv.conf with the following line, and then add your changes after it:

do "/usr/local/glotv/etc/glotv.conf.sample";

Filesystem permissions:

The recommended setup is to have a single user (for example "tv") which runs both the server and all localhost clients. The local unix socket /tmp/glotv.sock will automatically have the correct permissions in such a setup.

This user also needs write access to /usr/local/glotv/var (and its subdirectories) in order to manage recording schedules:

chown -R tv /usr/local/glotv/var

If you intend to use the web interface (see below) you also need to enable the web server to run glotvschedule with the permissions of this user. A special setuid wrapper accomplishes that. The following commands give it setuid privileges:

chown tv glotvschedule-wrapper
chmod 4711 glotvschedule-wrapper

And don't forget to ensure that this user has write permission for the spool directory $config{spooldir} where recordings are stored. Also, don't forget to install ~/.twmrc for this user, as described in the prerequisites section.

Start the server:

Start the server on the machine with the video source:

/usr/local/glotv/glotvd &

Start the user interface:

Start the user interface on any machine:

/usr/local/glotv/xglotv --host=HOST:PORT

Omit the --host option to connect to the local unix socket instead (default /tmp/glotv.sock). Or if there is a $config{glotv_server} entry in the client's configuration file, the default will be a TCP connection to that host. The port number is 1150, unless overridden by a command line option or the configuration file.

Kiosk mode:

Add the option --input=lirc to run in kiosk mode with /dev/lircd as the input device. If you don't have a working LIRC remote you can try --input=xboxir instead. This allows an ordinary keyboard to be used instead. Note: you'll have to redefine the mappings of the X11 key codes to use the xboxir feature. It was originally designed for the Xbox DVD remote control with special-purpose mappings. The xboxir mappings are defined in the $config{xboxir_codes} entry in the configuration file.

Warning: in kiosk mode the program will take over the console, and it may not be possible to break out via the keyboard if it hangs. Make sure you have some alternative way to login if that happens.

The kiosk mode is designed for a 720x576 pixel screen. Most of the geometry, colors, fonts, etc, are specified in a Tk resource file called etc/kiosk-720x576.resources (which in turn is named in glotv.conf). But additional adjustments are probably needed if you try to adapt it to a different resolution.

Web interface:

GLOTV has an optional web interface for scheduling recordings. It consists of a single CGI script tv.pl which can be placed anyplace your web server expects to find executable scripts, but the recommended location is /srv/www/cgi-bin/glotv/tv.pl. By putting it in its own subdirectory you can protect it with its own .htaccess file, which can be useful if you want to be able to access the web interface from the Internet.

To enable access control via .htaccess, copy the file sample.htaccess to /srv/www/cgi-bin/glotv/.htaccess and edit until it fits your security requirements. Consult the Apache documentation for detailed information about the options. Note: you will probably need the following, or some variation of it, in your httpd.conf to allow .htaccess rules in the directory where you put the CGI script:

AllowOverride AuthConfig Limit

See the Apache documentation for detailed information about authorization and access control.