aboutsummaryrefslogtreecommitdiff
path: root/configure
AgeCommit message (Collapse)Author
2019-05-20configure: Ensure that GMime can extract session keysDaniel Kahn Gillmor
GMime 3.0 and higher can extract session keys, but it will *not* extract session keys if it was built with --disable-crypto, or if it was built against GPGME version < 1.8.0. Notmuch currently expects to be able to extract session keys, and tests will fail if it is not possible, so we ensure that this is the case during ./configure time. Part of this feels awkward because notmuch doesn't directly depend on gpg at all. Rather, it depends on GMime, and the current implementation of GMime depends on GPGME for its crypto, and GPGME in turn depends on gpg. So the use of gpg in ./configure isn't actually introducing a new dependency, though if a future version of GMime were ever to move away from GnuPG, we might need to reconsider. Note that this changeset depends on id:20190506174327.13457-1-dkg@fifthhorseman.net , which supplies the rfc822 message test/corpora/crypto/basic-encrypted.eml used in it. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-05-03gmime-cleanup: no longer need to use GMime major version during buildDaniel Kahn Gillmor
Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-05-03gmime-cleanup: always support session keysDaniel Kahn Gillmor
Our minimum version of GMime 3.0 always supports good session key handling. signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-05-03build: drop support for gmime-2.6David Bremner
GMime 3.0 is over 2 years old now, and 2.6 has been deprecated in notmuch for about 1.5 years. Comments and documentation no longer need to refer to GMime 2.6, so clean them all up. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-03-12Add a configure flag to disable rpathsLuis Ressel
Better support build environments where our /sbin/ldconfig based heuristic does not work (e.g. some musl libc based systems).
2019-02-01Merge tag '0.28.1'David Bremner
notmuch 0.28.1 release
2019-02-01configure: don't use special variable BASHDavid Bremner
bash, in it's wisdom, sets that variable when invoked as /bin/sh, but then doesn't act as bash, at least not to the degree we need to run scripts.
2019-01-25configure: check that the version of emacs we may have is at least 24Tomi Ollila
This also effectively drops support to Emacs version 23, which was deprecated in version 0.23.2 (2016-11-20) and did not entirely work any more.
2018-09-18configure: absolute path of perlDavid Bremner
This can be used to set shebang lines during install.
2018-09-18configure: absolute path of bashDavid Bremner
This can be used to set shebang lines during install.
2018-05-31configure: check for links to/from libdir in ldconfig outputDavid Bremner
If e.g. /lib is a link to /usr/lib, then the latter may not show up in the way we expect in the output of ldconfig. 'test foo -ef bar' checks if foo and bar have the same device and inode numbers. Since (at least in bash, dash, ksh, and zsh) the shell dereferences symlinks before applying the test, this includes both the case where file1 is equal to file2 and the case where one is a symlink to the other.
2018-05-26configure: set 'infodir'David Bremner
This turns --infodir from an ignored option into a real one
2018-05-26configure: check for makeinfo and install-infoDavid Bremner
These are needed to build and install (respectively) the info format documentation.
2018-05-10build: Allow user to specify ruby executableThomas Schneider
This way, one can build for a different Ruby than $PATH/ruby (e. g. different versions, or Ruby in other paths). Signed-off-by: Thomas Schneider <qsx@chaotikum.eu>
2018-05-03move more http -> httpsDaniel Kahn Gillmor
Correct URLs that have crept into the notmuch codebase with http:// when https:// is possible. As part of this conversion, this changeset also indicates the current preferred upstream URLs for both gmime and sup. the new URLs are https-enabled, the old ones are not. This also fixes T310-emacs.sh, thanks to Bremner for catching it.
2017-12-08Merge branch 'release'David Bremner
Conflicts: NEWS Add in NEWS from point release
2017-12-08crypto: signature verification reports valid User IDsDaniel Kahn Gillmor
When i'm trying to understand a message signature, i care that i know who it came from (the "validity" of the identity associated with the key), *not* whether i'm willing to accept the keyholder's other identity assertions (the "trust" associated with the certificate). We've been reporting User ID information based on the "trust" associated with the certificate, because GMime didn't clearly expose the validity of the User IDs. This change relies on fixes made in GMime 3.0.3 and later which include https://github.com/jstedfast/gmime/pull/18.
2017-12-07cli/help: give a hint about notmuch-emacs-muaDaniel Kahn Gillmor
"notmuch help" doesn't mention "notmuch-emacs-mua" even though we support it through the try_external_command() mechanism. In addition, "notmuch help emacs-mua" doesn't work, even though we ship the appropriate manpage. This changeset fixes both of these problems.
2017-12-07debian/control: build-depend on python3-sphinx instead of python-sphinxDaniel Kahn Gillmor
python2 is going to be deprecated, and python3-sphinx is available all the way back to oldoldstable. let's use the more modern version. To make this work and still ship the manpages, tell ./configure to prefer python3 over python, if it exists.
2017-12-04configure: session key handling in gmime maps to built_with("session_key")Daniel Kahn Gillmor
This flag should make it easier to write the code for session-key handling. Note that this only works for GMime 2.6.21 and later (the session key interface wasn't available before then). It should be fine to build the rest of notmuch if this functionality isn't available. Note that this also adds the "session_key" built_with() aspect to libnotmuch.
2017-10-21build: don't copy the test directory for out-of-tree buildsJani Nikula
It should now work without.
2017-08-31build: fix unbound variable in configureJan Malakhovski
Commentary by db: This missing initialization caused configure to crash, and hence the build to fail in environments without cppcheck.
2017-08-29build: add target to run cppcheckDavid Bremner
The advantage of having a target as opposed to running cppcheck by hand - reuse list of source files - output errors in a format parsable, e.g. by emacs - returns exit code 1 on any error, for possibly use in other targets. For the moment, leave this as an optional target. If desired, it can be added to e.g. the release targets in the same way as the test target. Using two levels of directory for the stamps is arguably overengineering, but it doesn't really cost anything, and leaves open the possibility of putting other kinds of stamp files there. This only checks "new" source files (w.r.t. their last check). A future target (cppcheck-all ?) could blow away the stamp files first.
2017-05-31test: define GMime version dependant breakageDavid Bremner
We have some tests where the gmime 3 behaviour seems like a bug fix, others where it's less clear, so we allow both possibilities.
2017-05-31configure: add optional support for gmime-3.0David Bremner
This is only the changes to make configure work; it won't compile with gmime-3.0 yet.
2017-04-14configure: Be more verbose when compiler sanity checks failTomi Ollila
When configure could not get past initial compiler sanity check the user was left with no explanation why this happened (usually the reason is that compilers are not installed). By printing the executed command line and re-executing it without output redirection user gets better information how to proceed (or ask for help) to resolve this problem. The shell builtin 'printf' is used to print the executed command line to ensure verbatim output.
2017-03-25configure: change default bash completion location to /usr/shareDavid Bremner
At least Fedora and Debian now use /usr/share/bash-completion/completions now. Apparently /etc/bash_completion.d will be phased out at some point in the future.
2017-03-25tests: add compatibility layerMikhail
Make test-lib-common.sh load test-lib-<$PLATFORM>.sh to create additional shim for platform specifics. Use test-lib-FREEBSD.sh to call GNU utilities instead of native ones. - amended by db following Tomi's suggestions
2017-03-12fix out of tree buildTomi Ollila
In addition to use ${srcdir} and deliver ${NOTMUCH_SRCDIR} where needed, source from ruby bindings had to be copied to the out-of-tree target directory -- if the source files in source directory were referenced in build and there were also built object files there, those could have been considered as target files (and then not found when attempting to create bindings/ruby/notmuch.so).
2017-03-12configure: add ${NOTMUCH_SRCDIR} -- absolute path to notmuch sourceTomi Ollila
The ${srcdir} -- usually relative path to notmuch source -- works fine in current ./configure and all makefiles. To have simple access to notmuch source in tests and out of tree builds holding absolute path to the source directory is useful.
2017-03-09configure: removed $zlib_(cflags|ldflags) from compat code buildTomi Ollila
When pkg-config does not find configure, a compat version of the zlib.pc is created. In creation of that configure attempted to read values of $zlib_cflags and $zlib_ldflags. In the usual case those were undefined, and with `set -a` now in the beginning of configure, configure broke. Even if $zlib_cflags and $zlib_ldflags had values which were used to create zlib.pc, the values were overwritten (with static content) a few lines later in next pkg-config --cflags and --libs run. These values would not be different and probably useless -- the following boild would probably fail. But instead of using those, CPATH and LIBRARY_PATH environment variables can be used successfully (both while configuring and building).
2017-02-28Merge branch 'release'David Bremner
Second gnugpg test suite fix
2017-02-27Revert "configure: add test for gpgconf --create-socketdir"David Bremner
This reverts commit 12f7d4e61d30fb9a5c99e128ab1aab0bf069cdb4. Since we're not using gpgconf anymore, drop the unneeded test in configure.
2017-02-21Merge branch 'release'David Bremner
Merge changes to use gpgconf --create-socketdir
2017-02-21configure: add test for gpgconf --create-socketdirDavid Bremner
This is primarily intended for use in the test suite (since notmuch builds fine without gnupg installed). Thus we only write the variable to sh.config.
2017-01-09configure: remove leftover byte order test cleanupJani Nikula
Removing the removal of byteorder configure test files was overlooked in commit 5a957c3f33e6 ("build & util: drop byte order configure check and endian util header"). Finish the job.
2017-01-08build & util: drop byte order configure check and endian util headerJani Nikula
With the removal of the embedded libsha1, we lost the first and last user of the platform byte order checks. Remove them from configure, and remove the endian util header.
2017-01-08Merge branch 'release'David Bremner
These are the (tentative) changes for 0.23.5
2017-01-01configure: fix $prefix expansion for libdir_expandedTomi Ollila
Since the sed expansion line which did $prefix expansion for libdir_expanded was changed from the legacy `...` format to the new $(...) expression, the subtle backslash expansion change went unnoticed -- \\$ which used to escape '$' now escapes '\' and the following '$prefix' was attempted to expand as a variable. So changing \\$ to \$ fixes this. Also, replaced echo with printf %s -- echo does expansions of its own. While at it, the following 2 inconsistencies were fixed: 1) the /g flag was removed from first expression; second didn't have it 2) first expression did not end with /, so "dropped" it from second configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
2016-11-28build: install notmuch-emacs-mua.desktop file with emacsJani Nikula
There is really no need to have a separate install target for the desktop file. Just install the desktop file with emacs, with a configure option to opt out.
2016-11-15lib: optionally silence Xapian deprecation warningsDavid Bremner
This is not ideal, but the new API is not available in Xapian 1.2.x, and it seems to soon to depend on Xapian >= 1.4
2016-10-06require xapian >= 1.2.6David Bremner
It seems that no-one tried to compile without Xapian compact support since March of 2015, since that's when I introduced a syntax error in that branch of the ifdef. Given the choice of maintaining this underused branch of code, or bumping the Xapian dependency to a version from 2011, it seems reasonable to do the latter.
2016-09-30configure: set platform variables also when `uname` is unrecognizedTomi Ollila
Since commit 124a67e96ecab5495c0f17b6875d53dfd67ff137: configure: add set -u all variables must be set before their expansion are attempted. These 2 variables: "platform" and "linker_resolves_library_dependencies" were not given value in the final 'else' branch when platform check failed due to unrecognized kernel name (output of `uname`). Now those two are given reasonable non-empty values.
2016-08-11configure: add --without-api-docs optionMikhail
Add option to explicitly disable API man page build even if doxygen binary is available. --without-docs also implies not building API manpage. This change intended to add more distinctness into build system and allow user not to build unwanted man pages.
2016-06-29Use the Xapian::DB_RETRY_LOCK flag when availableIstvan Marko
Xapian 1.3 has introduced the DB_RETRY_LOCK flag (Xapian bug 275). Detect it in configure and optionally use it. With this flag commands that need the write lock will wait for their turn instead of aborting when it's not immediately available. Amended by db: allow disabling in configure
2016-06-05Use https instead of http where possibleDaniel Kahn Gillmor
Many of the external links found in the notmuch source can be resolved using https instead of http. This changeset addresses as many as i could find, without touching the e-mail corpus or expected outputs found in tests.
2016-05-19configure: combine common parts of CONFIGURE_C{,XX}FLAGSTomi Ollila
By combining the common parts of CONFIGURE_CFLAGS and CONFIGURE_CXXFLAGS to a separate make variable and using that as part of their definitions makes setting of these easier, DRYer and less error prone (especially as we cannot check potential typing errors there).
2016-05-13configure: check directly for xapian compaction APIDavid Bremner
This is consistent with the check for FieldProcessor, and probably a bit more robust.
2016-05-08configure: detect Xapian:FieldProcessorDavid Bremner
Rather than check versions, it seems more robust to do a test compile.
2016-05-07configure: add set -uTomi Ollila
In case of any unset variable, make ./configure exit with nonzero value; an attempt to expand an unset variable is a bug in the script (usually a spelling mistake) and those should not pass through unnoticed.