Building unstable on Mac

John Ralls jralls at ceridwen.us
Thu Feb 1 19:31:02 EST 2018


Do you not know your way around autotools? Maybe it's time for a little RTFM [1] or you might prefer WTFV [2] (Watch the Fine Video).

Anyway, configure writes a detailed log file called config.log. You'll usually find useful details about configuration errors and anomalies in there. It's usually a good idea to find the m4 code for the test that failed, it's easier to read than the generated shell script in configure. The sources will be in configure.ac (or configure.in if the project's developers are a bit behind the power curve) and in a directory called variously "macros", "m4", or "m4macros". Libsoup uses "m4". In the case of glib-networking configure runs a little program, so you're be looking for the associated compiler or runtime error in config.log. 

Regards,
John Ralls

[1] https://autotools.io/index.html
[2] https://www.dwheeler.com/autotools/



> On Feb 1, 2018, at 3:39 PM, R. Victor Klassen <rvklassen at gmail.com> wrote:
> 
> 
> 
>> On Feb 1, 2018, at 6:31 PM, John Ralls <jralls at ceridwen.us> wrote:
>> 
>> 
>> Please remember to copy the list on all replies. 
> 
> Not intentional.
> 
>> 
>> Well, if it was installed then why isn't libsoup finding it?
> 
> I guess that’s what I’m asking.  
> Thoughts on where to look for the answer?
> 
>> 
>> Regards,
>> John Ralls
>> 
>>> On Feb 1, 2018, at 2:50 PM, R. Victor Klassen <rvklassen at gmail.com> wrote:
>>> 
>>> … or what happened that it wasn’t found?
>>> 
>>> I scrolled back (actually used find) and it was checked out, configured, built and installed.  These appeared successful.
>>> 
>>> That was two packages before libsoup.
>>> 
>>>> 
>>>> glib-networking is in the list of modules that should be built. What happened that it wasn't?
>>>> 
>>>> Regards,
>>>> John Ralls
>>>> 
>>>> 
>>>> 
>>>>> On Feb 1, 2018, at 2:02 PM, R. Victor Klassen <rvklassen at gmail.com> wrote:
>>>>> 
>>>>> At some point I got the “refusing to switch to a dirty tree” error.  I followed the instructions at 
>>>>> https://lists.gnucash.org/pipermail/gnucash-devel/2015-March/038616.html
>>>>> 
>>>>> [git reset --hard HEAD]
>>>>> 
>>>>> Hope that’s OK.
>>>>> 
>>>>> Next thing I remember is Boost.   That was almost impossible to check out.  For whatever reason, it would abort somewhere between 2% and 92% of the way through the download.   Then finally it worked.
>>>>> 
>>>>> I followed the instructions on getting Boost to compile; at the instruction:
>>>>> 
>>>>> for i in `ls $PREFIX/lib/libboost*`; do install_name_tool -id $i $i; done 
>>>>> 
>>>>> I encountered a long series of errors of the form:
>>>>> 
>>>>> error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool: input file: /Users/gnucashdev/gnucash-unstable/lib/libboost_atomic.a is not a Mach-O file
>>>>> error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool: input file: /Users/gnucashdev/gnucash-unstable/lib/libboost_chrono.a is not a Mach-O file
>>>>> error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool: input file: /Users/gnucashdev/gnucash-unstable/lib/libboost_container.a is not a Mach-O file
>>>>> error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool: input file: /Users/gnucashdev/gnucash-unstable/lib/libboost_coroutine.a is not a Mach-O file
>>>>> 
>>>>> I continued, but I do wonder whether that was OK.
>>>>> 
>>>>> It did crash on the second ‘2’, as predicted, so I ran 
>>>>> 
>>>>> jhbuild build --start-at=googletest
>>>>> 
>>>>> Which picked up from there.  This failed in configure:
>>>>> 
>>>>> checking for glib-networking (glib TLS implementation)... no
>>>>> configure: error: libsoup requires glib-networking for TLS support.
>>>>> 
>>>>> If you are building a package, you can pass --disable-tls-check to
>>>>> allow building libsoup anyway (since glib-networking is not actually
>>>>> required at compile time), but you should be sure to add a runtime
>>>>> dependency on it.
>>>>> *** Error during phase configure of libsoup: ########## Error running ./configure --prefix /Users/gnucashdev/gnucash-unstable set_more_warnings=no   *** [6/8]
>>>>> 
>>>>> I think it’s getting close...
>>>>> 
>>>>>> On Feb 1, 2018, at 10:12 AM, John Ralls <jralls at ceridwen.us> wrote:
>>>>>> 
>>>>>> You didn’t build gtk-doc and Pango requires at least the macros for it.
>>>>>> 
>>>>>> As to your question, it depends. It’s telling you on the line just below your question that pango is the seventeenth out of sixty-five packages, but it doesn’t know that some of them build in a couple of seconds and others (webkit and guile in particular) take hours.
>>>>>> 
>>>>>> Regards,
>>>>>> John Ralls
>>>>>> 
>>>>>>> On Feb 1, 2018, at 5:55 AM, R. Victor Klassen <rvklassen at gmail.com> wrote:
>>>>>>> 
>>>>>>> Broke in pango - errors below:
>>>>>>> 
>>>>>>> [Is there a file or other accessible reference that I can look into to get some idea of what fraction of the way through I am?]
>>>>>>> 
>>>>>>> 
>>>>>>> *** Configuring pango *** [17/65]
>>>>>>> autoreconf -fi
>>>>>>> acinclude.m4:68: warning: the serial number must appear before any macro definition
>>>>>>> libtoolize: putting auxiliary files in '.'.
>>>>>>> libtoolize: copying file './ltmain.sh'
>>>>>>> libtoolize: Consider adding 'AC_CONFIG_MACRO_DIRS([m4])' to configure.ac,
>>>>>>> libtoolize: and rerunning libtoolize and aclocal.
>>>>>>> libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
>>>>>>> acinclude.m4:68: warning: the serial number must appear before any macro definition
>>>>>>> configure.ac:115: installing './compile'
>>>>>>> configure.ac:52: installing './missing'
>>>>>>> gtk-doc.make:7: error: GTK_DOC_USE_LIBTOOL does not appear in AM_CONDITIONAL
>>>>>>> docs/Makefile.am:101:   'gtk-doc.make' included from here
>>>>>>> gtk-doc.make:60: error: GTK_DOC_BUILD_HTML does not appear in AM_CONDITIONAL
>>>>>>> docs/Makefile.am:101:   'gtk-doc.make' included from here
>>>>>>> gtk-doc.make:65: error: GTK_DOC_BUILD_PDF does not appear in AM_CONDITIONAL
>>>>>>> docs/Makefile.am:101:   'gtk-doc.make' included from here
>>>>>>> gtk-doc.make:74: error: ENABLE_GTK_DOC does not appear in AM_CONDITIONAL
>>>>>>> docs/Makefile.am:101:   'gtk-doc.make' included from here
>>>>>>> gtk-doc.make:280: error: HAVE_GTK_DOC does not appear in AM_CONDITIONAL
>>>>>>> docs/Makefile.am:101:   'gtk-doc.make' included from here
>>>>>>> docs/Makefile.am:142: error: ENABLE_GTK_DOC does not appear in AM_CONDITIONAL
>>>>>>> docs/Makefile.am:54: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
>>>>>>> examples/Makefile.am:6: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
>>>>>>> examples/Makefile.am: installing './depcomp'
>>>>>>> pango-view/Makefile.am:30: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
>>>>>>> pango/Makefile.am:16: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
>>>>>>> pango/mini-fribidi/Makefile.am:3: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
>>>>>>> tools/Makefile.am:3: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
>>>>>>> win32/Makefile-newvs.am:23: warning: MSVC_TOOLSET was already defined in condition TRUE, which includes condition MSVC_NO_TOOLSET_SET ...
>>>>>>> win32/vs15/Makefile.am:30:   'win32/Makefile-newvs.am' included from here
>>>>>>> win32/vs15/Makefile.am:28: ... 'MSVC_TOOLSET' previously defined here
>>>>>>> autoreconf: automake failed with exit status: 1
>>>>>>> *** Error during phase configure of pango: ########## Error running autoreconf -fi *** [17/65]
>>>>>>> 
>>>>>>> [1] Rerun phase configure
>>>>>>> [2] Ignore error and continue to build
>>>>>>> [3] Give up on module
>>>>>>> [4] Start shell
>>>>>>> [5] Reload configuration
>>>>>>> [6] Go to phase "wipe directory and start over"
>>>>>>> [7] Go to phase "clean"
>>>>>>> [8] Go to phase "distclean"
>>>>>>> choice: 
>>>>>>> 
>>>>>>> 
>>>>>>>> On Jan 29, 2018, at 11:02 PM, John Ralls <jralls at ceridwen.us> wrote:
>>>>>>>> 
>>>>>>>> To build unstable:
>>>>>>>> 
>>>>>>>> 1. Retrieve the latest .jhbuildrc-custom from the gnucash-on-osx repository.
>>>>>>>> 2. Edit ~/.jhbuildrc-custom to comment out the gnucash-stable prefix and modules and to uncomment the gnucash-unstable ones.
>>>>>>>> 3. Run jhbuild bootstrap
>>>>>>>> 4. Run jhbuild build
>>>>>>>> 
>>>>>>>> If you want a git checkout, uncomment the gnucash-git module instead of the gnucash-unstable module. That will build ‘master’, though be sure to look at https://github.com/jralls/gnucash-on-osx/blob/master/modulesets/gnucash.modules and note the instructions for boost; jhbuild doesn’t know how to build that. After running `jhbuild build` you can
>>>>>>>> 
>>>>>>>> 1. cd ~/gtk/source/gnucash-git
>>>>>>>> 2. git clean -fdx
>>>>>>>> 2. git checkout -b unstable -t origin/unstable
>>>>>>>> 3. jhbuild shell
>>>>>>>> 4. cd $PREFIX/..
>>>>>>>> 5. mkdir build/gnucash-git && cd build/gnucash-git
>>>>>>>> 6. cmake -DCMAKE_INSTALL_PREFIX=$PREFIX -DGTEST_ROOT=$JHBUILD_SOURCE/googletest/googletest -DGMOCK_ROOT=$JHBUILD_SOURCE/googletest/googlemock $JHBUILD_SOURCE/gnucash-git
>>>>>>>> 7. make && make install
>>>>>>>> 
>>>>>>>> To run tests, run 
>>>>>>>> make check
>>>>>>>> 
>>>>>>>> Regards,
>>>>>>>> John Ralls
>>>>>>>> 
>>>>>>>>> On Jan 29, 2018, at 3:33 PM, R. Victor Klassen <rvklassen at gmail.com> wrote:
>>>>>>>>> 
>>>>>>>>> So, the wiki is less than clear on how to do this.
>>>>>>>>> 
>>>>>>>>> First I tried going through the instructions under Building for Development beginning with
>>>>>>>>> 
>>>>>>>>> jhbuild shell
>>>>>>>>> cd $PREFIX/../src/gnucash-2.6.17
>>>>>>>>> But it turned out that there was no path with the prefix $PREFIX/../src
>>>>>>>>> 
>>>>>>>>> No src directory had yet been created under $PREFIX - this is a clean user account, with most of an attempt at building stable as the only thing in it.
>>>>>>>>> 
>>>>>>>>> So I skipped the uninstall, and made a guess as to where I was supposed to go with the cd ..
>>>>>>>>> 
>>>>>>>>> Then I ran
>>>>>>>>> 
>>>>>>>>> git clone -b maint https://github.com/Gnucash/gnucash.git
>>>>>>>>> Nearly giving up after a dozen or so failures to get the whole thing in one gulp.  Early morning seems best.
>>>>>>>>> 
>>>>>>>>> When I tried the autopen.sh && configure, it became clear that many dependencies weren’t in place.
>>>>>>>>> Many of the early dependencies complained about were to be found in my gnucash-stable tree, and as they were external tools I just linked them to the corresponding location, which got me somewhat further, but not everything was found still.
>>>>>>>>> 
>>>>>>>>> So I skipped to “Building Unstable Versions” and did the commenting and uncommenting recommended. 
>>>>>>>>> 
>>>>>>>>> I did a 
>>>>>>>>> 
>>>>>>>>> Jhbuild bootstrap
>>>>>>>>> 
>>>>>>>>> And then jhbuild build.
>>>>>>>>> 
>>>>>>>>> Which complained:
>>>>>>>>> 
>>>>>>>>> jhbuild build: A module called ''meta-gnucash-unstable'' could not be found.
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> At this point I tried 
>>>>>>>>> 
>>>>>>>>> $ jhbuild shell
>>>>>>>>> $ echo $PREFIX
>>>>>>>>> /Users/gnucashdev/gnucash-unstable
>>>>>>>>> $ cd $PREFIX/gnucash
>>>>>>>>> 
>>>>>>>>> $ ./configure --prefix=$PREFIX --enable-ofx --enable-aqbanking --enable-binreloc --enable-dbi --with-dbi-dbd-dir=$PREFIX/lib/dbd
>>>>>>>>> 
>>>>>>>>> This worked for awhile, but then I got a configure error:
>>>>>>>>> 
>>>>>>>>> configure: error: 
>>>>>>>>> You are building from git but swig was not found or too old.
>>>>>>>>> To build gnucash you need at least swig version 2.0.10.
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> _______________________________________________
>>>>>>>>> gnucash-devel mailing list
>>>>>>>>> gnucash-devel at gnucash.org
>>>>>>>>> https://lists.gnucash.org/mailman/listinfo/gnucash-devel
>>>> 
>>> 
>> 
> 



More information about the gnucash-devel mailing list