The build fails with the 3.1p2 release tarball with the following error:
/usr/bin/clang -DHAVE_CONFIG_H -I. -I../../../../src/include -I/usr/local/Cellar/libusb/1.0.20/include/libusb-1.0 -F/usr/local/Frameworks -I../include -I../../../owlib/src/include -fexceptions -Wall -W -Wundef -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wstrict-prototypes -Wredundant-decls -I/usr/local/Cellar/libusb/1.0.20/include/libusb-1.0 -D_THREAD_SAFE -D_FILE_OFFSET_BITS=64 -D_BSD_SOURCE=1 -D_ISOC99_SOURCE=1 -D_POSIX_C_SOURCE=200112L -Os -w -pipe -march=native -mmacosx-version-min=10.11 -DNO_NESTED_FUNCTIONS -D_BSD_SOURCE=1 -D_ISOC99_SOURCE=1 -D_POSIX_C_SOURCE=200112L -c owusbprobe.c
owusbprobe.c:22:10: fatal error: '../../../owlib/src/include/libusb.h' file not found
#include "../../../owlib/src/include/libusb.h"
The reason is that, at minimum, the following header files are missing:
module/owlib/src/include/libusb.h
module/owlib/src/include/ow_ftdi.h
If I copy only libusb.h from the git repository, the build fails with
libtool: compile: /usr/bin/clang -DHAVE_CONFIG_H -I. -I../../../../src/include -I/usr/local/Cellar/libusb/1.0.20/include/libusb-1.0 -F/usr/local/Frameworks -I../include -fexceptions -Wall -W -Wundef -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wstrict-prototypes -Wredundant-decls -D__EXTENSIONS__ -D_FILE_OFFSET_BITS=64 -D_BSD_SOURCE=1 -D_ISOC99_SOURCE=1 -D_POSIX_C_SOURCE=200112L -D_THREAD_SAFE -I/usr/local/Cellar/libusb/1.0.20/include/libusb-1.0 -Os -w -pipe -march=native -mmacosx-version-min=10.11 -DNO_NESTED_FUNCTIONS -D_BSD_SOURCE=1 -D_ISOC99_SOURCE=1 -D_POSIX_C_SOURCE=200112L -c ow_com.c -fno-common -DPIC -o .libs/ow_com.o
ow_com.c:15:10: fatal error: 'ow_ftdi.h' file not found
#include "ow_ftdi.h"
^
1 error generated.
Tht issue affects other files besides ow_com.c (i.e., all of them include ow_ftdi.h). This also revealed a related issue, which is that ow_ftdi.h is included even if ftdi is disabled in configure, but that's not a huge deal if the file were actually in the tarball.
If I copy both libusb.h and ow_ftdi.h from the git repository, then the build succeeds.
Some of the other header files from module/owlib/src/include may also be missing, but I have some options disabled so I'm not able to say for sure which ones, if any.
The build succeeds if I use the git repository and bootstrap with Autotools, etc.
Also, the issue in https://sourceforge.net/p/owfs/mailman/message/30219156/ is still not fixed on macOS.
Should be fixed in v3.1p3. Thanks for reporting and sorry for the inconvenience.
About the MacOS bug, currently looking for someone from the team who has access to a machine so he can fix this.
@tkkasse no problem at all. Thanks for being so responsive. Regarding the macOS bug, the original homebrew pull request where it first came up is here:
https://github.com/Homebrew/legacy-homebrew/pull/16595
So just a heads up that it's necessary for swig, python, etc. etc. to be enabled to trigger it, in case there's any trouble reproducing it at first.
Some say all these bugs are introduced deliberately to get in touch with users. (^.–)
The swig/python interface is very outdated, most people are using ownet based bindings today, or implementing the owserver protocol themselves. But we should fix it anyway. Or get rid of swig/python in favor of a more popular python binding.
On 08.08.2016 15:53, Jan Kandziora wrote:
Do any of these even exist? Do we need to spend time and effort
maintaining these things (not to mention bugs when an interpreter gets
confused by our threads)?
I move to remove these things.
Use owserver. Let everything else access the bus through owserver. Finished.
I'd even support removing direct access of the bus with owhttp or
owshell or whatever.
--
-- Matthias Urlichs
On 08.08.2016 19:41, Matthias Urlichs wrote:
--
-- Matthias Urlichs
Am 08.08.2016 um 19:41 schrieb Matthias Urlichs:
Kind regard
Hehe. I'm actually one of the homebrew maintainers and a script I run to detect updates found your new 3.1p2 release :)
Our current install method for Homebrew is the following:
Are there options there you'd "ideally" like to see added or removed? It would be really helpful to know what the "desired" upstream configuration is.
In any case, I was able to forgo the patching in https://github.com/Homebrew/homebrew-core/pull/3688 and I shipped https://github.com/Homebrew/homebrew-core/pull/3707 instead. But I'd be more than happy to alter the configuration and push out new bottles if you have any thoughts on how you'd like to see configure tweaked.
Don't do --disable-debug. There is the runtime switch --debug which enables debug. Only if the small time for testing that switch bothers you (unlikely), you can --disable-debug. Don't do that! Reason is we have no chance to debug any user problems if you --disable-debug.
The recommended configuration is using owserver as the owlib linking driver component, and all other tools accessing owserver instead of having owlib linked to them. The owshell tools should be there as a minium client suite. Who ever needs the language bindings can compile himself.
And how about the libusb/ftdi stuff? Should that be enabled?
I've opened https://github.com/Homebrew/homebrew-core/pull/3710 to remove
--disable-debug. Feel free to comment on that PR (or here) if there are additional tweaks you'd like.Does this even work on MacOS?
ftdi support has been tested on MacOS, and works, yes.
I've updated the formula to be
so that turns on debug, usb, and ftdi. Let me know if you'd like any other tweaks!