Commit Graph

210 Commits

Author SHA1 Message Date
6f4a6688b8 build: bump version to 1.14.0-pre3 2026-08-20 15:05:28 -07:00
b9d6552cf3 meson.build: use include_directories
Seems meson 1.10 is stricter and balks at project_source_root.
2026-08-20 15:05:28 -07:00
cad39e0ff1 meson.build: minor cleanups 2026-08-20 15:05:28 -07:00
a0c8b52d2b build: bump version to 1.14.0-pre2 2026-08-20 15:05:28 -07:00
589734631a build: avoid clang build warnings 2026-08-20 15:05:28 -07:00
8a29be0a9c build: fix guile 'auto'
Fixes #2900
2026-08-20 15:05:28 -07:00
2db658755a build: fix for scm=disabled
Fixes #2899
2026-08-20 15:05:28 -07:00
72c7bebe3f meson: require >= 1.3.2
1.5.1 is too new for 'noble'
2026-08-20 15:05:28 -07:00
72bf4350a9 guile: deprecate; instead use scm
Deprecate the long-deprecated guile support in the build-system too.
Needs explicit -Dguile=enabled
2026-08-20 15:05:28 -07:00
06b4625e61 build: bump to 1.14.0-pre1, bump some required versions
Bump the required versions of some libraries / emacs slightly so we can get rid
of some special-casing and work-arounds. These are mostly based on Ubuntu 24.04
LTS, which is rather conservative; so should hopefully not inconvenience any
users.

- compiler: we now require C++20 instead of C++17
- glib & friends: 2.60 => 2.80
- xapian: 1.4 => 1.4.22
- emacs 26.3 => 28.1

Ubuntu 24.04 actually has Emacs 29.3, but that'd perhaps be too big a jump.
2026-08-20 15:05:28 -07:00
30b2d2a9fe build: bump version to 1.12.15
Mostly to get a release out with the fix for #2984.
2026-08-20 15:05:28 -07:00
ab6ab33df6 build: bump version to 1.12.15-pre1 2026-08-20 15:05:28 -07:00
c6f9257bd9 build: bump version to 1.12.14
New stable release.

Nothing too spectacular, but a various small tweaks:

- improved guix (and other systems) compatibility: make fewer assumptions about where system programs are
- documentations improvements, in manpages and the mu4e reference manual
- labels: better messages when importing
- scm: stabilize tests. tweaks api.
- mu4e: add mu4e-view-mark-and-next
- mu4e: mu4e-dbus-mode; a new experimental minor in which mu4e exposes some of
  its data over DBus.
2026-08-20 15:04:27 -07:00
fa4ec511e2 build: bump version to 1.12.14-pre5 2026-08-20 15:04:27 -07:00
20efd31f3d build: bump version to 1.12.14-pre4 2026-08-20 15:04:27 -07:00
95843d4e8a build: bump version to 1.12.14-pre3
Unlike earlier development releases, we use the "pre"` suffix, so 1.12.14-pre3
rather than 1.12.14-dev3. This for compatibility with the version-to-string
Elisp function that some external programs use to parse version information.
2026-08-20 15:04:27 -07:00
9ba925da44 build: bump version to 1.12.14-dev2 2026-08-20 15:04:27 -07:00
79c903d557 build: bump version to 1.12.14-dev1 2026-08-20 15:04:26 -07:00
42bc5a19ad build: bump version to 1.12.13
New stable release 1.12.13. This contains improvements to the build process, the
Guile/Scheme binding ("SCM") and a new experimental "labels" sub-command. Let's
start with that last one.

* Labels

There's a new, experimental feature: *labels*. Labels are similar to the
existing "tags", but better integrated with both mu and mu4e,

You can search for message with a given label using 'label:', e.g
  $ mu find label:tupperware

Or add/remove labels, e.g., remove the label "planet" and add the label
"dwarf-planet" to all messages that have "pluto" in their subject:

  $ mu labels update "subject:pluto" --labels -planet,+dwarf-planet

Clear all labels from messages with the label "boring":

  $ mu labels clear "label:boring"

Labels are only stored in mu's database, and do not write to the message file
themselves. I.e., when you remove your database, your labels are gone. However,
you can use the `mu labels export` and `mu labels import` to save/restore them;
see the mu-labels(1) man-page for details.

In mu4e, you can do the same using `mu4e-headers-mark-for-label` (bound to `l`)
and clearing with `mu4e-headers-mark-for-unlabel` (bound to 'L').

I.e., mark some messages (or the current one by default), and in the
headers-buffer type
   l -planet +dwarf-planet RET
This works similar to the other marks.

There's autocompletion as well, both for search (label:) and marking (after +/-)

It's experimental, but it seems quite useful so far. See the man-page for
further details.

* SCM

The SCM/Guile bindings have been improved substantially; some common operations
are much faster (algorithmically). Also, the "glue" was added to interact with
Emacs and the "geiser" package, either with or without mu4e.

For the "plain Emacs" integraticon, see the Mu-SCM documentation, section
`Hooking up with GNU/Emacs and Geiser'.

