forked from Mirrors/freeswitch
4ce0f57a8b
We now break out each module and component of FreeSWITCH into a separate individually-installable package. For each package with executables or modules, we also build a package that includes the stripped debugging symbols so that users can be helpful when they discover bugs in FreeSWITCH. As of this commit, we successfully build 263 distinct binary packages starting from a clean minimal image on both Debian Sid and Debian Squeeze. To keep this manageable, we include a program that generates the various Debian packaging files from a consolidated description of the modules and their metadata. The program can even generate this configuration file by walking the FreeSWITCH source tree. To provide a smooth user experience, we provide meta-packages that install sensible sets of modules and other components. All files are installed into the traditional and customary Linux directories that you would expect in accordance with the Filesystem Hierarchy Standard (FHS). This commit also adds support for running FreeSWITCH as a forked systemd service in Debian. For more information about the technical details of the source packaging, how to build the binary packages from source, and how you can contribute, please read debian/README.source. To learn about how this packaging affects you as a user and how to use the finished Debian packages, read debian/README.Debian. Signed-off-by: Travis Cross <tc@traviscross.com>
58 lines
2.3 KiB
Plaintext
58 lines
2.3 KiB
Plaintext
FreeSWITCH for Debian
|
|
--------------
|
|
|
|
You may be reading this because you're wondering where all the files
|
|
are in debian/, such as control.
|
|
|
|
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:
|
|
|
|
mkdir ../sounds
|
|
export FS_SOUNDS_DIR=$(pwd)/../sounds
|
|
git clean -fdx && git reset --hard HEAD
|
|
(cd debian && ./bootstrap.sh)
|
|
schedtool -B -e git-buildpackage --git-verbose -us -uc
|
|
|
|
-- Travis Cross <tc@traviscross.com>, Sat, 5 May 2012 08:04:19 +0000
|