[Freeswitch-users] Alternative Debian package builder

Ken Rice krice at freeswitch.org
Sat Mar 16 23:37:08 MSK 2013


Getting it into official repos only helps gain wider adaption, many people
wont even try something if they cant just type ${package_manager} install
${application}



On 3/16/13 12:55 PM, "Avi Marcus" <avi at avimarcus.net> wrote:

> At the speed that FS updates, I don't particularly see the point of getting it
> into the official repos...
> 
> -Avi
> 
> 
> On Sat, Mar 16, 2013 at 8:47 PM, Cal Leeming [Simplicity Media Ltd]
> <cal.leeming at simplicitymedialtd.co.uk> wrote:
>> 
>> 
>> On Sat, Mar 16, 2013 at 7:16 PM, Ken Rice <krice at freeswitch.org> wrote:
>>> So that¹s 1 for 10AM Eastern (CDT) or 2PM GMT Wed.
>>> 
>>> The problem with installing all the modules is that you don¹t always need or
>>> want them installed on the system. And there are a huge number of people
>>> doing embedded work with FreeSWITCH. Take Apache as another example a quit
>>> apt-cache search apache2 shows dozens of apache2 packagesthat you must
>>> install to get that functionality after the fact.
>> 
>> Actually you do have a good point here.
>> 
>> $ apt-cache search apache2 | grep apache | wc -l
>> 97
>>  
>>> 
>>> The whole point of meta packages or config packages for FreeSWITCH is to try
>>> and keep this consistant across all platforms be it RHEL/Centos or Debian or
>>> even Ubuntu. This reduces the amount of bandwidth required to supporting the
>>> various things after FS has been installed.
>>> 
>>> Personally if it were up to me I would say screw all the different
>>> variations between how FHS and other file layouts work and say pick one of
>>> the following, /opt/freeswitch or /usr/local/freeswitch we are going to
>>> install everything in those locations. This would drastically reduce support
>>> issues and greatly improve the ability of users to backup and change things
>>> in FS w/out having to search the entire filesystem to figure out where
>>> something as simple as freeswitch/db/zrtp.dat is located.
>> 
>> In Debian packaging etiquette (afaik), /opt/ is used usually for non-free
>> packages, or packages where the source code is not given out and moving files
>> around would break the pre-compiled binary. If the end goal was to get FS
>> included in the Debian mirrors, then you'd need to go beyond just
>> /usr/local/freeswitch.. it'd have to be split into /etc/freeswitch,
>> /var/log/freeswitch etc.
>>  
>>> 
>>> Yes I know that last statement will cause a ton of arguments with people as
>>> getting started on where things should go on a file system layout is as
>>> toxic as starting a debat on religion or politics, but that¹s not the point,
>>> we are not a distribution, we are a project developing a specific software
>>> package. That being said I honestly believe the single install location is
>>> the proper thing to do, but we can have support for FHS install locations
>>> etc in the build/packaging scripts to ease distro packagers lives  for
>>> getting packages into the main distro repo¹s. But even then we will still
>>> have to maintain packages for FreeSWITCH proper repos as you already know
>>> how hard it is to get the latest release of software for many thing (for
>>> crying out loud, centos still ships Postgresql 8, and they are up to 9.2.3)
>> 
>> It really depends what the agreed end goal is.
>> 
>> If we want to one day have it in the various OS mirrors, then it'll have to
>> be done properly. This will increase complexity, and end up with more time
>> needing to be spent. Packaging is a skill/art in its own rights, and you'd
>> need dedicated people to work on packaging for the various OS's. Personally,
>> I think the only benefit for splitting up the layout would be if you want to
>> get it included in the official OS mirrors. However if this is not the case,
>> then having it all inside a single directory is going to be quicker and
>> easier, leaving people with more time to focus on other things.
>> 
>> If having it under a single dir is agreed, according to [3], /etc/opt is
>> expected to store configuration files related to packages inside /opt, the
>> use of /usr/local [1] and /opt [2] appears to be OS specific [4]. I don't
>> have any strong opinions of whether it should be /opt or /usr/local.
>> 
>> [1] /usr/local -
>> http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard#cite_note-29
>> [2] /opt - 
>> 
http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard#cite_note-.2Fopt-2>>
7
>> [3] http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
>> [4] http://stackoverflow.com/questions/12649355/what-does-opt-mean-as-in-the-
>> opt-directory-is-it-an-abbreviation
>> 
>>> 
>>> K
>>> 
>>> 
>>> 
>>> On 3/16/13 11:14 AM, "Cal Leeming [Simplicity Media Ltd]"
>>> <cal.leeming at simplicitymedialtd.co.uk
>>> <http://cal.leeming@simplicitymedialtd.co.uk> > wrote:
>>> 
>>>> Sure I'm up for that, though I think discussing a bit more on email before
>>>> hand would be a good idea too.
>>>> 
>>>> I can do 10am Eastern on Wednesday, which would be 2pm GMT/UK time for us.
>>>> 
>>>> To clarify my own position on packaging.. Having the packages split into
>>>> their individual modules is a nice idea in theory, but it doesn't feel like
>>>> the 'Debian way'. Most Debian users are used to only installing just a few
>>>> packages, and the package maintainer decides what should be compiled in by
>>>> default (take nginx for example). The application then decides which
>>>> modules should be loaded in using the .so files (for example Apache). The
>>>> exception to this is Python, where you have external Python modules (such
>>>> as python-curl), however these not part of the Python core, thus why they
>>>> are kept separate. Standard python modules (such as zlib) are all included
>>>> by default.
>>>> 
>>>> I don't know enough about how FreeSWITCH module linking works, but I would
>>>> have thought that if a module is compiled dynamically, then it won't be
>>>> linked in unless it's specified in modules.conf.xml. In which case, you
>>>> could just have a single package with all the dynamic modules compiled in,
>>>> and you would change which modules are loaded in by editing your
>>>> modules.conf.xml. On that basis, I think that the modules should be
>>>> compiled as a single package.
>>>> 
>>>> Any thoughts?
>>>> 
>>>> Cal
>>>> 
>>>> On Sat, Mar 16, 2013 at 5:18 PM, Ken Rice <krice at freeswitch.org
>>>> <http://krice@freeswitch.org> > wrote:
>>>>> Debian Packages... Why don¹t you guys all get together on the FS conf
>>>>> bridge, and lets get everyone working together to get these done in a
>>>>> common way... Hows Say Noon Eastern on Tuesday for 10 Eastern on Wed (an
>>>>> hour before the regular weekly call) to get all you guys in 1 bridge to
>>>>> nail this down.
>>>>> 
>>>>> 
>>>>> 
>>>>> On 3/15/13 6:21 PM, "Anthony Minessale" <anthony.minessale at gmail.com
>>>>> <http://anthony.minessale@gmail.com>  <http://anthony.minessale@gmail.com>
>>>>> > wrote:
>>>>> 
>>>>>> Work with ken and we can combine forces and release packages too.
>>>>>> 
>>>>>> On Mar 15, 2013 6:29 PM, "Andrew Cassidy"
>>>>>> <andrew at cassidywebservices.co.uk <http://andrew@cassidywebservices.co.uk>
>>>>>> <http://andrew@cassidywebservices.co.uk> > wrote:
>>>>>>> I just wrote a script that chroots and builds for each env I have
>>>>>>> installed using the provided build scripts.
>>>>>>> 
>>>>>>> On 15 March 2013 20:27, Cal Leeming [Simplicity Media Ltd]
>>>>>>> <cal.leeming at simplicitymedialtd.co.uk
>>>>>>> <http://cal.leeming@simplicitymedialtd.co.uk>
>>>>>>> <http://cal.leeming@simplicitymedialtd.co.uk> > wrote:
Hello,

