Commit Graph

226 Commits

Author SHA1 Message Date
f763e7b3bc mu: install mu-icon
Not the best icon in the world, but have to start somewhere. It's
obviously based on Emacs' official icon.
2026-08-20 15:05:32 -07:00
ac52584562 build: modernize meson usage
Since we require meson 1.3(.2), we can modernize the usage a bit,
as well as improve some logic

- use / instead of join_paths
- use option.allowed() instead of !option.disable()
- use cxx.get_supported_arguments
- use fs.copyfile instead of configure_file
- show a summary at the end of the configuration
2026-08-20 15:05:32 -07:00
6889aaadb8 build: bump version to 1.14.3-pre5 2026-08-20 15:05:31 -07:00
e585d60511 build: bump version to 1.14.3-pre4 2026-08-20 15:05:31 -07:00
03021df79d build: set BUILD_SCM to 0 when there is no guile
As per #2938
2026-08-20 15:05:31 -07:00
57ce31876f build: bump version to 1.14.3-pre3 2026-08-20 15:05:31 -07:00
a347d3ada0 properties: support system-properties
Support "system" properties, i.e., library versions, whether
language-detection, scm is supported.

Make these more generic (with display strings), so we can handle them
more automatic int mu-cmd-info.
2026-08-20 15:05:30 -07:00
39c8472dba build: bump version to 1.14.3-pre2 2026-08-20 15:05:30 -07:00
1d1c1df4b3 build: bump version to 1.14.3-pre1 2026-08-20 15:05:30 -07:00
d321c9cfe1 build: bump version to 1.14.2
New stable version:

- silence some MIME part errors
- some emacs 28.1+ modernization
- list org links with M-x mu4e-org-agenda-links
- when replying to a message with some part selected, cite only that
  part
- fix parsing of the Keywords: headers. If you use those, you're
  recommend to re-index your message
2026-08-20 15:05:30 -07:00
2ba741117a build: bump version to 1.14.2-pre1 2026-08-20 15:05:30 -07:00
7911cf4ded build: bump version to 1.14.1
New stable version:

- Improvements in documentation
- Improvements in display of attachments / MIME-parts
- Better HTML toggling
- Support MIME icons
- Bug fixes
2026-08-20 15:05:29 -07:00
8f282b5812 build: bump version to 1.14.1-pre3 2026-08-20 15:05:29 -07:00
195e775cac build: bump version to 1.14.1-pre2 2026-08-20 15:05:29 -07:00
cfae6fd724 build: bump version to 1.14.1-pre1 2026-08-20 15:05:29 -07:00
ed65c99b30 build: bump version to 1.14.0
A new major version. Not so much has changed since the last of the 1.12
series, 1.12.15, but a bunch of small fixes and:

- updated requirements:
   - require C++20
   - require meson 1.3.2
   - require glib & friend: 2.80
   - require xapian 1.4.22
    - emacs 28.1 (for mu4e)
- warn for deprecated guile (use scm)
- a number of code-cleanups since we can use C++20 now

- indexing: substantial speed-up of the clean-up phase

- scm: support the --eval command-line option

- mu4e: improve message rendering; get rid of some the unnecessary
  body-part mime indication noise

- mu4e: allow including received patches when replying, see
    mu4e-compose-reply-include-mime-types

NEWS.org has more details.
2026-08-20 15:05:28 -07:00
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