TODO
====
[ ] Add urlview
[ ] Add msmtp
[ ] Add X (quite a task!)
Done
----
[x] Add SASL, rebuild s-nail, neomutt, isync
[x] neomutt: Add real code of missing ncurses functions instead of placeholders?
What would be the license of the combined work? Alternatively, revisit one
more time replacing netbsd-curses with ncurses?
- Ultimately decided to add ncurses after all. Also replaced LibreSSL with
OpenSSL, and adjusted neomutt for complete static compilation.
[x] Add isync
[x] Add neomutt
[x] Determine minimal set of dependencies to run Luke Smith's
mutt-wizard and add those first
[x] xapian-core
[x] notmuch (rabbit hole...)
[x] gmime
[x] glib
[x] xmlto
[x] docbook-xml
- Every bloated program eventually
ends up requiring XML crap.
[x] docbook-xsl-nons
- Compiles (after workarounds to support netbsd-curses), but
segfaults.
- Look for alternative? aerc is out of the question since Go is out of
the question.
- The segfault happens because tigetstr("tsl") in gui/terminal.c:63
returns an invalid pointer, which is *not* (char*)-1 nor NULL
- Create a debug version of netbsd-curses and debug that? With
now-added gdb
- The problem is in __UNCONST - the cast appears to strip the initial
2 bytes, rendering the pointer invalid - -fPIC related perhaps? -
Recompiled everything with -fPIC, still segfaults
- Mock test program tigetstr-test.c which initializes ncurses, then
calls the same tigetstr("tsl") runs fine. (??)
Compile it with
gcc -O0 -g -Wall tigetstr-test.c -o tigetstr-test \
-lncurses -lterminfo
- Things to try:
1. [x] Check placeholder stubs (use_extended_names...)
- Not related to them
2. [x] Use a more thorough mockup, with more included code up
to segv
- Mockup still works, Neomutt doesn't
3. [x] Ask neomutt devs
- No answer yet
4.a. [/] Introduce ncurses (worst option, avoid if possible)
- Still contemplating
- Ultimately decided against it, as the solution was
found
4.b. [x] Orthogonal, more in line with basic philosophy: try
with S-nail (mailx) for now; all the dependencies above
are then not needed
- Added; leaving dependencies though
- **Solved** by adding `#include <term.h>` in gui/terminal.c, which
adds the exact prototype of tigetstr, so the cast by __UNCONST works.
Inspiration from
https://stackoverflow.com/a/8553162/
[x] Add gdb!
[x] Add patches
[x] https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/
msg1824486.html
[x] Investigate why is install sometimes incorrectly defined as ../install in
Makefiles
- Auto*hell crap; can be overridden by `make INSTALL=install install`
- Precise cause is INSTALL=install; autoconf slaps path relative to base src
dir in front of install cmd for some reason. When set to, for example,
INSTALL=/bin/install, it works.
[/] Create separate .mk for Auto*hell packages (standard.mk is not applicable)
- It would complicate things instead of simplifying. Better to create custom
rules.