[MacPorts] #63274: notmuch: build conflict declared against itself, forcing users to deactivate before updating
MacPorts
noreply at macports.org
Mon Jul 26 07:14:05 UTC 2021
#63274: notmuch: build conflict declared against itself, forcing users to
deactivate before updating
----------------------+----------------------
Reporter: mascguy | Owner: mascguy
Type: defect | Status: assigned
Priority: Normal | Milestone:
Component: ports | Version:
Resolution: | Keywords:
Port: notmuch |
----------------------+----------------------
Comment (by ryandesign):
As you can see from my [changeset:81bae046e0ad7938ef0fbb104041fa4256cc4e8f
/macports-ports commit message] this was done to "prevent build conflict
when previous version of notmuch is active".
This type of build conflict usually happens when the build system has its
`-I` flags in the wrong order. `-I/opt/local/include` is probably
appearing in the compile lines before the `-I` flags that reference the
build directories, and it must be the other way around.
We can see this is indeed the case by looking at a recent
[https://build.macports.org/builders/ports-
11_arm64-builder/builds/26603/steps/install-port/logs/stdio build log]:
the first compile line is:
{{{
/usr/bin/clang -c -DNOTMUCH_VERSION=0.32.2 -I/opt/local/include
-isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk -pipe -Os
-isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk -arch arm64
-Wall -Wextra -Wwrite-strings -Wmissing-declarations -I./util -I./compat
-I./lib -fPIC -fvisibility=hidden -I./parse-time-string -I. -D_REENTRANT
-I/opt/local/include/gmime-3.0 -I/opt/local/include/glib-2.0
-I/opt/local/lib/glib-2.0/include -DHAVE_VALGRIND=0 -DHAVE_GETLINE=1
-DWITH_EMACS=0 -DHAVE_CANONICALIZE_FILE_NAME=0 -DHAVE_STRCASESTR=1
-DHAVE_STRSEP=1 -DHAVE_TIMEGM=1 -DHAVE_D_TYPE=1 -DSTD_GETPWUID=1
-DSTD_ASCTIME=1 -DSILENCE_XAPIAN_DEPRECATION_WARNINGS
-DHAVE_XAPIAN_DB_RETRY_LOCK=1 command-line-arguments.c -o command-line-
arguments.o -MD -MP -MF .deps/command-line-arguments.d
}}}
We see `-I/opt/local/include` preceding `-I./util -I./compat -I./lib` and
`-I./parse-time-string -I.`.
If you want to work on fixing it, that's what to work on. It's usually an
upstream issue, so your fix should be reported to the project's
developers.
Instead of fixing that, it can often be worked around by using:
{{{
configure.cppflags-replace -I${prefix}/include -isystem${prefix}/include
}}}
All paths specified with `-isystem` will be searched after all paths
specified with `-I`.
--
Ticket URL: <https://trac.macports.org/ticket/63274#comment:6>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list