[Freeswitch-users] Alternative Debian package builder

Cal Leeming [Simplicity Media Ltd] cal.leeming at simplicitymedialtd.co.uk
Sun Mar 17 01:36:25 MSK 2013


Hi Andrew,

You can actually replace all of that functionality using pbuilder, it
basically wraps debootstrap and works flawlessly with dpkg-buildpackage.

This makes it much easier to do multi distribution builds, and pbuilder is
pretty much Debian standard.

Cal

On Sat, Mar 16, 2013 at 9:29 PM, Andrew Cassidy <
andrew at cassidywebservices.co.uk> wrote:

> I sadly work full time this FreeSWITCH stuff is on the side. I'm fine with
> setting up our own repo, it's not a big deal.
>
> I've not uplaoded any more packages as it's labelling my sid builds as
> wheezy! probably some side effect or maybe I even set up the chroot wrong.
>
> As I probably can't make the call, here's what I've done:
>
> Created chroot environments using debootstrap
>
> Created a prereq scripts that installs all prerequisite packages
>
> Copied the build script to build and package freeswitch
>
> I then have 4 other scripts,
>
>
>    1. Copies the build and prereq into all the chroot environemnts
>    2. chroots into each and runs the prereq
>    3. chroots into each and builds FreeSWITCH
>
> That's all there is to my setup.
>
> On 16 March 2013 20:12, Avi Marcus <avi at avimarcus.net> wrote:
>
>> If that's what's stopping them from trying FS, especially if there is a
>> .deb ready and waiting, then I expect the community will have to answer a
>> LOT of very basic questions from them that are already answered on ML /
>> wiki / book...
>>
>> -Avi
>>
>>
>> On Sat, Mar 16, 2013 at 10:37 PM, Ken Rice <krice at freeswitch.org> wrote:
>>
>>>  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-27
>>> [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
>>>
>>> _________________________________________________________________________
>>> Professional FreeSWITCH Consulting Services:
>>> consulting at 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://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>> http://www.freeswitch.org
>>>
>>>
>>
>> _________________________________________________________________________
>> Professional FreeSWITCH Consulting Services:
>> consulting at 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://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> http://www.freeswitch.org
>>
>>
>
>
> --
> *Andrew Cassidy BSc (Hons) MBCS SSCA*
> Managing Director
>
>
> *T <info at cassidywebservices.co.uk> *03300 100 960  *F<info at cassidywebservices.co.uk>
>  *03300 100 961
> *E <info at cassidywebservices.co.uk> *andrew at cassidywebservices.co.uk
> *W <info at cassidywebservices.co.uk> *www.cassidywebservices.co.uk
>
> _________________________________________________________________________
> Professional FreeSWITCH Consulting Services:
> consulting at 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://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20130316/b40b38e8/attachment-0001.html 


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