• Bez kategorii

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

Może Ci się również spodoba

Dodaj komentarz