You are way off base in a few places, let me see if I can clarify a bit.
Here are at least 2 pointers:
1) The release tarballs do not come with bootstrap because they already are bootstrapped.
2) FreeSWITCH does not depend on system libs so all the stuff about apr is barking up the wrong tree.
we build our own apr and apr-utils
I suggest you try latest svn trunk of FS and follow the BSD build guidelines on the WIKI since you say
it's closely compatible.
Hi.
I have been searching for an alternative PBX to asterisk (which has not
been all that stable) to run on Dragonfly BSD. I spent a fair amount of
time a couple months ago trying to compile freeswitch without success.
I have since tried Yate, but it consumes 85-95% of the cpu when idle
(not processing any calls).
I am considering revisiting freeswitch. I have included below my notes
of all the various problems I encountered before, which ones I resolved
and how, up to the point where I left off. I am in hopes of getting
feedback on whether any of the issues have been fixed or are planned to
be fixed and/or suggestions on getting it working. Also, perhaps these
notes on my experiences will be helpful for the developers to improve
freeswitch.
Keep in mind that Dragonfly is a branch from Freebsd and stays fairly
compatible. I am able to compile most software, that is ported to
FreeBSD, with few problems.
Here are my notes
=================
To compile on dragonfly BSD 1.10.1-RELEASE
==========================================
I had to add -D__FreeBSD__ to CPPFLAGS
ln sh to bash or zsh
because I got "unexpected operator" errors from "test" during configure
with the bsd shell.
ln make to gmake
Their scripts were calling make even though I ran the build
using gmake.
Must have apr-0.9.16.2.0.61 and apr-util-0.9.16.2.0.61 installed
apr-0.xxx has headers, which freeswitch is including, that apr-1.xxx
does not have.
I sym-linked the apr-util libs from apr-util-1.2.8nb1 because
apr-util-0.9.16.2.0.61 was not available as a binary package.
The freeswitch-1.0.3.tar.gz release did not have bootstrap.sh, which is
required for building from the svn repository.
Somebody on the #freeswitch IRC suggested I get it from the subversion
repository and run the bootstrap script. bootstrap.sh is not in the
release.
==========================================
Tue Mar 31 00:12:37 CDT 2009
I posted on the freeswitch mailing list asking about the compilation errors
Got no responses.
This first set of apr_... warnings turned out to clearly be from not having the
correct apr-util package installed, I should have gotten a response on the list
about it, considering it is a clear dependency that they do not directly
specify on the web site or the source docs. apr-util is a dependency of
subversion. They list SVN as a dependency of freeswitch, which is the utility
in the subversion package, not the package name. svn should not be
a dependency to build from a release archive that is not retrieved from the svn
repository.
As it turns out, it had to be apr-util version 0.9.15. See notes below.
==========================================
Tue Mar 31 22:22:58 CDT 2009
I tried the freeswitch-snapshot.tar.gz from the freeswitch site, which is
a 03/30/2009 snapshot from the svn trunk.
*concern*
It was nearly twice as big as the release for some reason.
27016871 Mar 28 13:08 freeswitch-1.0.3.tar.gz
52854882 Mar 31 18:25 freeswitch-snapshot.tar.gz
Running bootstrap.sh produced a bunch of these errors from automake:
Use of uninitialized value in exists at /usr/pkg/bin/automake line 4823, <GEN0> line 1.
Use of uninitialized value in concatenation (.) or string at /usr/pkg/bin/automake line 4823, <GEN0> line 1.
automake: ####################
automake: ## Internal Error ##
automake: ####################
automake: unrequested trace `'
automake: Please contact <bug-automake@gnu.org>.
at /usr/pkg/share/automake-1.10/Automake/Channels.pm line 570
Automake::Channels::msg('automake', '', 'unrequested trace `\'') called at /usr/pkg/share/automake-1.10/Automake/ChannelDefs.pm line 191
Automake::ChannelDefs::prog_error('unrequested trace `\'') called at /usr/pkg/bin/automake line 4823
Automake::scan_autoconf_traces('configure.ac') called at /usr/pkg/bin/automake line 5046
Automake::scan_autoconf_files() called at /usr/pkg/bin/automake line 781
==========================================
Thu Apr 2 20:51:44 CDT 2009
Going back to the 1.0.3 release.
I was getting a a bunch of apr_... warnings like
Compiling src/switch_apr.c ...
src/switch_apr.c: In function `switch_thread_self':
src/switch_apr.c:74: warning: implicit declaration of function `apr_os_thread_current'
src/switch_apr.c:74: warning: return makes pointer from integer without a cast
...
Then
gmake[3]: *** [libfreeswitch_la-switch_apr.lo] Error 1
I finally got past that by installing apr-0.9.16.2.0.61 and apr-util-0.9.15.
I compiled apr-util-0.9.15 myself because it was not available as a binary
package.
Source files are including headers from apr-util-0.9.15 that do not exist in the
binary package, apr-util-1.2.8nb1.tgz.
I also got past the "Cannot guess build type" error during configure by adding
"--build=i386" instead of having to use the uname wrapper to fake FreeBSD.
==========================================
New error: (This one is not the fault of freeswitch)
Compiling src/switch_core.c ...
src/switch_core.c: In function `switch_core_setrlimits':
src/switch_core.c:795: error: `RLIMIT_AS' undeclared (first use in this function)
Turns out RLIMIT_AS is defined in /usr/include/sys/resource.h on some other
systems including FreeBSD but not Dragonfly.
It is used in the source like this
#if !defined(__OpenBSD__) && !defined(__NetBSD__)
setrlimit(RLIMIT_AS, &rlp);
It is defined in resource.h in FreeBSD like this
#define RLIMIT_AS RLIMIT_VMEM /* standard name for RLIMIT_VMEM */
I created a patch for src/switch_core.c which fixed this error.
Since then, I discussed this on the Dragonfly BSD mailing list and it is
apparently going to be fixed on a future release of Dragonfly now that
they are aware of it.
==========================================
New error:
Tons of warnings like
warning: return makes pointer from integer without a cast
(this needs cleaned up)
Then error'd with
gmake[8]: *** No rule to make target `iptsec/libiptsec.la', needed by `libsofia-sip-ua.la'. Stop.
I cd'd to libs/sofia-sip/libsofia-sip-ua/su
and ran make there. It completed successfully in spite of the same warnings.
Then ran make again form the top.
Got further until
==========================================
New error:
making all mod_spidermonkey
cd config; gmake -j1 export
cd pr; gmake -j1 export
cd include; gmake export
cd md; gmake export
../../../config/./nsinstall: cannot make symbolic link /u1/falcon/ports/freeswitch-1.0.3/work/freeswitch-1.0.3/libs/js/nsprpub/dist/include/nspr/.: File exists
Why would it be trying to make a sym-link of '.' ??
==========================================
Giving up for now.
_______________________________________________
Freeswitch-users mailing list
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