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: / Description: # empty lines with "."s are not yet supported Build-Depends: Depends: Recommends: Suggests: Distro-Conflicts: # 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 / 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: aptitude install cowbuilder # 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. ./debian/util.sh build-all -bn -a amd64 -c sid # update as needed 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 , Tue, 4 Sep 2012 14:56:52 +0000