aboutsummaryrefslogtreecommitdiffstats
path: root/.builds/alpine-edge.yml
Commit message (Collapse)AuthorAgeFilesLines
* ci: fix obscure build errorRobin Jarry2023-01-261-3/+1
| | | | | | | | | | | | | | | | | Fix the following obscure build error: gcc -O2 -g -Wall -Wextra -Werror -Wformat-security -Wstack-protector -fstack-protector-strong -fanalyzer gcc: fatal error: no input files The issue is that CFLAGS contains newline characters '\n' because of the yaml > continuation. I had misinterpreted the spec hoping that the final newline will also be stripped which is not. Put all CFLAGS on a single line. Link: https://yaml.org/spec/1.0/#id2567537 Fixes: 3191ee171c43 ("filters: rewrite wrap in c") Signed-off-by: Robin Jarry <robin@jarry.cc>
* filters: rewrite wrap in cRobin Jarry2023-01-261-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This utility introduced in commit c9524d265793 ("filters: add wrap utility written in go") allows to reflow text to view emails that have very long lines without breaking quotes, lists and indentation. For such a simple task, go produces a binary that is 2.0M bytes on disk. After stripping debugging symbols, it can be reduced to 1.2M bytes. All of this for 267 lines of source code. This is a bit ridiculous, provided people may load this binary into memory multiple times per minute. This tool is a small side-project that seems not suitable for golang. Rewrite it in C. It now only depends on a POSIX libc to run. It is safe to assume that there is one available on all *NIX systems in the world of 2023. The resulting binary is now 27K bytes (15K after stripping). To build it, a C compiler and libc headers are required. These should most likely be available since they are dependencies of the go compiler toolchain. I have tested compilation (with clang-analyzer and gcc -fanalyzer) and basic operation on FreeBSD, Fedora (glibc) and Alpine (musl libc). More tests would probably be required on MacOSX and older Linux distros. I also added test vectors to give some confidence that this works as expected. Update CI with aggressive gcc hardening flags and to run these tests with valgrind --leak-check=full. Command line options are unchanged: usage: wrap [-h] [-w INT] [-r] [-l INT] [-f FILE] Wrap text without messing up email quotes. options: -h show this help message -w INT preferred wrap margin (default 80) -r reflow all paragraphs even if no trailing space -l INT minimum percentage of letters in a line to be considered a paragaph -f FILE read from filename (default stdin) Signed-off-by: Robin Jarry <robin@jarry.cc> Tested-by: Bence Ferdinandy <bence@ferdinandy.com> Tested-by: Maxwell G <gotmax@e.email>
* ci: move check-patches at the end of pipelinesRobin Jarry2022-12-201-3/+3
| | | | | | | This is less important than reporting actual coding errors. Signed-off-by: Robin Jarry <robin@jarry.cc> Acked-by: Moritz Poldrack <moritz@poldrack.dev>
* contributing: add tooling for git send-emailRobin Jarry2022-12-141-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | Add a gitconfig target in the Makefile to configure a new clone with sane defaults: - set subject prefix - set correct mailing list address - enable sendemail.validate - install sendemail-validate hook The sendemail-validate hook will make a shallow clone of the current upstream repo, apply every patch on it and run some checks (a stripped down version of what is run by the upstream CI). Add a new check-patches script that verifies that the commit message actually contains something and that the Signed-off-by trailer from the patch author is present. Call check-patches in both the CI and the sendemail-validate hook. Update CONTRIBUTING.md accordingly. Signed-off-by: Robin Jarry <robin@jarry.cc> Acked-by: Tim Culverhouse <tim@timculverhouse.com>
* go: bumped minimum required version 1.16Moritz Poldrack2022-08-051-2/+2
| | | | | | | | Due to github.com/daixiang0/gci requiring io/fs, the minimum required Go version for aerc needs to be bumped to 1.16 Signed-off-by: Moritz Poldrack <git@moritz.sh> Signed-off-by: Robin Jarry <robin@jarry.cc>
* ci: add missing yaml document headerRobin Jarry2022-07-111-0/+1
| | | | Signed-off-by: Robin Jarry <robin@jarry.cc>
* ci: fix go-1.13 installationMoritz Poldrack2022-06-281-4/+4
| | | | | | | | | | For some reason the official way of getting older Go versions does not work, this patch makes the CI downgrade the package on a package manager level Signed-off-by: Moritz Poldrack <git@moritz.sh> Tested-by: builds.sr.ht <builds@sr.ht> Acked-by: Robin Jarry <robin@jarry.cc>
* ci: fix go1.13 stepMoritz Poldrack2022-06-261-0/+1
| | | | | | | | | | | | Fix the following error: + make GO=/home/build/go/bin/go1.13 make: *** No targets specified and no makefile found. Stop. Fixes: dbc5bb41a51b ("ci: slim down CI Pipeline") Signed-off-by: Moritz Poldrack <git@moritz.sh> Acked-by: Tim Culverhouse <tim@timculverhouse.com> Acked-by: Robin Jarry <robin@jarry.cc>
* mk: merge checkfmt into lintRobin Jarry2022-06-241-3/+0
| | | | | | No need to have two separate targets. Signed-off-by: Robin Jarry <robin@jarry.cc>
* mk: add lint targetMoritz Poldrack2022-06-241-0/+3
| | | | | | | | 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>
* ci: slim down CI PipelineMoritz Poldrack2022-06-241-0/+4
| | | | | | | | | | | | | | | | | | | | | Since the totality of sourcehut only has 4 CI slots at the moment, slim the CI pipeline down to the lowest common denominator: Linux (alpine-edge) - GNU make - latest Go version - Go1.13 OpenBSD - BSD make - latest available Go Version (currently lagging behind 1 version) We might also want to consider changing OpenBSD to FreeBSD as to my knowledge FreeBSD is the more common Home-Computer-Version of BSD instead of OpenBSD which is mainly used for servers. (please don't lynch me, dear 3 OpenBSD people) Signed-off-by: Moritz Poldrack <git@moritz.sh> Acked-by: Robin Jarry <robin@jarry.cc>
* builds: add gnupg in preparation of gpg integrationRobin Jarry2022-04-141-0/+1
| | | | | | This is required for future gpg unit tests to run. Signed-off-by: Robin Jarry <robin@jarry.cc>
* builds: test with notmuchRobin Jarry2022-04-141-0/+2
| | | | | | This is never tested. Let's check that it compiles at least. Signed-off-by: Robin Jarry <robin@jarry.cc>
* builds: reformat yamlRobin Jarry2022-04-141-16/+17
| | | | | | Use two spaces for indentation consistently. Signed-off-by: Robin Jarry <robin@jarry.cc>
* build: check make installMark Dain2022-01-241-0/+6
| | | | Ensure that install works on all platforms.
* build: add multiple distributionsRobin Jarry2022-01-201-0/+16
Add build and test on debian, fedora and archlinux. Only check code formatting on alpine. Signed-off-by: Robin Jarry <robin@jarry.cc>