Hacking GStreamer for Debian
============================

An addition to the README.Debian that has Debian package hacking notes.

Everything should now be versioned.

- To update dependencies edit debian/build-deps.in

- To rebuild package files from .in files:

  debian/rules maint

- After a version update to check for missing files run:

  debian/maint missing
  debian/maint missing-libs
  debian/maint missing-so

- To update package files edit gstreamer-foo then rebuild package files.  This
  will generate the gstreamerX.Y-foo file.  Also update debian/rules and
  debian/control.in as needed.

- The packaging tries to stay close of upstream choice. gstreamerX.Y-misc has
  most of the files, extra packages are made for the sinks and by group of 
  depends (gnome, x, ...)

- Provide gstreamerX.Y-videosink and gstreamerX.Y-audiosink as needed.

- All interfaces and generic libraries go in libgstreamer-plugins, libraries
  with external dependencies have their own package such as libgstreamer-gconf.

- Applications go in gstreamerX.Y-plugins-base-apps


File listing
------------

build-deps:
  - generated from "build-deps.in" in "rules
    debian/build-deps:":
    * "build-deps.in" lists build-depends for Debian main packages
  - serves generation with "control.in" and "mk.control" of "control" in
    "rules debian/control::"
build-deps.in:
  - lists build-depends for Debian main packages
  - serves generation with "extra deps" of "build-deps" in "rules
    debian/build-deps:"
changelog: handled classically
compat: handled classically
control:
  - generated for "rules maint"
  - generated from "control.in" and "build-deps" in "rules debian/control::":
    * "build-deps" lists build-depends to be inserted in "control
      Build-Depends:"
    * "control.in" serves of template for package descriptions of Debian main
      packages and makes use of special stanzas enclosed in "@" such as
      "@GST_ABI" which are replaced via sed in "rules debian/control::"
control.in:
  - serves generation of "control" in "rules debian/control::" via "mk.control"
    called in "rules debian/control::"
  - template for package descriptions of Debian main packages and makes use of
    special stanzas enclosed in "@" such as "@GST_ABI" which are replaced via
    sed in "rules debian/control::"
copyright: handled classically
gstreamer-$plugin.install:
  - serves the generation of $gst_pkgname-$plugin.install (for example
    gstreamer-alsa.install serves the generation of gstreamerX.Y-alsa.install) in
    "rules pre-build::" via dynamic "@"-enclosed variables replacement
  - some plugins are handled specially and some special variables are available
gstreamer-plugins-base-apps.install: this isn't really a plugin, but the
                                    gstreamerX.Y-plugins-base-apps package
gstreamer-plugins-base-apps.manpages: man pages for the gstreamerX.Y-plugins-base-apps
                                package
HACKING.Debian: this file
libgstreamer-plugins-base-dev.install libgstreamer-plugins-base.install: handled similarly has gstreamerX.Y-plugins-base-apps
maint: makefile wrapping some targets of "rules" with some sh filtering
mk.control:
  - Perl script serving the generation of "control" which reads "build-deps"
    and "control.in", and replaces the "BUILDDEPS" stanza with the build-deps
patches: handled classically
README.Debian: handled classically
rules: handled classically, with special targets "maint:", and
       "debian/build-deps:"
watch: handled classically

This file is the initial work of:
David I. Lehn <dlehn@debian.org>  Tue, 13 Apr 2004 21:28:55 -0400
and had some additions by:
Loic Minier <lool@dooz.org>  Sun, 19 Jun 2005 19:04:58 +0200
Sebastien Bacher <seb128@debian.org>  Wed, 14 Dec 2005 17:00:21 +0100