I've recently released an alternative Debian package builder for FreeSWITCH.

https://github.com/foxx/freeswitch-debian

Although FreeSWITCH does already have suitable Debian packages (and a
builder), it might not be suitable for your needs (and in our specific use
case, we required an alternative approach).

Some of the reasons for this might be;

* Build your own packages with custom patches applied
* Your build system requires an easy to use, 1 command buider
* Building your own source packages from GIT for security reasons
* Have a single Debian package to install rather than 100+

It supports the following features;

* Uses 'get-packaged-orig-source' to fetch original source from FreeSWITCH
git
* Builds as non-native, all arch package using quilt 3.0 patching (in
accordance with Debian guidelines)
* Uses start-stop-daemon
* Uses pbuilder to ensure a clean build
* Creates 'freeswitch' system user and enforces permissions on FreeSWITCH
files
* Installs into /opt/freeswitch, rather than system dirs
* Removing/purging package will NOT remove data/logs dir or delete
'freeswitch' system user (in accordance with Debian guidelines)
* Enforces all necessary dependancies

Usage:

# Replace GIT_REF with the ref from GIT you wish to compile against
# Replace FS_VERSION with the version of FreeSWITCH we are compiling

$ apt-get install git
$ git clone https://github.com/foxx/freeswitch-debian.git
$ cd freeswitch-debian
$ GIT_REF=master FS_VERSION=1.3.16 make

Hope this helps someone else!

Cal

_________________________________________________________________________
Professional FreeSWITCH Consulting Services:
consulting at freeswitch.org <http://consulting@freeswitch.org>
<http://consulting@freeswitch.org>
http://www.freeswitchsolutions.com




Official FreeSWITCH Sites
http://www.freeswitch.org
http://wiki.freeswitch.org
http://www.cluecon.com

FreeSWITCH-users mailing list
FreeSWITCH-users at lists.freeswitch.org
<http://FreeSWITCH-users@lists.freeswitch.org>
<http://FreeSWITCH-users@lists.freeswitch.org>
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org

>>>>>>> 
>>>>>>> 

-- 
Ken
http://www.FreeSWITCH.org
http://www.ClueCon.com
http://www.OSTAG.org
irc.freenode.net #freeswitch

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20130316/521429f4/attachment.html 


Join us at ClueCon 2011 Aug 9-11, 2011
More information about the FreeSWITCH-users mailing list