On Sun, 2010-01-24 at 12:04 -0600, Eric Varsanyi wrote: > I am successfully (so far) running an EDE style 'designer' install on > FC12. I had to make a number of changes and while I do not claim these > are the 'right' way to fix some of these issues I'm hoping this at > least documents the issues in case support of FC12 and beyond is ever > considered (FC10 is not getting updates any more and the EDE scripts > claim to not support RHEL) or someone else needs to run under FC12. In > the ede devuser script I just replaced the literal 'fc10' with 'fc12'.
Thanks for taking the initiative on this, Eric, and for the good notes. > I also did a full RPM build under FC12 but couldn't make the resulting > installed system work (the distribution of config files through > sipxsupervisor failed due to some problem with auto-generated ssl > certificates; I didn't go any further but likely that's easily fixed). > > If its deemed appropriate I'm happy to enter some/all of these into > jira. I think the way to do this in the tracker would be for you to open one issue with the summary 'Port to F12', and then create individual subtasks under that one to document the problems (there are a couple noted below that we don't need issues for, but unless I say that specifically, open a subtask issue for each of these, please). Notes below on some specifics... > Some general notes that caused trouble that I manually worked around: > > 1) Mixed case usernames are no longer allowed (PlcmSpIp), useradd just > fails and the EDE stuff ignores the failure. I added the user manually > with vipw w/o issue. It might be worth considering setting up the DHCP > server to use plcmspip (in dnsmasq for example: > > # Polycom IP phone boot server (66+Custom->160) > dhcp-option=160,"ftp://plcmspip:[email protected]" > > ) as the security folks seem well convinced that mixed case usernames > are officially harmful now. Hmmm... I wonder why? We'll want to find a way to allow that name, since the mixed-case name is what Polycom phones try to use when reset to factory defaults. > 2) The network setup in (if I recall) the EDE script and/or > sipxecs-setup depends on > parsing /etc/sysconfig/networks-scripts/ifcfg-eth0 ; the format of > this has changed and instead of NETMASK a default install puts in > PREFIX. It doesn't hurt to add NETMASK to work around this. > 3) Insure that the IPV6 localhost entry (::1) in /etc/hosts does not > have the 'external' name of the machine (pbx.xxx.com for example). What problem did this cause? We're not using IPv6 for anything (yet). > Issues that I worked around with changes in the source tree (effective > with an autoreconf -if/configure/make build): > > 4) There's some conflict between the sipXinterop package and the > sipXpbx package -- they both install an httpd.conf file (even if you > don't otherwise enable the interop thing) but the sipXinterop one ends > up winning. Both of the .in files is incompatible with the newer > distribution of apache (which is missing mod_file_cache and > mod_mem_cache) in FC12: > > Index: sipXinterop/http_conf/httpd.conf.pre > =================================================================== > --- sipXinterop/http_conf/httpd.conf.pre (revision 17748) > +++ sipXinterop/http_conf/httpd.conf.pre (working copy) > @@ -261,8 +261,6 @@ > LoadModule cache_module @APACHE2_MOD@/mod_cache.so > LoadModule suexec_module @APACHE2_MOD@/mod_suexec.so > LoadModule disk_cache_module @APACHE2_MOD@/mod_disk_cache.so > -LoadModule file_cache_module @APACHE2_MOD@/mod_file_cache.so > -LoadModule mem_cache_module @APACHE2_MOD@/mod_mem_cache.so > LoadModule cgi_module @APACHE2_MOD@/mod_cgi.so > > # > Index: sipXpbx/etc/httpd.conf.in > =================================================================== > --- sipXpbx/etc/httpd.conf.in (revision 17748) > +++ sipXpbx/etc/httpd.conf.in (working copy) > @@ -261,8 +261,6 @@ > LoadModule cache_module @APACHE2_MOD@/mod_cache.so > LoadModule suexec_module @APACHE2_MOD@/mod_suexec.so > LoadModule disk_cache_module @APACHE2_MOD@/mod_disk_cache.so > -LoadModule file_cache_module @APACHE2_MOD@/mod_file_cache.so > -LoadModule mem_cache_module @APACHE2_MOD@/mod_mem_cache.so > LoadModule cgi_module @APACHE2_MOD@/mod_cgi.so > > # The sipXinterop package isn't really meant to be installed on anything but a particular kind of interop test system - _NEVER_ on a system that's really going to be used for anything real. We don't need an issue on this one. > 5) The undocumented '--quiet' flag to Postgresql's createdb and dropdb > commands is no longer present in FC12 and causes these commands to > fail now: > > Index: sipXproxy/bin/sipxcallresolver.sh.in > =================================================================== > --- sipXproxy/bin/sipxcallresolver.sh.in (revision 17748) > +++ sipXproxy/bin/sipxcallresolver.sh.in (working copy) > @@ -41,7 +41,7 @@ > Database=SIPXCDR > Today=`date` > > -PsqlCmd="${Psql} --quiet --tuples-only --no-align --username ${PgUser} > --dbname ${Database}" > +PsqlCmd="${Psql} --tuples-only --no-align --username ${PgUser} --dbname > ${Database}" > > # Make sure we are running as root during installation setup > assertRoot() { > @@ -138,12 +138,12 @@ > > case ${1} in > create) > - createdb --quiet -U ${PgUser} --encoding=UNICODE ${Database} > + createdb -U ${PgUser} --encoding=UNICODE ${Database} > ${PsqlCmd} -f ${PgSchema} > ;; > > drop) > - dropdb --quiet -U ${PgUser} ${Database} > + dropdb -U ${PgUser} ${Database} > ;; > esac > } > > Index: sipXconfig/neoconf/etc/database/database.xml > =================================================================== > --- sipXconfig/neoconf/etc/database/database.xml (revision 17748) > +++ sipXconfig/neoconf/etc/database/database.xml (working copy) > @@ -116,7 +116,7 @@ > <sleep seconds="3" /> > <!-- sporadic template1 in use, allow dropdb to disconnect... --> > <exec executable="createdb" failonerror="true"> > - <arg line="-q -U ${sipxconfig.db.user} --encoding=UNICODE > ${sipxconfig.db.name}" /> > + <arg line="-U ${sipxconfig.db.user} --encoding=UNICODE > ${sipxconfig.db.name}" /> > </exec> > </target> > > @@ -937,7 +937,7 @@ > <sleep seconds="3" /> > <!-- sporadic template1 in use, allow dropdb to disconnect... --> > <exec executable="createdb" failonerror="true"> > - <arg line="-q -U ${sipxconfig.db.user} --encoding=UNICODE PDS" /> > + <arg line="-U ${sipxconfig.db.user} --encoding=UNICODE PDS" /> > </exec> > <!-- ignore error in this task, importing database can fail if going > from Postgres 7 to 8 --> > <exec executable="/bin/sh" failonerror="false" outputproperty="eatme"> > > > 6) autoconfig fails if the libtool-ltdl-devel package is not installed > (added to YUM_PACKAGES in ede_base_root.sh) We should have a BuildRequires line in our spec files for that package then (we should have a lot of BuildRequires lines we don't, I suspect...) > 7) Freeswitch (svn 16425) doesn't build libjs.so due to a subtle > problem with dependencies in the autoconfig system. I posted this to > the freeswitch list and Mike said he would fix it. > > Index: lib/freeswitch/Makefile.am > =================================================================== > --- lib/freeswitch/Makefile.am (revision 17748) > +++ lib/freeswitch/Makefile.am (working copy) > @@ -1,6 +1,6 @@ > VERSION = 1.0.5 > RELEASE = 1 > -SVN_RELEASE = 16184 > +SVN_RELEASE = 16425 > SRC_DIR = $(srcdir)/src > SVN_URL = http://svn.freeswitch.org/svn/freeswitch/trunk > @@ -26,6 +26,7 @@ > build-rpms: > pushd @RPMBUILD_TOPDIR@/SOURCES ; \ > svn export -q -r $(SVN_RELEASE) $(SVN_URL) sipx-freeswitch-$(VERSION) > ; > \ > + cd sipx-freeswitch-$(VERSION); patch -p0 < ~/fs.patch; cd .. ; \ > tar czf $(SRC_TARBALL) sipx-freeswitch-$(VERSION) ; \ > rm -rf sipx-freeswitch-$(VERSION) ; \ > popd > > fs.patch: > > Index: libs/js/configure.ac > =================================================================== > --- libs/js/configure.ac (revision 16398) > +++ libs/js/configure.ac (working copy) > @@ -154,6 +154,8 @@ > CPPFLAGS="$CPPFLAGS -DJS_HAS_XML_SUPPORT=1" > fi > > +AC_PROG_LIBTOOL > + > dnl # configure option --with-dso > AC_ARG_WITH([dso], > AS_HELP_STRING([--with-dso], [build without DSO object (allows run-time > process extending)]), > @@ -229,8 +231,6 @@ > > with_tags="" > > -AC_PROG_LIBTOOL > - > AC_CONFIG_HEADERS(config.h) > AC_CONFIG_FILES([Makefile js.pc js-config.sh src/perlconnect/Makefile.PL]) > AC_OUTPUT > > > 8) The freeswitch spec file is missing some new files in the freeswitch distro > > Index: lib/freeswitch/sipx-freeswitch.spec > =================================================================== > --- lib/freeswitch/sipx-freeswitch.spec (revision 17750) > +++ lib/freeswitch/sipx-freeswitch.spec (working copy) > @@ -334,6 +334,7 @@ > %config(noreplace) %{prefix}/conf/jingle_profiles/*.xml > %config(noreplace) %{prefix}/conf/mrcp_profiles/*.xml > %config(noreplace) %{prefix}/htdocs/* > +%config(noreplace) %{prefix}/conf/ivr_menus/* > %ifos linux > /etc/ld.so.conf.d/* ## /etc/init.d/freeswitch > > > 9) Dependency RPM build support for an fc12 target: > > Index: lib/Makefile > =================================================================== > --- lib/Makefile (revision 17748) > +++ lib/Makefile (working copy) > @@ -54,6 +54,9 @@ > .PHONY: f11 f11 : $(CUSTOM_PACKAGES) > > +.PHONY: f12 > +f12 : $(CUSTOM_PACKAGES) > + > .PHONY: rhel5 centos5 > rhel5 centos5 : $(CUSTOM_PACKAGES) nsis cppunit xerces-c w3c-libwww rubygems > rr > dtool > > > > 10) sipXtackLib depends on @ECHO@ being defined when making Makefile.am and > in FC12 it isn't > > Index: sipXtackLib/include/Makefile.am > =================================================================== > --- sipXtackLib/include/Makefile.am (revision 17748) > +++ sipXtackLib/include/Makefile.am (working copy) > @@ -118,11 +118,11 @@ > > net/version.h: .FORCE > @test -d net || mkdir net > - @@ECHO@ '#ifndef SIP_STACK_VERSION' > net/version_new.h > - @@ECHO@ -n '#define SIP_STACK_VERSION "' >> net/version_new.h > - @@ECHO@ -n @VERSION@ >> net/version_new.h- > @@ECHO@ '"' >> net/version_new.h- @@ECHO@ > '#endif' >> net/version_new.h > + @echo '#ifndef SIP_STACK_VERSION' > net/version_new.h > + @echo -n '#define SIP_STACK_VERSION "' >> net/version_new.h > + @echo -n @VERSION@ >> net/version_new.h > + @echo '"' >> net/version_new.h > + @echo '#endif' >> net/version_new.h > @if test ! -r net/version.h || ! diff net/version.h net/version_new.h > > /dev/null \ > ;then \ > echo sipXtack version is @VERSION@ \ > > > > 11) The gen-ssl-keys script assumes that '.' is in the path, it is not > and this leads to very subtle failures as there is no indication that > the ssl keys did not get generated while running sipxecs-setup > > Index: sipXcommserverLib/bin/ssl-cert/gen-ssl-keys.sh.in > =================================================================== > --- sipXcommserverLib/bin/ssl-cert/gen-ssl-keys.sh.in (revision 17748) > +++ sipXcommserverLib/bin/ssl-cert/gen-ssl-keys.sh.in (working copy) > @@ -1249,7 +1249,7 @@ > > randomFile=${WorkDir}/rnd_seed > > -test -r ${Defaults} && . ${Defaults} > +test -r ${Defaults} && . ./${Defaults} Interesting... the shell 'source' command (for which the '.' command is an alias) didn't used to need the directory to be in PATH (it would use it if it was, but a local file worked without it). I know, because I very carefully ensure that the current directory '.' is never in my PATH and that script has always worked for me. Good catch. > case ${Action} in > > > 12) The autoconfig magic around shared library configuration > (specifically getting the literal string ".so" out of the config > system) changed some time ago and as of FC12 its no longer backwards > compatible. I'm sure this isn't the 'right' way to do this (it pulls a > lot of extra config goo in) but it does work: > > Index: sipXportLib/src/test/utl/PluginHooksTest.cpp > =================================================================== > --- sipXportLib/src/test/utl/PluginHooksTest.cpp (revision 17748) > +++ sipXportLib/src/test/utl/PluginHooksTest.cpp (working copy) > @@ -19,7 +19,11 @@ > #ifndef PLUGIN_EXT > # ifdef HAVE_CONFIG_H > # include "config.h" // generated by autoconf > -# define PLUGIN_EXT LTDL_SHLIB_EXT > +# ifdef LT_MODULE_EXT > +# define PLUGIN_EXT LT_MODULE_EXT > +# else > +# define PLUGIN_EXT LTDL_SHLIB_EXT > +# endif > # else > # error "Need PLUGIN_EXT to be set to the dynamic library extension value" > # endif > Index: sipXportLib/configure.ac > =================================================================== > --- sipXportLib/configure.ac (revision 17748) > +++ sipXportLib/configure.ac (working copy) > @@ -17,8 +17,6 @@ > AC_CONFIG_SRCDIR([src/os/OsConfigDb.cpp]) > AM_CONFIG_HEADER([config.h]) > AC_PROG_LIBTOOL > -# check the shared library file extension - sets LTDL_SHLIB_EXT > -AC_LTDL_SHLIBEXT > > # Checks for programs. > AC_PATH_PROG([BASH], [bash]) > @@ -82,4 +80,8 @@ > doc/Makefile > ]) > > +# check the shared library file extension - sets LTDL_SHLIB_EXT > +#AC_LTDL_SHLIBEXT > +AC_LIB_LTDL > + > AC_OUTPUT > > > 13) sipXmediaLib was getting some typedefs via osmosis which no longer works: > > Index: sipXmediaLib/include/mp/MpAudioAbstract.h > =================================================================== > --- sipXmediaLib/include/mp/MpAudioAbstract.h (revision 17748) > +++ sipXmediaLib/include/mp/MpAudioAbstract.h (working copy) > @@ -12,6 +12,7 @@ > > #include <os/iostream> > #include <stdio.h> > +#include <stdint.h> > > typedef int16_t AudioSample; > typedef unsigned char AudioByte; > Index: sipXmediaLib/include/mp/MpAudioFileUtils.h > =================================================================== > --- sipXmediaLib/include/mp/MpAudioFileUtils.h (revision 17748) > +++ sipXmediaLib/include/mp/MpAudioFileUtils.h (working copy) > @@ -12,6 +12,7 @@ > #define MP_AUDIO_FILE_UTILS_H > > #include <os/iostream> > +#include <stdint.h> > > typedef short AudioSample; _______________________________________________ sipx-dev mailing list [email protected] List Archive: http://list.sipfoundry.org/archive/sipx-dev Unsubscribe: http://list.sipfoundry.org/mailman/listinfo/sipx-dev sipXecs IP PBX -- http://www.sipfoundry.org/
