~strahinja/galeb-mkfiles

ref: 9fc626fa425edcde88b482c3102a12ce86419cc6 galeb-mkfiles/TODO -rw-r--r-- 3.1 KiB
9fc626faСтрахиња Радић Add cyrus-sasl 4 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
TODO
====

[x] Add SASL, rebuild s-nail, neomutt, isync

[ ] Add urlview

[ ] Add msmtp

[ ] Add X (quite a task!)


Done
----

[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.