freeswitch/debian
Travis Cross b202d35094 Make debian/README files more markdown-like 2014-02-23 22:39:15 +00:00
..
source debian: add new and vastly improved packaging for Debian 2012-05-05 11:54:05 +00:00
.gitignore Add freeswitch-all debian package 2013-10-18 19:52:16 +00:00
AUTHORS Cleanup whitespace in debian/ 2013-12-10 03:53:17 +00:00
README.Debian Make debian/README files more markdown-like 2014-02-23 22:39:15 +00:00
README.source Make debian/README files more markdown-like 2014-02-23 22:39:15 +00:00
bootstrap.sh Add core build-dep on libogg-dev for speex 2014-02-18 20:47:32 +00:00
changelog debian: version bump 2012-05-24 17:27:28 +00:00
compat debian: add new and vastly improved packaging for Debian 2012-05-05 11:54:05 +00:00
control-modules Correct alphabetization 2014-02-18 20:48:28 +00:00
copyright update copyright header for 2014 2014-02-12 12:08:56 -06:00
docs debian: add new and vastly improved packaging for Debian 2012-05-05 11:54:05 +00:00
freeswitch-doc.docs debian: add new and vastly improved packaging for Debian 2012-05-05 11:54:05 +00:00
freeswitch-doc.install debian: add new and vastly improved packaging for Debian 2012-05-05 11:54:05 +00:00
freeswitch-mod-java.install.tmpl debian: install freeswitch.jar with mod_java 2012-05-15 07:19:51 +00:00
freeswitch-mod-managed.install.tmpl debian: Handle mod_managed .dll more idiomatically 2013-07-26 21:56:07 +00:00
freeswitch-mod-perl.install.tmpl Install perl module files needed by mod_perl 2013-10-19 19:55:22 +00:00
freeswitch-mod-pocketsphinx.install.tmpl debian: add new and vastly improved packaging for Debian 2012-05-05 11:54:05 +00:00
freeswitch-mod-spidermonkey.install.tmpl debian: Add additional module files for mod_spidermonkey 2013-07-26 22:28:49 +00:00
freeswitch-systemd.freeswitch.service Cleanup whitespace in debian/ 2013-12-10 03:53:17 +00:00
freeswitch-systemd.install debian: add new and vastly improved packaging for Debian 2012-05-05 11:54:05 +00:00
freeswitch-sysvinit.freeswitch.default debian: Move some init options to default/freeswitch 2012-12-30 19:08:55 +00:00
freeswitch-sysvinit.freeswitch.init Start DBs before FS if possible 2014-01-30 14:12:45 +00:00
freeswitch.install debian: don't install scripts/ with freeswitch 2012-05-15 07:18:50 +00:00
freeswitch.postinst Use /var/lib/freeswitch as home directory on Debian 2012-12-18 17:43:04 +00:00
freeswitch.postrm debian: whitespace 2012-05-06 22:46:36 +00:00
freeswitch.preinst debian: whitespace 2012-05-06 22:46:36 +00:00
freeswitch.prerm debian: massage the prerm script to pass lintian 2012-05-07 16:17:11 +00:00
gbp.conf debian: don't force-create the orig tarball 2012-05-28 16:35:00 +00:00
libfreeswitch-dev.install debian: don't distribute .la file with libfreeswitch-dev 2012-05-09 23:15:03 +00:00
libfreeswitch1.install debian: separate out libfreeswitch1 2012-05-09 23:15:02 +00:00
license-reconcile.yml mostly done (apart from some dodgy non-licenses) 2012-12-17 21:32:17 +00:00
rules Add some hardening to the debian build 2014-02-09 23:51:42 +00:00
util.sh Exit non-zero from build-all on any build failure 2014-02-18 21:05:12 +00:00

README.source

FreeSWITCH for Debian
=====================

You may be reading this because you're wondering where all the files
are in debian/, such as control.  You may also be here looking for the
sound or music packages.  Read on.

Because FreeSWITCH has so many modules it was necessary to create a
system to autogenerate the majority of the packaging.  This in done
mostly in the file debian/bootstrap.sh.  This bootstrap needs to run
before any other step of the packaging, though we do try to
autogenerate it when possible.

