Patches needed to compile and install EDE on MINIX 3.4
Prerequisites
Many packages required can be installed by pkgin, such as fltk, and dbus. Check this page for a list.
Compiling EDELIB
Warnings with ‘libfontconfig.so’
You may see warnings indicating libfontconfig.so.2 may conflict with libfontconfig.so.1. You can just use pkgin to remove fontconfig.
Errors with ‘is_macro’ and similar
You will see jam throwing errors about ‘is_macro’, ‘is_inport’, and ‘is_outport’. To resolve this, edit the file src/ts/scheme.c and remove the word INLINE from each INTERFACE INLINE int line for these three variables.
Source: [https://sourceforge.net/p/ede/discussion/249616/thread/f1b2dd27/#25af](<> https://sourceforge.net/p/ede/discussion/249616/thread/f1b2dd27/#25af>)
Compiling EDE
Package config path for EDELIB
Run this in-line or add it to your ~/.profile or ~/.bashrc file
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
Errors about ext/slist in pekwm/observable.hh
ext/slist seems to be provided only in gcc’s libstdc++ but not Clang’s. Since we only have Clang (unless you want to compile and install gcc), we need to patch the source files to use forward_list instead of ext/slist. This is a really fun part. You need to look for these codes and do the replacement in the source (including config files):
- Replace all instances of
__gnu_cxx::slistandslistwithstd::forward_list - Replace
ext/slistwithforward_list - There’s a definition of
SLIST_NAMESPACE, define it tostdinstead.
Moreover, forward_list does not have a .size() method. Therefore, in observer.cc, replace all instances with .empty().
Error about libdl
To avoid the error in linking ede-panel/ede-panel due to a lack of a separate libdl (recent MINIX3 uses ld.elf_so; see also here), go to ede-panel/Jamfile, and comment out the line
LinkAgainst ede-panel : -ldl ;
To this point, I was able to compile and install both EDE and EDELIB without errors. However, I am yet able to startede successfully.
[Unconfirmed] In case of dynamic linking issues, I edited
ede-panel/AppletManager.cppand get rid of dlopen(). Not sure if this is necessary but it’s yet helpful.