Campcaster Debian Packaging

View page as slide show

Robin Gareus

linuxaudio.org
Université Paris

Outline

  • Requirements
  • Paths, Locations & persistent storage
  • Code & Libraries
  • Licensing Issues
  • Patches made for the package
  • proposed future changes

Packaging Requirements

  • Basics
    • install & setup
    • remove & keep data & config
    • purge → remove all
  • Debianized Paths
  • Clean Licenses, as little as possible extra libs
  • maintainable build/patch-system (quilt, git)

Paths

Original campcaster is setup to work from /opt and the source-tree.

  • Campcaster's configure & Makefile do not support DESTDIR.
  • prefix is used to replace paths rather than install-target.

Debianized Paths

Debian requires installation in /usr

  • /usr/lib/campcaster - binary arch depenent files
  • /usr/share/camcaster - arch indep. files (PHP, templates)
  • /var/[lib]/campcaster - data storage and variable files
  • /etc/ - configuration, init-scripts, etc

Campcaster problematic libs

Debian does not (usually) allow external libs to be part of a package.

  • libodbc++
  • xmlrpc++
  • taglib
  • PEAR (security concerns)
  • libserial (avail upstream)
  • embedded Smarty

Licensing

Campcaster mixes serveral licenses:

  • PHP licenses (v2.0, v2.02 & v3.0)
  • GPL v2/v3
  • SSL - incompatible with GPL.
  • test-sounds (was creative-commons)

Packages

Main Target: Ubuntu/Lucid

  • campcaster-libs - customized libs
  • campcaster-data - arch-indep files (PHP, images,..)
  • campcaster-station - executables, server-config
  • campcaster-studio - GUI binaries

Patches

  • add debian/ - various scripts & man-pages
  • use apache Alias instead of symlink in /var/www
  • Change (hardcoded) paths in shell and install scripts
  • Add icon in xpm format
  • Change pgsql setup scripts for debian postgres 8.3/8.4
  • minor cosmetic changes

Future 1/2

Some patches can (and already have been) merged upstream.

Major Upstream ToDo Points:

  • remove PEAR and rely on available PEAR packages
  • replace xmlrpc++
  • option to use system-wide libs instead of provided ones

Future 2/2

Nice to have:

  • flexible install-prefix and install-destination
  • replace SSL with GNU-TLS (xmlrpc++, curl)

Packaging ToDo:

  • drop campcaster's postInstallStation.sh script.

it does not conform to debian db/odbc standards

  • remove NFS auto-detection & provide README to set-up remote storage

.

Thanks for your attention.

Packages are currently available for download from

http://rg42.org/deb/
http://robin.linuxaudio.org/deb/

repositories will follow.