[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