Re: can't compile on MacOS

Subject: Re: can't compile on MacOS

Date: Tue, 12 Nov 2024 11:02:46 +0100

To: Felipe Contreras

Cc: notmuch@notmuchmail.org

From: Michal Sapka



On Mon, Nov 11, 2024, at 1:43 PM, Felipe Contreras wrote:
> It's not just CFLAGS, you need to set LIBPATH too. According to the
> Makefile that should work. Did you try adding V=1 too? What's the
> final link command?
>
> make -C bindings/ruby V=1 CFLAGS='-g -O2 -pipe -fno-plt -fPIC
> -I/opt/homebrew/Cellar/talloc/2.4.2/include' LIBPATH='-L. -L/usr/lib
> -L/opt/homebrew/Cellar/talloc/2.4.2/lib'
>
> -- 
> Felipe Contreras

I cleaned the entire local repo dir

./configure:

Welcome to Notmuch, a system for indexing, searching and tagging your email.

We hope that the process of building and installing notmuch is quick
and smooth so that you can soon be reading and processing your email
more efficiently than ever.

If anything goes wrong in the configure process, you can override any
decisions it makes by manually editing the Makefile.config file that
it creates. Also please do as much as you can to figure out what could
be different on your machine compared to those of the notmuch
developers. Then, please email those details to the Notmuch list
(notmuch@notmuchmail.org) so that we can hopefully make future
versions of notmuch easier for you to use.

We'll now investigate your system to verify that all required
dependencies are available:

