gnarwl-3.5
GNARWL jest autoresponderem działającym po stronie serwera pocztowego, jest to odpowiednik programu Vacation wzbogacony m. in. o współpracę z katalogiem LDAP. Więcej informacji o programie oraz jego zastosowaniu można znaleźć na stronie projektu: http://www.onyxbits.de/gnarwl. Ja nie będę się nad tym rozwodził, skupię się na kompilacji i instalacji tego oprogramowania pod Solarisem 10 przy użyciu kompilatora z Sun Studio.
Ogólnie mówiąc GNARWL nie jest przystosowany do kompilacji przy użyciu Sun Studio, ale po pewnych poprawkach da się tego dokonać. Pierwszym problemem jest opcja -Wall
w CFLAGS
. Powoduje ona wyświetlanie wszystkich ostrzeżeń (Warning) przy kompilacji z użyciem gcc
. W Solarisowym cc
nie ma takiej opcji, więc należy się jej pozbyć najlepiej od razu z Makefile.in
(patch w załączniku). Następnym problemem może być brak ścieżek do bibliotek lub brak oprogramowania pomocniczego. U mnie był już zainstalowany OpenLDAP ale brakowało GDBM i groff. Kompilację tych brakujących klocków opisałem na osobnych stronach do których prowadzą odnośniki.
Pozostaje jeszcze sprawić aby przy linkowaniu były brane pod uwagę ustawione przez nas flagi kompilatora CFLAGS
i LDFLAGS
. Jak przyjrzymy się plikowi Makefile.in, to widać, że flagi te ustawiane są bez uwzględnienia flag ze środowiska. Wobec tego znów należy wyedytować plik Makefile.in
i dopisać do CFLAGS
i LFLAGS
odpowiednio @CFLAGS@
i @LDFLAGS@
@LIBS@
. Do zmiennej środowiskowej LIBS
dopisałem "-liconv -lmtsk"
aby dołączył biblioteki libiconv i libmtsk. Aby w przyszłości nie kombinować wytworzyłem patcha, którego umieściłem w załączniku. Aby go nałożyć trzeba być w katalogu nadrzędnym dla źródeł gnarwl i użyć polecenia:
$ patch -u -p0 < gnarwl-3.5-s10-patch-by-drfugazi.diff
Oczywiście polecam GNU patch (gpatch).
I jeszcze jedno - jeśli wystąpią takie błędy podczas instalacji (make install):
find: cannot follow symbolic link /bin/bil2xd: No such file or directory find: cannot follow symbolic link /bin/checkjava: No such file or directory find: cannot follow symbolic link /bin/gil2xd: No such file or directory find: cannot follow symbolic link /bin/smallxd: No such file or directory [...] find: cycle detected for /lib/32/ find: cycle detected for /lib/secure/32/ [...] install: gnarwl was not found anywhere! gmake[1]: *** [install] Error 2
to znaczy, że Solarisowy install (/usr/sbin/install) nie radzi sobie z instalacją i należy użyć GNU install. Znajduje się on w pakiecie GNU Coreutils, obok wielu innych często przydatnych narzędzi GNU, ale ja wyciągnąłem sobie tylko ginstall (gmake ginstall).