For the mu4e integration, see the chapter `Using mu's SCM/Guile integration' in
the mu4e reference manual; or check the `mu4e-mu-scm-server' configuration
variable and the `mu4e-mu-scm-repl' command.

Future version will add more, and start answering questions like "Why would I
even want SCM bindings?!" :-)

* Building

- by default, tests are built 'lazily', i.e., only when running tests;
  this speeds up the build considerably for people that don't want to run
  tests (there's also -Btest=disabled of course)

- when available/found, mu now (by default) uses the system versions of CLI11
  and libfmt, rather than mu's "vendored" versions.

  You can influence where the build system (i.e., meson) looks through the
  `PKG_CONFIG_PATH` environment variable (see the pkg-config/pkgconf man-pages),
  and you can disable
2026-08-20 15:04:26 -07:00
c16fffed22 build: bump version to 1.12.13-dev2 2026-08-20 15:04:26 -07:00
846705629f build: use 1.12.13-dev
Use -dev suffix for development version; explain in README
2026-08-20 15:04:26 -07:00
81ff303d2e meson.build: check for pthread_setname_np 2025-08-23 09:12:47 +03:00
4c2ce92a15 cli11: prefer system package if found
mu embeds a "vendored" version of libcl11 under thirdparty/; but it's
better to use the system-package if the user has one.

So, use the system package if found or user -Duse-embedded-cli11=true is
specified.
2025-07-24 19:55:27 +03:00
33958cd0f7 fmt: prefer system package if found
mu embeds a "vendored" subset of the libfmt package under thirdparty; but it's
better to use the system-package if the user has one.

So, use the system package if found or user -Duse-embedded-fmt=true is
specified.
2025-07-24 19:55:27 +03:00
bed7e6bd82 build: bump version to 1.12.12
New stable version. Some small fixes and doc updates; big new thing are
the new SCM bindings (under scm/), which will replace the
long-deprecated old bindings (under guile/).

Overall:

- In 'mu init', --my-address has been renamed into --personal-address
  for consistency. The old name still works.

Mu4e:

- Emacs bookmarks can be now also be created for mu4e queries; see
  the mu4e-emacs-bookmark-policy defcustom

- Support dash when completing maildirs

- Add defcustom for mu4e-compose-jump-to-reasonable-place, so it can be
  overridden, e.g. in compose hooks.

- In mu4e, make indexing snappier when there no new messages

SCM:

- Experimental new Guile bindings under scm/, including a reference
  manual and unit tests.
2025-07-19 08:03:38 +03:00
cd23cd83bb build: add cond dep on g_mime_object_write_content_to_stream
This function only appeared in gmime versions newer than the minimum one we
require; since we only need this function in the new/experimental "scm", we make
the latter conditional on that function.

Fixes #2859.
2025-07-09 21:39:24 +03:00
b02aa57686 mu-scm: implement mime-part handling, refact
Implement accessing the MIME-parts + docs  + test.

Implement saving attachments to file.

Implement creating messages from files.

Refactor / rename functions to be more uniform.
2025-07-07 10:57:13 +03:00
417c070e27 build: better handle non-guile build 2025-06-24 18:15:03 +03:00
f9c24c7166 mu: add 'scm' command
Add the "scm" command, the way to get a Guile/Scheme shell.

This is experimental but will replace the current guile support in guile/ at
some point.
2025-06-16 10:57:36 +03:00
155725ff74 fdl.texi: only need one copy in source tree
No need for identical files in mu4e / guile dirs, move to build-aux.
2025-06-10 10:04:53 +03:00
154a68d948 meson.build: tweak guile build 2025-05-31 12:37:13 +03:00
9b5ed2d38e bump version to 1.12.11
New stable update; mostly to fix #2847, but with some doc fixes as well.
2025-05-10 11:20:21 +03:00
998a6448d5 bump version to 1.12.10 2025-05-03 08:51:48 +03:00
c91e4ef515 mu-sexp: fix c++23 warning for suffix operator
Space between operator"" and _xxx is deprecated.
2025-03-23 19:47:09 +02:00
60340c525d build: bump version to 1.12.9 2025-02-26 18:53:07 +02:00
d33adc923c build: tweaks 2025-02-05 20:14:36 +02:00
a93a41f8ee mu4e: implement experimental transient menu
Add a first version of a "transient" menu for mu4e. It's just a starting
point. It's not yet bound to any key, but you could e.g. add

(require 'mu4e-transient)
(global-set-key (kbd "C-c m") #'mu4e-transient-menu)
2025-01-15 23:02:47 +02:00
74108100d6 build: include IDEAS.org, mu4e command
Include the IDEAS.org with installed data; add a command mu4e-ideas.
2025-01-15 19:24:32 +02:00
8c0f136a50 build: bump version to 1.12.8 2024-12-17 22:05:03 +02:00
d5d57b4327 remove non-single-threaded option
Single-threaded is the build-default, and seems to work well enough for
1.12.7, so remove the option to turn it off.

This is because build-options that influence such low-level/core
behavior are a pain to maintain.
2024-11-26 10:27:52 +02:00
0f16b22bf7 build: bump version to 1.12.7 2024-10-27 21:57:05 +02:00
d2343c6d62 mu-server: try avoiding xapian multi-threaded access
Try to avoid multi-threaded operations with Xapian.

This remove the thread workers during indexing, and avoids the indexing
background thread. So, mu4e has to wait once again during indexing.

We can improve upon that, but first we need to know if it avoids the
problem of issue #2756.
2024-10-08 11:23:04 +03:00
f1923fff7c build: bump version to 1.12.6 2024-07-27 16:42:33 +03:00
23941735df logging: rework a bit, maybe support syslog
Seems journal logging fails on NetBSD (no surprise), but has some
unwanted/not-fully-understood side-effects.

In any case, outside Linux there's no use in even trying to use
journald; so we don't do that anymore.

Add conditional support for syslog (requires glib 2.80).
2024-05-07 09:27:50 +03:00
b36e492d29 build: bump version to 1.12.5
New version 1.12.5

- Rework message composition; split off parts into mu4e-draft.el
  This tries harder to maintain the current buffer as expected
- This fixes e.g. emacs-report-bug handling
- New hook mu4e-compose-post-hook for tweaking what mu4e does when
  we're done with a message (after sending, cancelling, ...).
  By default, it tries to close the frame if needed, and restore
  the window configuration. See its docstring.
- Better handle forwarding of encoded messages
- Don't remove non-mu4e completion in composer
- Integrate iCalendar support with message-composition
- Handle mu4e-sent-messages-behavior correctly when it's a function
- Better support NetBSD
- Support some file systems that don't put the file type in d_type
- Improve documenation
2024-05-03 18:42:57 +03:00
5a48664033 lib: centralize xapian include, enable move semantics
Only include xapian.h in one place, so we can have consistent options.
With that in place, we can enable C++ move semantics.

We don't do anything with that yet, but we check in the meson.build file
to see if we have the required xapian version.
2024-05-01 17:02:24 +03:00
ac2515e66c build: bump version to 1.12.4
- query when quitting emacs with unhandled marks in a headers buffer
- fix mime-handling
- update sent handling (simplifying it)
- some internal improvements
- number of small fixes / updates
- documentation updates
- re-enable a specific database lock; this makes indexing a bit slower,
  but hopefully avoids some db corruption.
2024-04-15 19:05:22 +03:00
88d794c1da build: bump version to 1.12.3
- improve documentation / manpages
- add --reindex option to 'mu index'
- split off mu4e-complete-contact (for wider use)
- work around some mail rendering issues with some emacs version
- update some dependencies
- fix some build warnings on older emacsen
- fix musl build
2024-04-08 23:22:35 +03:00
b25f1130de build: rationalize emacs dep checking 2024-04-02 18:39:51 +03:00
15c9a3ea51 build: avoid some test-only declarations
Only when we actually need them.
2024-04-02 07:40:20 +03:00