PDA

Просмотр полной версии : ClamAV 0.90


Dronga
27.02.2007, 17:58
С выходом последней версии ClamAv у огромного числа людей возникли проблемы, особенно у тех кто использует на серверах FreeBSD <6.0. На более поздних версиях проблема не наблюдается. Собственно, лог:
#make
....
[cutted]
....
/bin/sh /usr/local/bin/libtool --tag=CC --mode=link cc -O -pipe -mcpu=pentiumpro -L/usr/local/lib -pthread -o libclamav.la -rpath /usr/local/lib -thread-safe -version-info 1:40:0 -no-undefined matcher-ac.lo matcher-bm.lo matcher-ncore.lo matcher.lo md5.lo others.lo readdb.lo cvd.lo dsig.lo str.lo scanners.lo filetypes.lo rtf.lo blob.lo mbox.lo message.lo snprintf.lo table.lo text.lo ole2_extract.lo vba_extract.lo msexpand.lo pe.lo upx.lo htmlnorm.lo chmunpack.lo rebuildpe.lo petite.lo wwunpack.lo suecrypt.lo unsp.lo packlibs.lo fsg.lo mew.lo upack.lo line.lo untar.lo unzip.lo special.lo binhex.lo is_tar.lo tnef.lo unrar15.lo unrarvm.lo unrar.lo unrarfilter.lo unrarppm.lo unrar20.lo unrarcmd.lo pdf.lo spin.lo yc.lo elf.lo sis.lo uuencode.lo phishcheck.lo phish_domaincheck_db.lo phish_whitelist.lo regex_list.lo sha256.lo mspack.lo cab.lo entconv.lo hashtab.lo dconf.lo lockdb.lo -liconv -lz -lbz2 -lgmp -L/usr/local/lib -lcurl -rpath=/usr/lib:/usr/local/lib -lssl -lcrypto -lz -lpthread -lc_r
cc -shared .libs/matcher-ac.o .libs/matcher-bm.o .libs/matcher-ncore.o .libs/matcher.o .libs/md5.o .libs/others.o .libs/readdb.o .libs/cvd.o .libs/dsig.o .libs/str.o .libs/scanners.o .libs/filetypes.o .libs/rtf.o .libs/blob.o .libs/mbox.o .libs/message.o .libs/snprintf.o .libs/table.o .libs/text.o .libs/ole2_extract.o .libs/vba_extract.o .libs/msexpand.o .libs/pe.o .libs/upx.o .libs/htmlnorm.o .libs/chmunpack.o .libs/rebuildpe.o .libs/petite.o .libs/wwunpack.o .libs/suecrypt.o .libs/unsp.o .libs/packlibs.o .libs/fsg.o .libs/mew.o .libs/upack.o .libs/line.o .libs/untar.o .libs/unzip.o .libs/special.o .libs/binhex.o .libs/is_tar.o .libs/tnef.o .libs/unrar15.o .libs/unrarvm.o .libs/unrar.o .libs/unrarfilter.o .libs/unrarppm.o .libs/unrar20.o .libs/unrarcmd.o .libs/pdf.o .libs/spin.o .libs/yc.o .libs/elf.o .libs/sis.o .libs/uuencode.o .libs/phishcheck.o .libs/phish_domaincheck_db.o .libs/phish_whitelist.o .libs/regex_list.o .libs/sha256.o .libs/mspack.o .libs/cab.o .libs/entconv.o .libs/hashtab.o .libs/dconf.o .libs/lockdb.o -Wl,--rpath -Wl,/usr/local/lib -Wl,--rpath -Wl,/usr/local/lib -L/usr/local/lib -pthread -liconv -lbz2 /usr/local/lib/libgmp.so /usr/local/lib/libcurl.so -lssl -lcrypto -lz -lpthread -mcpu=pentiumpro -pthread -pthread -pthread -Wl,-soname -Wl,libclamav.so.1 -o .libs/libclamav.so.1
/usr/bin/ld: cannot find -lpthread
*** Error code 1

Stop in /usr/ports/security/clamav/work/clamav-0.90/libclamav.
*** Error code 1

Stop in /usr/ports/security/clamav/work/clamav-0.90.
*** Error code 1

Stop in /usr/ports/security/clamav/work/clamav-0.90.
*** Error code 1

Stop in /usr/ports/security/clamav.

Поиски решения привели на страничку https://wwws.clamav.net/bugzilla/show_bug.cgi?id=314, собственно всё сводится к замене lpthread на pthread.