The build dependencies, runtime dependencies, and other details about
modules can be configured in the debian/control-modules file.  Even
though this file looks a bit like a debian control file and has a
similar format, we are parsing this file ourselves so the format is a
bit more restricted.

debian/control-modules currently supports the following fields:

    # lines that begin with the hash character are comments
    #
    # every block must start with a Module field
    Module: <category>/<module_name>
    Description: <short description>
     <long description> # empty lines with "."s are not yet supported
    Build-Depends: <build deps for this module>
    Depends: <runtime deps for this module>
    Recommends: <recommended packages>
    Suggests: <suggested packages>
    Distro-Conflicts: <distributions on which this module should not be built> # not yet implemented

During bootstrap we build a file control-modules.gen.  If the
control-modules file is properly formatted, this generated file should
be identical.  This is a sanity check mechanism for our parsing, as
well as a way to automatically reorganize the file.

If the file debian/modules.conf is present, we read that file and only
build and package the files listed there.  Otherwise, we build every
module except the ones that either should not be packaged, or for
which we don't yet have good packaging.

The format of debian/modules.conf is:

    ## comments should start with two hash characters
    <category>/<module_name>

To build this package, I recommend running the following from the root
directory of your FS git working tree:

    distro=sid
    ver="$(cat build/next-release.txt | sed -e 's/-/~/g')~n$(date +%Y%m%dT%H%M%SZ)-1~${distro}+1"
    git clean -fdx && git reset --hard HEAD
    ./build/set-fs-version.sh "$ver"
    git add configure.in && git commit -m "bump to custom v$ver"
    (cd debian && ./bootstrap.sh -c $distro)
    dch -b -m -v "$ver" --force-distribution -D "unstable" "Custom build."
    dpkg-buildpackage -b -us -uc -Zxz -z9
    git reset --hard HEAD^

To build for a stable branch, do this:

    distro=sid # update as needed
    stable_ver="1.2.1" # update as needed
    # if you only want to build some modules, put them one per line here, e.g.:
    #echo "applications/mod_commands" >> debian/modules.conf
    ver="$(echo "$stable_ver" | sed -e 's/-/~/g')~n$(date +%Y%m%dT%H%M%SZ)-1~${distro}+1"
    git clean -fdx && git reset --hard refs/tags/v${stable_ver}
    ./build/set-fs-version.sh "$ver"
    git add configure.in && git commit -m "bump to custom v$ver"
    (cd debian && ./bootstrap.sh -c $distro)
    dch -b -m -v "$ver" --force-distribution -D "unstable" "Custom build."
    dpkg-buildpackage -b -us -uc -Zxz -z9
    git reset --hard origin/master

Alternatively, you can build using our automated tools.  To build the
source packages and all supported binary packages for sid, wheezy,
squeeze on i386 and amd64, run the following as root from a clean
Debian sid 'buildd' image:

    aptitude update && aptitude upgrade
    aptitude install -y git
    mkdir /usr/src/freeswitch
    git clone git://git.freeswitch.org/freeswitch /usr/src/freeswitch/src
    cd /usr/src/freeswitch/src
    # if you only want to build some modules, create a modules.conf
    # outside the source tree and add -f ../path/to/modules.conf to the
    # command below.  See ./debian/util.sh -h for further usage
    # information.
    ./debian/util.sh build-all -ibn -z9

If you need to build a small set of modules for compile testing in the
pbuilder environment, run something like:

    ./debian/util.sh build-all -dni -z1 -a amd64 -c sid -l "applications/mod_commands"

The source packages for sounds and music on hold are maintained in a
separate repository.  Each set of sounds has a separate version number
and the processing of the sounds is quite different from what we're
doing here, so trying to maintain a merged debian/ between FreeSWITCH
and the sounds and music would be a mess.

To build the Debian packages for freeswitch-sounds-* and
freeswitch-music-*:

    git clone https://github.com/traviscross/freeswitch-sounds.git
    cd freeswitch-sounds && cat debian/README.source

 -- Travis Cross <tc@traviscross.com>, Sun, 23 Feb 2014 17:08:30 +0000