The uuid headers and functions are provided by macOS via
not via libuuid. So requiring libuuid on macOS, as is now what's happening with 2.13.0, is unnecessary.
I can work around it by setting
UUID_CFLAGS = " "
UUID_LIBS = " "
and removing uuid from PKGCONFIG_REQUIRES_PRIVATELY.
Hm, is it API-compatible with libuuid's?
This is uuid/uuid.h https://gist.github.com/ilovezfs/df61c1e98109cf557ae33e37ce552884
hmm, the prototypes of uuid_parse/unparse seems a bit different. just wonder if we should have compat functions for them.
Created attachment 137886 [details] [review]
How about this?
It works but will opportunistically use ossp-uuid if it's installed. Is that desirable? And how would you tell it to use system uuid even if ossp-uuid is installed?
(In reply to ilovezfs from comment #5)
> It works but will opportunistically use ossp-uuid if it's installed. Is that
> desirable? And how would you tell it to use system uuid even if ossp-uuid is
In theory, you could simply set empty values to both UUID_CFLAGS and UUID_LIBS as you initially worked around. essentially speaking, this isn't to give one an option to choose what impl one prefer for uuid but is to avoid the build failure on checking the availability of uuid.pc even though it can be built without the external library.
I may add an option to configure if there are any platforms that have the external uuid library installed on the non-standard directory and without .pc. but is there any platforms like that?
Right, but the .pc still ended up claiming it needed uuid despite setting those to " ".
Sure. we should stop adding uuid to PKGCONFIG_REQUIRES_PRIVATELY if both UUID_CFLAGS and UUID_LIBS is set empty. then everything should be fine.
>if there are any platforms that have the external uuid library installed on the non-standard directory
I think it's /usr/include/uuid.h on FreeBSD. See https://github.com/firehol/netdata/issues/1644
That one may have a different API, though.
Aha. thanks. but that can be fixed as it suggested there. so I'm assuming they could build it with this fix (+ replacing #include <uuid/uuid.h> to <uuid.h>) if uuid functions is in the standard C library.
Yup. So this is probably fine as-is.
should be better in git now. will fix further more when one found another issue around this. anyway, as defining _CFLAGS and _LIBS are the standard way to stop looking at .pc in pkgconfig, we will follow it up that way.