Sanity checking C compilation environment... OK.
Sanity checking C++ compilation environment... OK.
C compiler supports address sanitizer... Yes.
C compiler supports thread sanitizer... minimal(22043,0x2057f8f40) malloc: nano zone abandoned due to inability to reserve vm space.
Yes.
Reading libnotmuch version from source... OK.
Checking for Xapian development files (>= 1.4.0)... Yes (1.4.26).
Checking for GMime development files (>= 3.0.3)... Yes.
Checking for GMime session key extraction support... OK.
Checking for GMime X.509 certificate validity... Yes.
Checking whether GMime emits email addresses with angle brackets... No.
Checking signature verification when decrypting using session keys... Yes.
Checking for Glib development files (>= 2.22)... Yes.
Checking for zlib (>= 1.2.5.2)... Yes.
Checking for talloc development files... Yes.
Checking for bash... Yes (/bin/bash).
Checking for perl... Yes (/usr/bin/perl).
Checking for python... Yes (python3).
Checking for python3 (>= 3.5)...Yes.
Checking for python3 version ...(3.13)
Checking for python 3.13 development files...Yes.
Checking for python3 cffi and setuptools... Yes.
Checking for python3 pytest (>= 3.0)... No (will not test CFFI-based python bindings).
Checking for valgrind development files... No (but that's fine).
Checking for bash-completion (>= 1.90)... No (will not install bash completion).
Checking for sfsexp... No (will not enable s-expression queries).
Checking if emacs (>= 25) is available... Yes.
Checking if doxygen is available... No (so will not install api docs)
Checking for ruby development files... Yes.
Checking if sphinx is available and supports nroff output... No (so will not install man pages).
Checking if makeinfo is available... Yes.
Checking if install-info is available... Yes.
Checking if desktop-file-install is available... No (so will not install .desktop file).
Checking for cppcheck... No.
Checking which platform we are on... Mac OS X.
Checking for canonicalize_file_name... No (will use our own instead).
Checking for getline... Yes.
Checking for strcasestr... Yes.
Checking for strsep... Yes.
Checking for timegm... Yes.
Checking for 64 bit time_t... Yes.
Checking for dirent.d_type... Yes.
Checking for standard version of getpwuid_r... Yes.
Checking for standard version of asctime_r... Yes.
Checking for rpath support... No (nothing to worry about).
Checking for -Wl,--as-needed... No (nothing to worry about).
Checking for -Wl,--no-undefined... No (nothing to worry about).
Checking for available C++ compiler warning flags... 
	-Wall -Wextra -Wwrite-strings
Checking for available C compiler warning flags... 
	-Wall -Wextra -Wwrite-strings -Wmissing-declarations

All required packages were found. You may now run the following
commands to compile and install notmuch:

	make

--------------

sudo make -C bindings/ruby V=1 CFLAGS='-g -O2 -pipe -fno-plt -fPIC -I/opt/homebrew/Cellar/talloc/2.4.2/include' LIBPATH='-L. -L/usr/lib -L/opt/homebrew/Cellar/talloc/2.4.2/lib':

make: Nothing to be done for `all'.

------------
but the above without specyfing the -C bindings/ruby finished 

(...)

Loading /Users/msapka/ghq/git.notmuchmail.org/git/notmuch/emacs/notmuch-tag.el (source)...
emacs --quick -batch -L emacs -l rstdoc -f rstdoc-batch-extract emacs/coolj.el emacs/coolj.rsti
Loading /Users/msapka/ghq/git.notmuchmail.org/git/notmuch/emacs/coolj.el (source)...
emacs --quick -batch -L emacs -l rstdoc -f rstdoc-batch-extract emacs/notmuch-print.el emacs/notmuch-print.rsti
Loading /Users/msapka/ghq/git.notmuchmail.org/git/notmuch/emacs/notmuch-print.el (source)...
emacs --quick -batch -L emacs -l rstdoc -f rstdoc-batch-extract emacs/notmuch-version.el emacs/notmuch-version.rsti
Loading /Users/msapka/ghq/git.notmuchmail.org/git/notmuch/emacs/notmuch-version.el (source)...
emacs --quick -batch -L emacs -l rstdoc -f rstdoc-batch-extract emacs/notmuch-jump.el emacs/notmuch-jump.rsti
Loading /Users/msapka/ghq/git.notmuchmail.org/git/notmuch/emacs/notmuch-jump.el (source)...
emacs --quick -batch -L emacs -l rstdoc -f rstdoc-batch-extract emacs/notmuch-company.el emacs/notmuch-company.rsti
Loading /Users/msapka/ghq/git.notmuchmail.org/git/notmuch/emacs/notmuch-company.el (source)...
emacs --quick -batch -L emacs -l rstdoc -f rstdoc-batch-extract emacs/notmuch-draft.el emacs/notmuch-draft.rsti
Loading /Users/msapka/ghq/git.notmuchmail.org/git/notmuch/emacs/notmuch-draft.el (source)...
Missing sphinx or makeinfo, not building info pages

Compilation of notmuch is now complete. You can install notmuch with:

	make install


---------

then I can install

sudo make install
Missing sphinx or makeinfo, not building info pages
No sphinx, will not install man pages.
Missing prerequisites, not installing info pages
mkdir -p "/usr/local/lib/"
install -m0644 "lib/libnotmuch.5.6.0.dylib" "/usr/local/lib/"
ln -sf libnotmuch.5.6.0.dylib "/usr/local/lib/libnotmuch.5.dylib"
ln -sf libnotmuch.5.6.0.dylib "/usr/local/lib/libnotmuch.dylib"
mkdir -p "/usr/local/include"
install -m0644 "./lib/notmuch.h" "/usr/local/include/"
install-completion
mkdir -p "/usr/local/share/zsh/site-functions"
install -m0644 ./completion/zsh/_notmuch ./completion/zsh/_email-notmuch "/usr/local/share/zsh/site-functions"
mkdir -p "/usr/local/share/emacs/site-lisp"
install -m0644 emacs/notmuch-lib.el emacs/notmuch-compat.el emacs/notmuch-parser.el emacs/notmuch.el emacs/notmuch-query.el emacs/notmuch-show.el emacs/notmuch-tree.el emacs/notmuch-wash.el emacs/notmuch-hello.el emacs/notmuch-mua.el emacs/notmuch-address.el emacs/notmuch-maildir-fcc.el emacs/notmuch-message.el emacs/notmuch-crypto.el emacs/notmuch-tag.el emacs/coolj.el emacs/notmuch-print.el emacs/notmuch-version.el emacs/notmuch-jump.el emacs/notmuch-company.el emacs/notmuch-draft.el "/usr/local/share/emacs/site-lisp"
install -m0644 emacs/notmuch-lib.elc emacs/notmuch-compat.elc emacs/notmuch-parser.elc emacs/notmuch.elc emacs/notmuch-query.elc emacs/notmuch-show.elc emacs/notmuch-tree.elc emacs/notmuch-wash.elc emacs/notmuch-hello.elc emacs/notmuch-mua.elc emacs/notmuch-address.elc emacs/notmuch-maildir-fcc.elc emacs/notmuch-message.elc emacs/notmuch-crypto.elc emacs/notmuch-tag.elc emacs/coolj.elc emacs/notmuch-print.elc emacs/notmuch-version.elc emacs/notmuch-jump.elc emacs/notmuch-company.elc emacs/notmuch-draft.elc "/usr/local/share/emacs/site-lisp"
mkdir -p "/usr/local/share/emacs/site-lisp"
install -m0644 ./emacs/notmuch-logo.svg "/usr/local/share/emacs/site-lisp"
mkdir -p "/usr/local/bin/"
sed "1s|^#!.*|#! /bin/bash|" < emacs/notmuch-emacs-mua > /usr/local/bin/notmuch-emacs-mua
chmod 755 /usr/local/bin/notmuch-emacs-mua
mkdir -p "/usr/local/bin/"
install notmuch-shared "/usr/local/bin/notmuch"

Notmuch is now installed to /usr/local

New users should simply run "notmuch" to be guided
through the process of configuring notmuch and creating
a database of existing email messages. The "notmuch"
command will also offer some sample search commands.

Beyond the command-line interface, notmuch also offers
a full-featured interface for reading and writing mail
within emacs. To use this, each user should add the
following line to the ~/.emacs file:

	(require 'notmuch)

And then run emacs as "emacs -f notmuch" or invoke
the command "M-x notmuch" from within emacs.

--------

I can now use 'notmuch' from IRB, so everything is woring!

--------

guess the problem was that I didn't notice that "make clean" left some files cached:

_check_email.dSYM/ 
_check_session_keys.dSYM/    
_check_x509_validity.dSYM/    
_libversion.dSYM/   
_verify_sig_with_session_key.dSYM/    
minimal.dSYM/  

--------

Thanks You!
Michal
_______________________________________________
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-leave@notmuchmail.org

Thread: