Building unstable on Mac

John Ralls jralls at ceridwen.us
Thu Feb 1 17:32:55 EST 2018


Yes, "refusing to switch a dirty tree" comes from xmlsec because it has configuration products committed into its repo. You can actually just 2 -- ignore and continue to configure.

The boost line should be "for i in `ls $PREFIX\lib\libboost*.dylib`..." just like the one underneath it. I changed that in git 2 months ago but forgot to change the wiki page. Fixed now.

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