Missing glib/gobject when compiling
Edward Bridges
ebridges at eqbridges.com
Thu Nov 9 21:07:35 EST 2017
On Wed, Nov 8, 2017, at 11:00 PM, John Ralls wrote:
>
>
>> On Nov 8, 2017, at 6:57 PM, Edward Bridges
>> <ebridges at eqbridges.com> wrote:>>
>> On Wed, Nov 8, 2017, at 09:59 AM, John Ralls wrote:
>>>
>>>
>>>> On Nov 7, 2017, at 8:42 PM, Edward Bridges <ebridges at eqbridges.com>
>>>> wrote:>>>>
>>>> On Tue, Nov 7, 2017, at 10:26 AM, John Ralls wrote:
>>>>>
>>>>>
>>>>>> On Nov 6, 2017, at 6:27 PM, Edward Bridges
>>>>>> <ebridges at eqbridges.com> wrote:>>>>>>
>>>>>> On Mon, Nov 6, 2017, at 08:40 PM, Edward Bridges wrote:
>>>>>>>
>>>>>>> On Sun, Nov 5, 2017, at 10:39 PM, John Ralls wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>> On Nov 5, 2017, at 6:07 PM, Edward Bridges
>>>>>>>>> <ebridges at eqbridges.com> wrote:>>>>>>>>>
>>>>>>>>> I've built libdbdpgsql.so using jhbuild build libdbi-drivers,
>>>>>>>>> then run:>>>>>>>>>
>>>>>>>>> cp gnucash-stable/lib/dbd/libdbdpgsql.so \
>>>>>>>>> /Applications/Gnucash.app/Contents/Resources/lib/dbd
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> install_name_tool -change gnucash-stable/lib/libdbi.1.dylib \>>>>>>>>> /Applications/Gnucash.app/Contents/Resources/lib/libdbi.1.d-
>>>>>>>>> ylib \>>>>>>>>> /Applications/Gnucash.app/Contents/Resources/lib/dbd/libdbd-
>>>>>>>>> pgsql.so>>>>>>>>>
>>>>>>>>> I'm assuming that, then, when I start up Gnucash (v2.6.15) I
>>>>>>>>> would have>>>>>>>>> the
>>>>>>>>> option to "Save As..." to a Postgresql database option under
>>>>>>>>> "Data>>>>>>>>> Format"
>>>>>>>>> but it's not appearing, and am not seeing any logs under
>>>>>>>>> Console.>>>>>>>>>
>>>>>>>>> Thanks for your quick response earlier. Am I missing a step
>>>>>>>>> somewhere>>>>>>>>> here?
>>>>>>>>
>>>>>>>> I think you also need the pgsql client dylib in the bundle and
>>>>>>>> it would>>>>>>>> be better to use
>>>>>>>> @executable_path/../Resources/lib/libdbi.1.dylib rather>>>>>>>> than /Applications/Gnucash.app/Contents as that will allow you
>>>>>>>> to move>>>>>>>> the bundle.
>>>>>>>>
>>>>>>>> Use `otool -L
>>>>>>>> /Applications/Gnucash.app/Contents/Resources/lib/dbd/libdbdpgs-
>>>>>>>> ql.so` to>>>>>>>> make sure that your install_name_tool invocation did what you
>>>>>>>> want. I’m>>>>>>>> suspicious of the relative path in your install_name_tool
>>>>>>>> invocation.>>>>>>>>
>>>>>>>> Console doesn’t catch stderr anymore and hasn’t since Lion
>>>>>>>> (10.7). You>>>>>>>> can check the trace file (`sudo find /var/private/Temp -name
>>>>>>>> gnucash.trace` to get the path) but link errors might not get
>>>>>>>> into there>>>>>>>> either, so best to run GnuCash from a Terminal session:
>>>>>>>> /Applications/Gnucash.app/Contents/MacOS/Gnucash
>>>>>>>> so the stderr output goes where you can see it.
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>> John Ralls
>>>>>>>
>>>>>>> Hi John --
>>>>>>>
>>>>>>> Thanks for your help on this.
>>>>>>>
>>>>>>> When I run according to your instructions I get a brief error
>>>>>>> message>>>>>>> that libdbi is unable to load the driver -- and it still is not
>>>>>>> working>>>>>>> (see below). I could not find a gnucash.trace file under /var
>>>>>>> as well.>>>>>>>
>>>>>>> ```
>>>>>>> ~ $ /Applications/Gnucash.app/Contents/MacOS/Gnucash
>>>>>>> Application Path /Applications/Gnucash.app/Contents/MacOS/Gnucash-
>>>>>>> bin>>>>>>>
>>>>>>> (process:4934): gnc.gui-WARNING **: [mac_set_languages()]
>>>>>>> Language list:>>>>>>> en:en_US:C
>>>>>>> (null)
>>>>>>> libdbi: Failed to load driver:
>>>>>>> /Applications/Gnucash.app/Contents/Resources/lib/dbd/libdbdpgsq-
>>>>>>> l.so>>>>>>> ^C
>>>>>>>
>>>>>>> ~ $ otool -L
>>>>>>> /Applications/Gnucash.app/Contents/Resources/lib/dbd/libdbdpgsq-
>>>>>>> l.so>>>>>>> /Applications/Gnucash.app/Contents/Resources/lib/dbd/libdbdpgsq-
>>>>>>> l.so:>>>>>>> /Users/gnucash/gnucash-stable/lib/libpq.5.dylib (compatibility
>>>>>>> version 5.0.0, current version 5.9.0)
>>>>>>> /Users/gnucash/gnucash-stable/lib/libdbi.1.dylib (compatibility>>>>>>> version 3.0.0, current version 3.0.0)
>>>>>>> /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current>>>>>>> version 1252.0.0)
>>>>>>> ```
>>>>>>>
>>>>>>> Cheers,
>>>>>>> Ed
>>>>>>
>>>>>> Just noticed that `otool` is reporting that `libdbdpgsql.so`
>>>>>> under>>>>>> /Applications/Guncash.app is depending on `libdbi` and `libpq`
>>>>>> that live under the `gnucash` user home directory (i.e. that were
>>>>>> built>>>>>> along with libdbdpgsql.
>>>>>>
>>>>>> That may explain the failure to load the shared library (as the
>>>>>> user I>>>>>> ran
>>>>>> Gnucash as does not have access to the gnucash user home
>>>>>> directory).>>>>>>
>>>>>> However, I tried running it as root as well, and still get the
>>>>>> same>>>>>> error
>>>>>> message.
>>>>>
>>>>> What does `file /Applications/Gnucash.app/Contents/Resources/lib/-
>>>>> dbd/libdbdpgsql.so` return?>>>>>
>>>>> Regards,
>>>>> John Ralls
>>>>>
>>>>
>>>> It returns:
>>>>
>>>> /Applications/Gnucash.app/Contents/Resources/lib/dbd/libdbdpgsql.s-
>>>> o[1]: Mach-O 64-bit bundle x86_64>>> That’s the problem: Everything else is 32-bit. Change the
>>> setup_sdk() call in ~/.jhbuildrc-custom to>>> setup_sdk(architectures=[‘i386’])
>>> and rebuild everything.
>>>
>>> Another issue: Be sure to run
>>> install_name_tool -change /Users/gnucash/gnucash-
>>> stable/lib/libdbi.1.dylib \>>> @executable_path/../Resources/lib/libdbi.1.dylib \
>>> /Applications/Gnucash.app/Contents/Resources/lib/dbd/libdbdpgsq-
>>> l.so>>>
>>> (That’s all one command, note the ‘\’ at the end of the first two
>>> lines) so that GnuCash and libdbdpgsql are using the same instance
>>> of the library; weird memory errors are likely if they don’t.>>>
>>> Regards,
>>> John Ralls
>>
>> It appears that I don't have i386 MacOS development libraries
>> installed on my x86_64 system:>>
>> ld: warning: ignoring file /Applications/Xcode.app/Contents/Develope-
>> r/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/lib/l-
>> ibpq.tbd[2], missing required architecture i386 in file /Application-
>> s/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/S-
>> DKs/MacOSX10.13.sdk/usr/lib/libpq.tbd[3]>> Undefined symbols for architecture i386:
>> .
>> .
>> .
>> ld: symbol(s) not found for architecture i386
>> clang: error: linker command failed with exit code 1 (use -v to see
>> invocation)>>
>> Is that something that's readily available for download somewhere?
> No, but there’s a module for it in gnucash-on-osx/modules, so just
> build it.>
> Or try out 2.7.1 which is 64-bit and already has libdbd-pgsql in the
> bundle… but try it on a copy as it’s not even beta yet.>
> Regards,
> John Ralls
>
Hi John,
Using this .modules file:
https://github.com/Gnucash/gnucash-on-osx/blob/master/modulesets/gnucash.modules
It was not clear which module would satisfy the missing i386 libraries,
so I tried meta-gtk-osx-core, as that "sounded" right (LoL).
That did not work (`jhbuild build meta-gtk-osx-core`), ultimately
failing with the error: "Neither GTK+-2.0 nor GTK+-3.0 was found"
Before I go down the path of trying 2.7.1 -- would you clarify more
specifically what's meant by "there's a module for it in gnucash-on-
osx/modules, so just build it"?
Thanks!
Ed
Links:
1. http://gnucash.app/Contents/Resources/lib/dbd/libdbdpgsql.so
2. http://xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/lib/libpq.tbd
3. http://xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/lib/libpq.tbd
More information about the gnucash-devel
mailing list