[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