OSX Build problems

Jeroen Massar jeroen at massar.ch
Tue Mar 15 10:42:21 PDT 2016


[TLDR: Full intent to provide proper patches, but I need it then to
build first as then I can debug the real problem: why the heck I get
segfaults when just running the tool and asking it to download from my
watch ;)  --- note the smileys and good intentions throughout... ]

On 2016-03-15 18:20, Dirk Hohndel wrote:
> On Tue, Mar 15, 2016 at 04:32:37PM +0100, Jeroen Massar wrote:
>>>>
>>>> There are errors while building libdivecomputer, it tries also to
>>>> build examples/dctool_parse.c where in calls of the type
>>>> VENDOR_MODEL_parser_create a fourth parameter “serial” is missing. But
>>>> I guess since this is an example this is save to ignore.
>>>
>>> It is. But the best is to just remove the useless build of the
>>> examples... in the build.sh add "--disable-examples" to the configure
>>> call for libdivecomputer
>>>
>>>> More serious is in subsurface/scripts/build.sh
>> [..]
>>>> This does not find ~/Qt/5.5 for me on my Macs.
>>
>> I've been attempting to build subsurface also for a bit, with little
>> success. The dctool indeed hit me, but as per IRC, that was easily
>> circumvented... The QT thing seems to be way more annoying though.
> 
> The funny thing is - we have about four people (optimistically speaking)
> who build on Mac and two who build for Windows (one ON Windows). So to me
> it constantly feels like I am spending a LOT of time on making sure
> everyone can build for not a lot of value.

Understood, hence why my target is to, when the build works, do a clean
build to make sure the build instructions are sane for everybody who
follows and provide those details so that it can be replicated.

> In general I appreciate patches or concise bug reports from those who
> actually try to do builds and for whom the builds fail.

Yep, full ack on that.

I just did not get a full build going yet, and as I noticed the patch
for the path of Qt, thought I add my few intermediary cents just in case
somebody else knew how to attack the problem.

>> My current list of homebrew build depends is quite a bit more than on
>> the website:
>> brew qt5 install automake autoconf libtool libusb libssh2 pkgconfig hidapi
> 
> So let's fix that.
> Oh, that's not complete, either. It misses asciidoc (ok, I guess one could
> call that optional) and cmake (definitely not optional).
> 
> OK, done.

Great, thanks.

As noted, will test on an empty OSX install and then record all the
individual steps when I get it build, thus making sure that rebuilding
will be easy peasy for everybody in the future.

>> The QT part I fixed in my build with (build.sh):
>> 8<-------------------
>>         elif [ -d "~/Qt/5.6" ] ; then
>>                 export CMAKE_PREFIX_PATH=~/Qt/5.6/clang_64/lib/cmake
>> +       elif [ -d /usr/local/opt/qt5/lib ] ; then
>> +               export CMAKE_PREFIX_PATH=/usr/local/opt/qt5/lib/cmake
> 
> Is that the default path with homebrew? I have my own Qt installation
> instead of the homebrew one

Homebrew does not touch user's home dirs, it installs systemwide, thus
/usr/local/Cellar/qt5/5.5.1_2/ for that version, with symlinks in
/usr/local/ in various places to glue that all in place.

I think this is also likely where a lot of differences in the build can
occur: people using "local Qt" and then "homebrew" and then of course
lingering files. Hence my intent of a "clean" OSX install to make sure
we catch all the corners. As noted, proper patches to follow...

[..]
>> The next problem though seems to be with libxml... apparently some
>> include path is not being passed properly $somewhere... (and I have
>> never been a fan of either autoconf/automake let alone cmake... but the
>> fact that build.sh exists and does not catch several dependencies being
>> missing underscores what I think about those "tools")
> 
> So fix them. It builds for me. It builds for Robert, it builds for Tomaz.
> So if it doesn't build for you let's figure out why and fix it. The
> passive aggressive '...what I think about those "tools"' doesn't really
> encourage me to go out of my way to guess what might be wrong for you.

I primarily noted that in the style of "I have a learning curve to
figure out what the heck is going wrong" :)

And I agree with your sentiment btw, fully understood. While tool X
might not be my ideal thing, it will just be another thing to figure out
and learn about.

[..]
>> (Real path is of course the magically long
>> version:
>> /Application/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2/
>> )
> 
> Oh well, let me guess anyway... I'm picking it up from homebrew it seems:
> 
> -I/usr/local/Cellar/libxml2/2.9.3/include/libxml2
> 
> Which makes me think that this might needed on the brew install line above
> as well.

Well, there is indeed homebrew libxml (if one installs that) and then
the system one.

The system one (well, Xcode) lives in the above path, seems the dylib is:
 -rwxr-xr-x  1 root  wheel  2395024 Jan 14 03:05 libxml2.2.dylib

Thus that might run a bit behind 2.9.

Cmake/configure is picking it up though for subsurface, but the actual
compile then fails in the end.


>>>> I really don’t speak shell but it seems in that in the file test ~ is
>>>> not interpolated properly. If I replace it by $HOME it works. Here is
>>>> a patch that does this.
>>>
>>> Odd - it worked one of my Macs, but fails on the others. I don't think I
>>> installed a different shell but it's possible...
>>>
>>> Can you send a second patch to fix the problem above?
>>
>> Watch out that one is really using "bash" and not any other kind of
>> shell when executing the build.sh, as that might make a huge difference...
> 
> So call 
> 
> bash ./scripts/build.sh

The 'use bash' suggestion was a comment on the $HOME patch that is the
start of this thread.

I am using the bash call, as that is what is in the instructions (the
INSTALL file in the repo).

> Again - how much time do you think I want to spend on making sure this
> works out of the box on every OS on the face of the planet? 

As much time till it works consistently as it is in.

Hence why I noted to use a empty/clean OSX Install to make sure that it
works.

> Versus time I
> spend on working on the code, on releases, on the website, on the backend
> server, on answering support questions and on oh five hundred other things.
> 
> Complaining is cheap.

Please note that I was not complaining AT ALL...

I was only providing initial feedback on a similar issue that obviously
somebody else was running into too.

> $ git shortlog -s -n | egrep -i "jeroen|massar"
> 
> $ git shortlog -s -n | grep -i "hohndel"
>   3799  Dirk Hohndel

Not a fair comparison really, me being the new user trying to help out.

I am fully fully fully aware of who sticks time in the code and
appreciate it immensely.

Hence why I am trying to ___dive__ in and provide some initial details.

As I noted, proper patch requests etc to follow.... but first got to
make it compile properly, then I'll make a clean VM and document what
steps are missing, what goes wrong and make patches based on that.

Greets,
 Jeroen



More information about the subsurface mailing list