Перехожу в /usr/ports/security/clamav/work/clamav-0.90, правим configure и здесь же делаю configure&make. Всё проходит благополучно, следом:
# make install
===> Building for clamav-0.90_2
make all-recursive
Making all in libclamav
Making all in clamscan
/usr/local/bin/bash /usr/local/bin/libtool --tag=CC --mode=link gcc -g -O2 -o clamscan output.o getopt.o memory.o cfgparser.o misc.o options.o clamscan.o others.o manager.o treewalk.o ../libclamav/libclamav.la -pthread -lc_r
gcc -g -O2 -o .libs/clamscan output.o getopt.o memory.o cfgparser.o misc.o options.o clamscan.o others.o manager.o treewalk.o -pthread ../libclamav/.libs/libclamav.so -lbz2 -L/usr/local/lib /usr/local/lib/libcurl.so -lssl -lcrypto -lz -pthread -Wl,--rpath -Wl,/usr/local/lib
../libclamav/.libs/libclamav.so: undefined reference to `__gmpz_clear'
../libclamav/.libs/libclamav.so: undefined reference to `__gmpz_mul_2exp'
../libclamav/.libs/libclamav.so: undefined reference to `__gmpz_set_ui'
../libclamav/.libs/libclamav.so: undefined reference to `__gmpz_powm'
../libclamav/.libs/libclamav.so: undefined reference to `__gmpz_init'
../libclamav/.libs/libclamav.so: undefined reference to `__gmpz_tdiv_qr_ui'
../libclamav/.libs/libclamav.so: undefined reference to `__gmpz_add'
../libclamav/.libs/libclamav.so: undefined reference to `__gmpz_init_set_str'
*** Error code 1

Stop in /usr/ports/security/clamav/work/clamav-0.90/clamscan.
*** Error code 1

Stop in /usr/ports/security/clamav/work/clamav-0.90.
*** Error code 1

Stop in /usr/ports/security/clamav/work/clamav-0.90.
*** Error code 1

Stop in /usr/ports/security/clamav.

Что делать?? Как победить??

gcc
27.02.2007, 23:00
А может все таки актуальнее будет обновиться до 6.2 ?

hsi
28.02.2007, 12:50
Новая версия ClamAV не собирается на старых ОСях. И, по-моему, это никто не может поправить. Выход - использовать предыдущую версию AV.

Dronga
28.02.2007, 13:19
А может все таки актуальнее будет обновиться до 6.2 ?Нет, спасибо, нам сервак ещё живой нужен =) Вот когда сам сервак новый решим поднимать, вот тогда это приемлимо, а сейчас, с учетом того сколько на нём повязано...
Новая версия ClamAV не собирается на старых ОСях. И, по-моему, это никто не может поправить. Выход - использовать предыдущую версию AV.
Очень смелое заявление, хотелось бы увидеть линк на оффициальное подтверждение. Нашел только линк на оффициальное опровержение: http://wiki.clamav.net/Main/UpgradeNotes090 + назвать 5-ю ветку FreeBSD старой ОСью у меня язык как-то не поворачивается.

Откатился на 0.88.7, но freshclam воет. Тема актуальна.

Dronga
05.05.2007, 14:01
После отката на 0.88.7 было решено просто ждать и вот, наконец-то, вышел clamav-0.90.2_1
cd /usr/ports/security/clamav/
make clean
make install
Всё без ошибок. Смотрим, появились стартовые скрипты. При попытке запуске выдало:
# /usr/local/etc/rc.d/clamav-freshclam.sh start
Starting clamav_freshclam.
ERROR: Parse error at line 76: Option NotifyClamd requires string argument.
ERROR: Parse error at line 34: Option LogTime requires boolean argument.
ERROR: Can't parse the config file /usr/local/etc/clamd.conf
Значится конфиги не совместимы. В конфиги поставляемые с дистрибом не стал лезть, а пошел по пути меньшего сопротивления: на что ругался, то и исправил. Единственное, ClamAV заявил что не в курсе про директиву ScanRAR, я её закомментировал. Примерно всё выглядит так:
# Log time with each message.
# Default: disabled
#_Ranwe bilo prosto LogTime_
LogTime true

# Due to license issues libclamav does not support RAR 3.0 archives (only the
old 2.0 format is supported). Because some users report stability problems
# with unrarlib it's disabled by default and you must uncomment the directive
# below to enable RAR 2.0 support.
# Default: disabled
#ScanRAR true
После исправления аналогичных ошибок clamd прекарасно запускается.
Следом clamav-freshclam.sh попытался пропарить мозги в том же духе =) В результате имеем:
--------------------------------------
freshclam daemon 0.90.2 (OS: freebsd5.2.1, ARCH: i386, CPU: i386)
ClamAV update process started at Sat May 5 13:17:23 2007
main.cvd is up to date (version: 43, sigs: 104500, f-level: 14, builder: sven)
Downloading daily-3205.cdiff [100%]
Downloading daily-3206.cdiff [100%]
Downloading daily-3207.cdiff [100%]
Downloading daily-3208.cdiff [100%]
daily.cvd updated (version: 3208, sigs: 9572, f-level: 15, builder: ccordes)
Database updated (114072 signatures) from db.RU.clamav.net (IP: 83.222.14.114)
WARNING: Clamd was NOT notified: Can't find or parse configuration file true
--------------------------------------
Что, в общем и целом, меня устраивает =)

Наконец-то они его доработали, первый релиз серии 0.90 был совсем сырой, были огромные проблемы с совместимостью. Здесь кажется все проблемы решены. Молодцы, что ещё сказать.