summaryrefslogtreecommitdiff
path: root/Makefile.local
AgeCommit message (Collapse)Author
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.
2015-10-30release: disable wget certificate checkdebian/0.21-10.21David Bremner
this is a minor security hole, but no worse than what we had before. In particular the worst that happens is someone prevents us from making a release. Which is hardly worth the trouble of jacking the URL.
2015-09-20cli: add utility routine to print error status.David Bremner
No attention to formatting here, initially just focus on getting the relevant strings out of the library.
2015-06-12build: integrate building ruby bindings into notmuch build processDavid Bremner
Because ruby generates a Makefile, we have to use recursive make. Because mkmf.rb hardcodes the name Makefile, put our Makefile{.local} in the parent directory.
2015-03-08python: replace hardcoding of SONAME versionDavid Bremner
Failing to update this string in globals.py causes failures when the SONAME changes. In order to hopefully reduce the number of such errors, automate the process of setting the SONAME in the python bindings.
2014-07-13build: generate sh.config for feeding configure results to shell scriptsJani Nikula
Only include the relevant information. Amended by David Bremner: Use a prefix NOTMUCH_ to minimize collisions with other variables.
2014-07-09build: check .git directory existence in srcdir (for out-of-tree builds)Tomi Ollila
So that $(VERSION) and version.stamp uses the git-describe -based version data instead of the content of `version' file. For consistency also the git commands in Makefile[.local] target `verify-no-dirty-code' uses the git --git-dir=$srcdir/.git ... commands (inside ifeq($(IS_GIT),yes)). Attempting to make this target outside of the tree will fail in any case.
2014-05-28build: add datacleanDavid Bremner
It turns out to be inconvenient to delete the downloaded datafiles with distclean, so I propose a new target which does that instead. The closest conventional target is 'maintainer-clean'; the difference here is that having the original source tarball is not enough to reconstruct these files.
2014-05-28build: remove .tar.gz.tmp files in cleanDavid Bremner
Most people won't see these, but they annoy anyone running release or pre-release targets.
2014-05-28Merge branch 'release'David Bremner
A point release is slowly being built on branch release. Merge those changes into master.
2014-05-28build: fix order of rpathFelipe Contreras
In my system `pkg-config --libs talloc` returns 'Wl,-rpath,/usr/lib -ltalloc' (probably wrongly) which causes the final LDFLAGS to be something like '-Wl,-rpath,/usr/lib -Wl,-rpath,/opt/notmuch/lib', which causes the RUNPATH to be '/usr/lib:/opt/notmuch/lib', so basically defeating the whole purpose of RUNPATH. I noticed this when my /opt/notmuch/bin/notmuch (0.17) started updating the database after I updated the system (which updated the system's notmuch). This shouldn't happen. Let's move the RUNPATH flags before other external flags have a chance of screwing the build. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2014-05-04Merge tag '0.18_rc1'David Bremner
notmuch 0.18~rc1 release
2014-05-04build: use UPSTREAM_TAG and not VERSION to generate tarballdebian/0.18_rc1-10.18_rc1David Bremner
The latter can have "~" in it, which is not legal for a git tag.
2014-04-24building from git: use --abbrev=7 for version stringTomi Ollila
Users may have set core.abbrev=n, where n != 7 in their git config file(s) which would give them different than expected version strings when building notmuch from git. This fixes the commit hash part of version string to 7 hexadecimal values.
2014-04-12dump: support gzipped and atomic outputDavid Bremner
The main goal is to support gzipped output for future internal calls (e.g. from notmuch-new) to notmuch_database_dump. The additional dependency is not very heavy since xapian already pulls in zlib. We want the dump to be "atomic", in the sense that after running the dump file is either present and complete, or not present. This avoids certain classes of mishaps involving overwriting a good backup with a bad or partial one.
2014-04-10build: write version.stamp file containing $(VERSION) stringTomi Ollila
This version file will be as prerequisite to the target files that use the version info for some purpose, like printing it for the user to examine. The contents of the version.stamp file is seldom read by the build system itself as the $(VERSION) variable has the same information. Thanks to Trevor, David and Mark for their contributions.
2014-03-18doc: build man pages at build time; introduce HAVE_SPHINX, HAVE_RST2MANDavid Bremner
This helps avoid build artifacts (namely, nroff and gzipped-nroff man pages) owned by root. The variables allow choosing which generator to use for the man page. These will be hooked to configure in a following commit.
2014-03-09doc: install sphinx version of man pagesDavid Bremner
The python script mkdocdeps.py is used to import the list of man pages from the sphinx configuration to make. This will delete the (release only) target update-man-versions. This will be replaced in a followup commit.
2014-01-25build: delete the default .SUFFIXESTomi Ollila
All implicit rules in notmuch Makefiles are "pattern rules"; Deleting the default suffixes (to support obsolete, old-fashioned "suffix rules") from make reduces the output of 'make -d' by 40 to 90 percent, helping e.g. debugging make problems.
2014-01-13build: remove trailing '/.' when doing mkdir -p .deps/.Tomi Ollila
When make variable $@ does not contain directory part, $(@D) resolves as '.'. In this case .deps/$(@D) is '.deps/.' In some systems `mkdir [-p] directory/.` fails. To make this compatible with more system substitute trailing '/.' (slashdot) with '' (empty string) whenever it occurs there.
2013-10-25Place extra_cflags before CONFIGURE_CFLAGSMoritz Wilhelmy
This ensures that the build will not attempt to use an existing notmuch.h when an older version of notmuch is already installed elsewhere (e.g. in /usr/local) and /usr/local/include is added to CONFIGURE_CFLAGS by one of the libraries (talloc, in my case)
2013-10-09notmuch-compact: Initial commit of CLIBen Gamari
Introduce the user command exposing the new compaction facility. Signed-off-by: Ben Gamari <bgamari.foss@gmail.com>
2013-08-17reply: Use RFC 2822/MIME wholly for text format templateAustin Clements
Previously, reply's default text format used an odd mix of RFC 2045 MIME encoding for the reply template's body and some made-up RFC 2822-like UTF-8 format for the headers. The intent was to present the headers to the user in a nice, un-encoded format, but this assumed that whatever ultimately sent the email would RFC 2047-encode the headers, while at the same time the body was already RFC 2045 encoded, so it assumed that whatever sent the email would *not* re-encode the body. This can be fixed by either producing a fully decoded UTF-8 reply template, or a fully encoded MIME-compliant RFC 2822 message. This patch does the latter because it is a) Well-defined by RFC 2822 and MIME (while any UTF-8 format would be ad hoc). b) Ready to be piped to sendmail. The point of the text format is to be minimal, so a user should be able to pop up the template in whatever editor they want, edit it, and push it to sendmail. c) Consistent with frontend capabilities. If a frontend has the smarts to RFC 2047 encode the headers before sending the mail, it probably has the smarts to RFC 2047 decode them before presenting the template to a user for editing. Also, as far as I know, nothing automated consumes the reply text format, so changing this should not cause serious problems. (And if anything does still consume this format, it probably gets these encoding issues wrong anyway.)