aboutsummaryrefslogtreecommitdiff
path: root/Makefile.local
AgeCommit message (Collapse)Author
2026-03-07cli/git-remote: add libnotmuch shared library as dependencyDavid Bremner
In [1], Anton mentioned encountering a race condition in the build system, and suggested this fix. [1]: id:177149756401.20239.4570498044656906075@lain.khirnov.net
2026-02-16cli: start remote helper for git.David Bremner
This is closely based on git-remote-nm (in ruby) by Felipe Contreras. Initially just implement the commands 'capabilities' and 'list'. This isn't enough to do anything useful but we can run some simple unit tests. Testing of URL passing will be done after clone (import command) support is added.
2025-02-22build: remove handling for legacy python bindings versionDavid Bremner
The legacy python bindings are no longer built.
2022-06-17CLI/git: change defaults for repo and prefixDavid Bremner
The previous defaults were not suitable for personal (i.e. not bugtracking for notmuch development) use. Provide two ways for the user to select nmbug compatible defaults; command line argument and checking the name of the script.
2022-06-17nmbug: promote to user tool "notmuch-git"David Bremner
Initially just a rename, and drop the --version argument that clashes with the global notmuch --version argument.
2022-04-15release: automate upload of pre-release tarballsdebian/0.36_rc0-1archive/debian/0.36_rc0-10.36_rc0David Bremner
The tarballs were requested by some distro-packagers, and this automation will hopefully reduce the number of errors from the current manual process.
2022-04-15release: save more release files to releases/David Bremner
The main change is to move the signatures to releases/ when invoking the pre-release target; also stash the debian symlink for the release target.
2022-02-21removed use of 'echo -n' (and echo -n -e ...)Tomi Ollila
In most cases used printf %s ... instead. echo -n > file lines to create empty / truncate files were changed to : > file lines, like done in in test-lib-emacs.sh And one echo -n " " replaced with use of sed "s/^/ /" in next line.
2021-12-05python-cffi: fix out-of-tree buildDavid Bremner
The main idea is to replace the hack of copying version.txt into the bindings source with a generated _notmuch_config.py file. This will mean that the bindings only build after configuring and building notmuch itself. Given those constraints, "pip install ." should work.
2021-05-14CLI: centralize initialization in notmuch_client_initDavid Bremner
Initially make sure gmime_filter_reply initialization is thread-safe (assuming notmuch_client_init is only called once). For tidyness, also put talloc initialization in the new function.
2020-12-25debian: don't tag debian tag at release is made.0.31.3David Bremner
This reflects a change in the debian workflow to use dgit, which does the tagging for us. It also leaves room for debian specific fixups.
2020-11-08release: explicitely build sphinx-htmldebian/0.31.2-10.31.2David Bremner
This is to force it to happen after the "make clean".
2020-11-08build: change one more occurrence of 'version' to 'version.txt'.David Bremner
This one disguised via tar and sed trickery.
2020-11-08build: fix update-versions ruleDavid Bremner
This was missed in the rename of the 'version' file to version.txt
2020-10-30Rename version to version.txtRalph Seichter
Building Notmuch on macOS is known to cause problems because the Notmuch distribution archive contains two files named "version". These names clash with the <version> header as defined in C++20. Therefore, the existing naming will likely become a problem on other platforms as well, once compilers adopt the new standard. Signed-off-by: Ralph Seichter <github@seichter.de> Amended-by: db s/keyword/header/ in commit message.
2020-08-16build: clean up sphinx.configDavid Bremner
Follow the existing practice and remove it under "distclean", same as sh.config and Makefile.config
2020-08-09emacs: Use makefile-gmake-mode in Makefile*sJonas Bernoulli
Use `makefile-gmake-mode' instead of `makefile-mode' because the former also highlights ifdef et al. while the latter does not. "./Makefile.global" and one "Makefile.local" failed to specify any major mode at all but doing so is necessary because Emacs does not automatically figure out that these are Makefiles (of any flavor).
2020-08-03build: upload html docs as part of release processDavid Bremner
Use a URL https://notmuchmail.org/doc/latest to leave room for a future more ambitious scheme deploying multiple versions. This also forces the html docs to built as part of the release process. In the future this should be updated to tolerate generating a release without sphinx installed. This needs a new target analogous to build-info and build-man that does nothing if sphinx is not installed.
2020-07-03build: produce signatures for release candidate tarballs.debian/0.30_rc3-10.30_rc3David Bremner
Today Defalos on #notmuch asked for a signed tarball for 0.30~rc2. This is a minimal change to support this in the future. The question of automagically uploading will need more thought; currently I like the fact that tags from pre-releases are only pushed manually.
2020-07-03bindings/python-cffi: copy version file into bindings dirDavid Bremner
Attempt to avoid breaking "pip install ." As far as I can tell, we need to have a copy (not just a relative symlink) of the version file.
2019-12-21debian: return an error if debian snapshot build failsDaniel Kahn Gillmor
Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-12-03build: optionally build python-cffi bindingsDavid Bremner
Put the build product (and tests) in a well known location so that we can find them e.g. from the tests.
2019-03-27release: use xz compressionDavid Bremner
This produces tarballs that are roughly 30% smaller.
2019-03-27build: Rename GPG_FILE to DETACHED_SIG_FILEDaniel Kahn Gillmor
This is just a semantic cleanup -- we have multiple files that are OpenPGP signatures. And while we're probably making signatures with GnuPG, they can be verified with any OpenPGP implementation, so "GPG_" is arguably both not specific enough, and overly-specific. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-03-27build: distribute signed sha256sumsDaniel Kahn Gillmor
Distribute clearsigned sha256sum file in addition to the detached signature. Verifies that use the sha256sum ensure that the thing signed includes the name of the tarball. This defends the verifier by default against a freeze, rollback, or project substitution attack. A verifier can use something like the following (as expressed in bash): set -o pipefail wget https://notmuchmail.org/releases/notmuch-$VERSION.tar.gz{,.sha256.asc} gpgv --keyring ./notmuch-signers.pgp --output - notmuch-$VERSION.tar.gz.sha256.asc | sha256sum -c - See id:87r2b8w956.fsf@fifthhorseman.net and other messages in that thread for discussion. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-03-27build: ensure that SHA256_FILE is builtDaniel Kahn Gillmor
The SHA256_FILE used to be built automatically because of the makefile dependencies. Since b8a8dbed91d16299a8768646fb6f18181f31ec40, it isn't getting made properly, so the release target would fail. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2019-03-11build: sign tarball instead of sha256sumDavid Bremner
Adam Majer pointed out in [1] the way were signing releases was unusual. Neither Carl nor I could think of a good reason for explicitely signing the checksum (internally of course that's what GPG is going anyway). [1] mid:b3fd556d-c346-7af9-a7a2-13b0f3235071@suse.de
2018-05-26doc: install build and install info pagesDavid Bremner
All of the man pages are installed as info pages, plus the (unfinished) notmuch-emacs manual
2018-04-28build: push additional refs during releaseDavid Bremner
These currently have to be pushed by hand during a release, which isn't a big deal, but is one more thing to remember.
2018-01-04fix typosDaniel Kahn Gillmor
2017-12-28make release archive: common (or no) timestampsTomi Ollila
The appended file 'version' has the same timestamp as the files added by `git archive`. The original file name and time stamp are no longer saved to the gzip header in resulting $(PACKAGE)-$(VERSION).tar.gz file. When build environment is close enough to another, this may provide mutually reproducible release archive files.
2017-10-20crypto: move into libnotmuch_utilDaniel Kahn Gillmor
This prepares us for using the crypto object in both libnotmuch and the client.
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-08-29build: add .deps to CLEAN instead of listing in clean targetJani Nikula
Seems, uh, cleaner this way.
2017-08-29build: add optional target parameter to quiet variable functionJani Nikula
Sometimes using $@ as the target in the quiet build lines can be confusing. Accept an optional second parameter in the quiet variable function to specify the target.
2017-08-29build: avoid an extra shell out in quiet variable functionJani Nikula
$(word 1, $1) yields the same result as the more complicated $(shell echo $1 | sed -e s'/ .*//')
2017-08-01add "notmuch reindex" subcommandDaniel Kahn Gillmor
This new subcommand takes a set of search terms, and re-indexes the list of matching messages.
2017-05-11build: do not export compat functions from libJani Nikula
Commits 9db214527213 ("lib/gen-version-script.h: add getline and getdelim to notmuch.sym if needed") and 3242e29e57ac ("build: add canonicalize_file_name to symbols exported from libnotmuch.so") started exporting compat functions from libnotmuch so that the cli could use them. But we shouldn't export such functions from the library. They are not part of our ABI. Instead, the cli should include its own copies of the compat functions.
2017-04-14Makefile.local: have all files in release tarball be owned by rootTomi Ollila
The tar content `git archive` creates (reproducibly) have owner and group set to 'root'. (GNU) tar writes user ids to the added file `version` by default. The contents of tar archive looks better and more consistent when owner and group in all files are the same. While at it, split this long command line to multiple lines.
2017-03-18rename libutil.a to libnotmuch_util.aDavid Bremner
Apparently some systems (MacOS?) have a system library called libutil and the name conflict causes problems. Since this library is quite notmuch specific, rename it to something less generic.
2017-03-12build: replace remaining uses of SHA1_FILE0.24David Bremner
oops. If only there was some editor facility that allowed replacing all instances of a string.
2017-03-02build: use sha256sum instead of sha1sum to sign releasesDavid Bremner
2016-11-26notmuch.desktop: move under emacs as notmuch-emacs-mua.desktopJani Nikula
The notmuch.desktop file is part of notmuch-emacs. Move it under emacs, and rename as notmuch-emacs-mua.desktop to reflect this.
2016-11-26build: Move variable definitions to Makefile.globalDavid Bremner
I noticed when trying to use VERSION (and derived variables) in a subdirectory that the top level Makefile.local needed to be included first. But according to c10085c77b407d9ea704f8b4f9e0a805f63e72cb it actually needs to be last. To break this conflict, move the variables definitions into a new Makefile.global.
2016-11-16emacs: generate notmuch-pkg.elDavid Bremner
This file contains metadata for the built in (as of emacs 24) packaging system.
2016-09-21build system: choose gnu99 as a C standardDavid Bremner
Apparently pre 5.1 gcc defaulted to gnu89, but we decided it was ok to use some c99 features. '-std=c99' by itself is not enough for notmuch to compile. '-std=gnu99' seems to work with clang and gcc, so I'm not convinced configuration support is needed.
2016-09-04Makefile.local: use $(wildcard) to check existence of ${srcdir}/.gitTomi Ollila
With this GNU Make construct one shell invocation can be skipped and code looks shorter (narrower). This would now match to .git being other file type than regular file or directory (or symlink to those), but that is not a use case anyone should expect users to do.
2016-09-04Makefile.local: make IS_GIT simply expandedTomi Ollila
By using ':=' while setting IS_GIT it is expanded to 'yes' or 'no' at that point (and not every time when $(IS_GIT) is referenced).
2016-06-11Makefile.local: set IS_GIT = yes when regular file $srcdir/.git existsTomi Ollila
$srcdir/.git may also be file. E.g. `git worktree` creates .git file while new working tree is populated.
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.