Build and Install Changes to NeoMutt
There are a lot of changes coming to NeoMutt's build and install. I suggest using this issue as a discussion board and creating pull-requests as needed. Whether you make changes as they happen in NeoMutt, or wait for us to finish, is up to you.
version number doesn't contain mutt's version no mutt strings, only neomutt
Since its creation NeoMutt has stripped out a lot of compatibility code that Mutt had, for: regexes, iconv, ... We now rely on the host system to provide these.
Also, we have reduced the number of build choices. Having so many configure options made testing the Mutt build a nightmare. Any options that didn't require any external dependencies are now built-in by default:
- compressed
- imap
- nntp
- pop
- sidebar
- smtp
I suggest making all the remaining configurable options available to the user.
Pull-request #763 renames a few more files to ensure that Mutt and NeoMutt can be installed in parallel.
renaming files/dirs/binary renaming to avoid clashes sort out contrib refs to file locations
travis/docker testing hobarrera docker test build in branch promote to master on travis success
does autosetup cmp before deleting .dist files?
mime.types will clash fedora: mailcap debian: mime-support
Future change
The plan is to replace the autoconf build system with autosetup. autosetup will make it easier for us to maintain the build system. Also, it's simpler to use and quicker.
The configure options have changed and been standardised. Summary of changes: neomutt/neomutt#745 (comment)
.sed coming
You can experiment with it, here: autosetup: branch [devel/autosetup]
Both systems will be available in parallel for several releases
Future change
Currently, there's one repo which contains everything. The plan is to split into three repos: code, docs, contrib.
This will make more packages to deal with, but will make each one much simpler.
Future change
deprecation warnings for users: synonyms, muttrc, five stages
Stages for config symbols:
-
Advanced notices to users
mutt -DX
list all deprecations with replacements -
Warn user once after startup (suggest
mutt -DX
) Warn user if they source Warn user if they manually enter Symbols are recognised as deprecated, but still accepted -
Warn user of every symbol Pause after warnings Symbols are recognised as deprecated, but still accepted
-
Deprecation 1 Symbols are recognised as deprecated, but not accepted Warnings for unrecognised symbols
-
Deprecation 2 Symbols are no longer recognised at all
Stages for muttrc:
-
Advanced notices to users
mutt -DX
list all deprecated names with replacements -
Warn user once after startup (suggest
mutt -DX
) -
Warn user Pause after warnings Files are recognised as deprecated, but still accepted
-
Deprecation 1 Files are recognised as deprecated, but not accepted Warnings for unrecognised symbols
-
Deprecation 2 Files are no longer recognised at all
https://www.neomutt.org/distro.html
I'd like these to be understandable by a complete novice. This includes NeoMutt developers who might have a VM with your OS in it.
Imagine they've started with a minimal install of the OS, what do they need to do?
-
Support Which versions / streams of the OS are supported?
-
Installation Simple instructions to install NeoMutt
-
Update How to update both NeoMutt and the main system
-
Removal How to remove NeoMutt How to downgrade to Mutt
-
Building from Source How to install the build requirements for NeoMutt (the specifics of the build are common to all) How to install NeoMutt
-
Debugging How to install the debugging requirements for NeoMutt (the specifics of debugging NeoMutt are common to all)
create branches merge when you're happy
at release time, shioyama or flatcap can promote the changes to AUR