aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* mk: make it obvious that GOFLAGS change cause a rebuildRobin Jarry2022-09-201-0/+1
| | | | | | We had a few issues with that for downstream distros recently. Signed-off-by: Robin Jarry <robin@jarry.cc>
* lint: warn about known security issuesMoritz Poldrack2022-09-141-0/+1
| | | | | Signed-off-by: Moritz Poldrack <git@moritz.sh> Acked-by: Robin Jarry <robin@jarry.cc>
* Release version 0.12.00.12.0Robin Jarry2022-09-011-1/+1
| | | | Signed-off-by: Robin Jarry <robin@jarry.cc>
* aerc: fix build when GOFLAGS contains spacesRobin Jarry2022-08-241-1/+2
| | | | | | | | | | | | Due to multiple levels of nested quoting, it is not possible to escape spaces and/or quotes from GOFLAGS and pass the value to go build -ldflags to set a compile time variable. Encode main.Flags in base64 and decode it when reading it. Fixes: d7e6dc3649ea ("aerc: add build info to version string") Signed-off-by: Robin Jarry <robin@jarry.cc> Acked-by: Moritz Poldrack <moritz@poldrack.dev>
* aerc: add build info to version stringRobin Jarry2022-08-221-0/+1
| | | | | | | | | | | | | | | | Example: $ aerc -v aerc 0.11.0 +notmuch (go1.18.4 amd64 linux) Also include that version information in the debug and panic logs. debug.ReadBuildInfo() is only available in go 1.18+. Add a new variable set at build time to store $GOFLAGS. Suggested-by: Tim Culverhouse <tim@timculverhouse.com> Signed-off-by: Robin Jarry <robin@jarry.cc> Acked-by: Moritz Poldrack <moritz@poldrack.dev>
* lint: add golangci-lint to the lintersMoritz Poldrack2022-08-041-1/+1
| | | | | | | | go vet has been removed from the lint step as it is run by the new linter. Signed-off-by: Moritz Poldrack <moritz@poldrack.dev> Acked-by: Robin Jarry <robin@jarry.cc>
* lint: use gofumpt instead of gofmtMoritz Poldrack2022-08-011-6/+4
| | | | | | Link: https://github.com/mvdan/gofumpt Signed-off-by: Moritz Poldrack <git@moritz.sh> Acked-by: Robin Jarry <robin@jarry.cc>
* mk: compute version deterministicallyJose Lombera2022-07-171-1/+1
| | | | | | | | | | Ensure abbreviated commit id of fixed length in computed version regardless of user's configuration. Choose length 12 as safe value. Link: https://github.com/git/git/commit/dce96489162b Signed-off-by: Jose Lombera <jose@lombera.dev> Acked-by: Moritz Poldrack <moritz@poldrack.dev> Acked-by: Robin Jarry <robin@jarry.cc>
* Release version 0.11.00.11.0Robin Jarry2022-07-111-1/+1
| | | | Signed-off-by: Robin Jarry <robin@jarry.cc>
* mk: merge checkfmt into lintRobin Jarry2022-06-241-6/+3
| | | | | | No need to have two separate targets. Signed-off-by: Robin Jarry <robin@jarry.cc>
* mk: add lint targetMoritz Poldrack2022-06-241-0/+4
| | | | | | | | Run go vet only for now. More linters can be added later. Run linters in the CI pipeline. Signed-off-by: Moritz Poldrack <git@moritz.sh> Acked-by: Robin Jarry <robin@jarry.cc>
* mk: add dev target with go race detector enabledMoritz Poldrack2022-06-241-0/+5
| | | | | | | | | Add a dev target which enables Go's race detector. This requires CGo to be enabled and reduces performance significantly, but helps in finding data races which can lead to hard to diagnose bugs. Signed-off-by: Moritz Poldrack <git@moritz.sh> Acked-by: Robin Jarry <robin@jarry.cc>
* mk: show built version in build logMoritz Poldrack2022-06-241-1/+1
| | | | | | | | Replace the implicit shell-parsing with explicitly running the command. This allows the built version to be reflected in the build log. Signed-off-by: Moritz Poldrack <git@moritz.sh> Acked-by: Robin Jarry <robin@jarry.cc>
* mk: strip build dir from stack tracesMoritz Poldrack2022-06-241-1/+2
| | | | | | | | | | | Add the -trimpath flag to the default build command to remove the user's path from stack traces. Use a separate BUILD_OPTS make var to avoid it being accidentally overridden on the command line. Signed-off-by: Moritz Poldrack <git@moritz.sh> Acked-by: Robin Jarry <robin@jarry.cc>
* filters: awk filter to parse text/calendarKoni Marti2022-05-311-0/+1
| | | | | | | | | Implement a filter to read text/calendar (ics) data with awk. Parses multiple events and shows the date recurrence if available. Awk alternative to the python filter. Signed-off-by: Koni Marti <koni.marti@gmail.com> Acked-by: Robin Jarry <robin@jarry.cc>
* gpg: make tests more robustRobin Jarry2022-05-101-0/+4
| | | | | | | | | Skip the tests if gpg is not installed. Avoid interference with the global ~/.gnupg. Automatically delete GNUPGHOME at the end of tests. Signed-off-by: Robin Jarry <robin@jarry.cc> Acked-by: Tim Culverhouse <tim@timculverhouse.com>
* mk: bump versionRobin Jarry2022-05-101-1/+1
| | | | | | I guess I forget to do it every other time... Signed-off-by: Robin Jarry <robin@jarry.cc>
* Add html "unsafe" filter to work also without danteJens Grassel2022-04-171-0/+1
| | | | | | | | If socksify (from dante) is not installed then the filter uses w3m without it to render an html message part. Signed-off-by: Jens Grassel <jens@wegtam.com> Acked-by: Robin Jarry <robin@jarry.cc>
* mk: do not depend on cmp being availableRobin Jarry2022-04-141-3/+1
| | | | | | | cmp is part of gnu diffutils which may not be available. Use grep which is more widespread. Signed-off-by: Robin Jarry <robin@jarry.cc>
* mk: rename ambiguous LDFLAGS variableRobin Jarry2022-04-061-4/+7
| | | | | | | | | | | | | | | | | | The LDFLAGS environment variable is usually indented for C the linker flags which are not compatible with go -ldflags. Use a more explicit GO_LDFLAGS variable instead. Allow adding extra flags without overriding the default ones by specifying GO_EXTRA_LDFLAGS. This may break the build on some distros that rely on setting LDFLAGS to change the default shareDir or version. They will have to switch to GO_EXTRA_LDFLAGS. Link: https://salsa.debian.org/go-team/packages/aerc/-/commit/e9ed90beae9f Link: https://src.fedoraproject.org/rpms/aerc/blob/f36/f/aerc.spec#_86 Fixes: e7e22aba60ce ("mk: rebuild if goflags or ldflags have changed") Signed-off-by: Robin Jarry <robin@jarry.cc>
* Add filter script for ics files.Jens Grassel2022-03-231-0/+1
| | | | | | | | This is a python script for python 3 using the vobject library to show details about an ics file (text/calendar attachment). Signed-off-by: Jens Grassel <jens@wegtam.com> Tested-by: Moritz Poldrack <moritz@poldrack.dev>
* Release version 0.9.00.9.0Robin Jarry2022-03-211-1/+1
| | | | Signed-off-by: Robin Jarry <robin@jarry.cc>
* config: specify sharedir during buildDaniel Patterson2022-03-031-0/+1
| | | | | | | | | | | | | We should use the Makefile value of SHAREDIR when searching for config files and templates etc. This is important for systems which do not use the standard file hierarchy or which do not have a consistent location for installing program files, for example NixOS, which will have a different install location with every update. Signed-off-by: Daniel Patterson <me@danielpatterson.dev> Acked-by: Robin Jarry <robin@jarry.cc>
* mk: fix dynamic source dependencies with bsd makeRobin Jarry2022-02-271-1/+1
| | | | | | | | | | | | | | | | | When building with BSD make, running `make` after updating a source file will not cause the binary to be rebuilt. After inspection, it appears that the GOSRC variable only contains "go.mod go.sum". The aerc target does not depend on .go source files. The $(shell) construct is GNU make specific. BSD make has a special assignment operator (!=) which evaluates a shell command. Since GNU make 4.0, the BSD != operator is supported for compatibility. Use a syntax that is available in both make flavours. Link: https://git.savannah.gnu.org/cgit/make.git/commit/?id=b34438bee83ee Signed-off-by: Robin Jarry <robin@jarry.cc> Tested-by: Koni Marti <koni.marti@gmail.com>
* mk: rebuild if goflags or ldflags have changedRobin Jarry2022-02-271-2/+13
| | | | | | | | | | | | | | | Running make with different values for GOFLAGS or VERSION does not cause aerc to be rebuilt whereas it should. Write the go build command line into a file and force aerc to be rebuilt if the command line has changed. Use the BSD make compatible != operator to run the command. This operator is also available in GNU make since version 4.0. Link: https://git.savannah.gnu.org/cgit/make.git/commit/?id=b34438bee83ee Signed-off-by: Robin Jarry <robin@jarry.cc> Tested-by: Koni Marti <koni.marti@gmail.com>
* filters: restore plaintext awk scriptRobin Jarry2022-02-201-0/+1
| | | | | | | | This script is referenced by some users configuration. Restore it to avoid breaking existing setups. Fixes: bca93cd91536 ("filters: add a more complete plaintext filter") Signed-off-by: Robin Jarry <robin@jarry.cc>
* filters: rename plaintext to colorizeRobin Jarry2022-02-201-1/+1
| | | | | | | | This filter script is not compatible with the previous one. Rename it to avoid issues with existing configs. Fixes: bca93cd91536 ("filters: add a more complete plaintext filter") Signed-off-by: Robin Jarry <robin@jarry.cc>
* mk: bump versionRobin Jarry2022-02-201-1/+1
| | | | | | I should have done this before creating the tag. Signed-off-by: Robin Jarry <robin@jarry.cc>
* contrib: fix aerc.desktop install pathRobin Jarry2022-02-191-4/+4
| | | | | | | | | Add missing $(PREFIX). Note to self: always test install before accepting patches. Fixes: 5abc3cab96b7 ("contrib: add xdg desktop entry") Signed-off-by: Robin Jarry <robin@jarry.cc>
* contrib: add xdg desktop entryMoritz Poldrack2022-02-191-1/+5
| | | | | | | | Add an XDG desktop file to handle mailto: links, to make it easier to reply to mailing list threads and compose emails with aerc in general. Signed-off-by: Moritz Poldrack <git@moritz.sh> Signed-off-by: Robin Jarry <robin@jarry.cc>
* config: do not hardcode sharedirRobin Jarry2022-02-191-9/+4
| | | | | | | | | | | | Instead of using a static SHAREDIR at compile time, use a list of standard paths to use at runtime for templates, config files and stylesets. This implies removing all default filters in the default configuration. Replace them with basic commands. New users can configure the filters as they wish. Signed-off-by: Robin Jarry <robin@jarry.cc>
* mk: use debug to generate a non-optimized binaryRobin Jarry2022-02-021-3/+7
| | | | | | | | Do not use this to run the debugger. Instead, build a non-optimized binary and display what command should be executed to attach to a running program. Signed-off-by: Robin Jarry <robin@jarry.cc>
* mk: add make checkinstallMark Dain2022-01-241-0/+12
| | | | Adds a quick way to ensure the install was successful.
* mk: syntax cleanupRobin Jarry2022-01-211-11/+7
| | | | | | Avoid multiline strings. Use dlv --build-flags. Signed-off-by: Robin Jarry <robin@jarry.cc>
* mk: be compatible with bsd makeRobin Jarry2022-01-211-25/+17
| | | | | | | ifeq is not supported by bsd make. We don't need this. Use a simple shell command. Signed-off-by: Robin Jarry <robin@jarry.cc>
* Revert "mk: only install if files changed"Robin Jarry2022-01-211-49/+25
| | | | | | | | | | | This reverts commit 22ad9e199a6dccf0f5017b3e0bacd3ad01b122e7. This breaks install on macOS: install -m755 -D aerc /usr/local/bin/aerc install: illegal option -- D Signed-off-by: Robin Jarry <robin@jarry.cc>
* mk: avoid searching in hidden directories at the rootRobin Jarry2022-01-201-1/+1
| | | | Signed-off-by: Robin Jarry <robin@jarry.cc>
* mk: only install if files changedRobin Jarry2022-01-191-25/+49
| | | | Signed-off-by: Robin Jarry <robin@jarry.cc>
* compose: add default template for new messagesRobin Jarry2022-01-191-0/+1
| | | | | | | Allow defining a default template to use when composing new messages. Add an example to be used for new users. Signed-off-by: Robin Jarry <robin@jarry.cc>
* Release version 0.7.10.7.1Robin Jarry2022-01-151-1/+1
| | | | Signed-off-by: Robin Jarry <robin@jarry.cc>
* Release version 0.7.00.7.0Robin Jarry2022-01-141-1/+1
| | | | Signed-off-by: Robin Jarry <robin@jarry.cc>
* mk: remove version overridepsykose2021-12-131-1/+0
| | | | | | | | | | some build systems build inside a git environment- most notably, alpine aports is built inside an aports tree. this override prevents a VERSION=$pkgver override from being passed at build time and makes aerc think its version is an alpine version from aports: < aerc -v aerc v3.15.0.r122.gb306bc1c4c
* build: add check for code formattingRobin Jarry2021-12-111-0/+12
| | | | | | Let's avoid pushing unformatted code. Signed-off-by: Robin Jarry <robin@jarry.cc>
* Release version 0.6.00.6.0Robin Jarry2021-11-091-1/+1
| | | | Signed-off-by: Robin Jarry <robin@jarry.cc>
* Makefile: use git version string if we canReto Brunner2021-02-071-0/+6
| | | | | | | Some packagers overwrote the version we embed in aerc, we really don't want that. Hence we force clear the variable at the beginning of the makefile. If git is available and returns a useful info we now use that version instead of the hardcoded version
* Make makefile compatible with 3.81 (default MacOS)y0ast2020-12-241-1/+1
| | | | Enables using the makefile with mac default make.
* version bump: 0.5.20.5.2Reto Brunner2020-11-141-1/+1
|
* makefile: add debug targetReto Brunner2020-11-131-1/+5
|
* update the makefile version0.5.1Reto Brunner2020-11-101-1/+1
|
* Makefile: remove aerc-stylesets upon uninstallJD2020-09-271-0/+1
|