GSOC Day 1 – Merging the branches
Today, I worked on merging the tp04 branch with the changes that have since occurred in the mainline. With some excellent tips from mithro, I was able to complete the merge successfully.
First, I had to merge the submodules: libtpclient-py and libtpproto-py. This required creating tp04 branches in each:
git checkout –track -b tp04 origin/tp04
And then I had to do the merge:
git merge stable
This created a few minor conflicts in version lines, which were quickly resolved.
After a few commits and adds, I was able to merge a few final conflicts in the version and requirements files for tpclient-pywx.
After finishing this merge, I attempted to set up the server (tpserver-cpp), which presented more of a challenge than I had expected.
I first attempted to use autogen.sh to create the configure script, but ran into the problem that it was trying to find libtoolize and couldn’t – it turned out that Mac OS X calls it glibtoolize. I submitted a patch to fix the problem.
Then, I was unable to get the configure script to find Boost::Signals – it kept giving the error:
checking whether the Boost::Signals library is available… yes
configure: error: Could not link against !
I was able, finally, to figure out with the help of llnz that this was due to MacPorts installing Boost’s libraries in /opt/local/lib. Using:
I was able to fix the problem.
Finally, I came upon another problem, still trying to configure. Even though both mzscheme and guile are installed, I have been unable to get the configure script to find them:
checking for scheme_basic_env in -lmzscheme… no
checking for scheme_basic_env in -lmzscheme3m… no
configure: WARNING: Not going to build MzScheme module
checking for guile-config… /opt/local/bin/guile-config
checking for scm_init_guile in -lguile… no
configure: WARNING: Cannot find Guile library
configure: error: Either MzScheme or Guile must be used. Please install mzscheme or guile. See ./configure –help if one is already installed.
Even changing environment variables and using flags such as –with-guile=/opt/local/ or other paths has not fixed this problem – I’ll have to come back and look at it tomorrow.
Edit: After one last late-night debugging, I found the problem! Even though guile was being detected in the right location, the configure script was for some reason failing to add the -L/opt/local/lib to the compile command to test it. So it couldn’t find the guile library. This fixed the problem (note: terrible hack, I’ll tell llnz about the problem so he can use his automake expertise to fix it properly):
So it was on to compiling for me. Only one small bug there – it seems I needed to include:
So that the compiler could find the umask() function. Llnz has pushed that change as well.