[Bug 253447] devel/libphonenumber: build error for can not find 'google/protobuf/inlined_string_field.h'
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Wed Apr 21 10:45:49 BST 2021
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=253447
Adriaan de Groot <adridg at freebsd.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |adridg at freebsd.org
Resolution|--- |Not Accepted
Status|New |Closed
--- Comment #4 from Adriaan de Groot <adridg at freebsd.org> ---
To add to what Tobias said: on Linux "everything" lives in `/usr/include`,
which isn't explicitly added as an include path. It's implicitly a
system-include path, just like on FreeBSD. But because we install all the
non-system headers in `/usr/local/include`, that path needs to be added to the
header search-path. That can be done with `-I` or `-isystem`, and as soon as
that happens, it is both explicit, and somewhere specific in the search-order.
So any package on FreeBSD that installs headers to `/usr/local/include` *and
also* has any dependency with headers in `/usr/local/include` has a problem:
the `-I` for `/usr/local/include` must come **after** any `-I` for the
package's internal headers.
Setting that up is something that very few package-build-system do (e.g. you
need to be very very careful in handling include paths, whether you use
autoconf, cmake or something else). Each individual package needs patching /
massaging to get that right.
And that's why "build in a clean environment" is the recommended and
inexpensive workaround, and why patches for specific ports are welcome.
libphonenumber is special, the build is also full of race-conditions, but
that's because Google is awful.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the kde-freebsd
mailing list