Страница 1 из 1
не собирается exim в redhat4
Добавлено: 2009-02-27 10:46:26
swood
При сборке exim-4.69 в этой чудесной системе процесс сборки вываливается вот с этой ошибкой:
Код: Выделить всё
ar cq auths.a
ranlib auths.a
make[2]: Leaving directory `/root/exim_src/exim-4.69/build-Linux-athlon/auths'
make[1]: *** No rule to make target `lookups/lookups.a', needed by `exim'. Stop.
make[1]: Leaving directory `/root/exim_src/exim-4.69/build-Linux-athlon'
make: *** [go] Error 2
Облазил интернет - ничего толкового не нашел. Если нужно будет - могу выложить и Makefile.
Re: не собирается exim в redhat4
Добавлено: 2009-02-27 11:02:46
hizel
вы с поддержкой мускула собираете?
почему не использовать какой нибудь уже собранный пакет?
Re: не собирается exim в redhat4
Добавлено: 2009-02-27 11:34:47
swood
Мне нужна поддержка в exim spf и dkim - предсобраные RPM этого не предоставляют. Собираю да, с поддержкой мускула, при этом сам мускул и devel-пакет стоит.
Re: не собирается exim в redhat4
Добавлено: 2009-02-27 11:37:31
hizel
Код: Выделить всё
LOOKUP_INCLUDE=-I /usr/include/mysql
LOOKUP_LIBS=-lmysqlclient
может либы не там ищет,
по хорошему взять src.rpm и из него собрать в пакетик

Re: не собирается exim в redhat4
Добавлено: 2009-02-27 11:50:36
swood
У меня указано вот так:
Код: Выделить всё
LOOKUP_INCLUDE=-I/usr/include/ldap -I/usr/include/mysql -I/usr/include/sqlite
LOOKUP_LIBS=-L/usr/lib -lldap -llber -L/usr/lib -lmysqlclient -lsqlite3
Собственно Makefile я почти полностью содрал с генту, он там автоматом генерится.
srpm я пробовал - увы...отваливается вообще на непонятном мне моменте сборки.
Re: не собирается exim в redhat4
Добавлено: 2009-02-27 12:48:25
hizel
Код: Выделить всё
/usr/include/ldap
/usr/include/mysql
/usr/include/sqlite
тут всё что нужно имеется?
конфигурация сборки кака?
Re: не собирается exim в redhat4
Добавлено: 2009-02-27 13:12:25
swood
Хедеры лежат в /usr/include, хедеры мускула лежат в /usr/include/mysql .
Конфиг следующий:
Код: Выделить всё
CFLAGS += -I/usr/include/libdomainkeys
EXPERIMENTAL_DOMAINKEYS=yes
LDFLAGS += -lcrypto -ldomainkeys -L/usr/lib/libdomainkeys
CFLAGS += -I/usr/local/include
LOOKUP_SQLITE=yes
AUTH_DOVECOT=yes
AUTH_PLAINTEXT=yes
AUTH_SPA=yes
BIN_DIRECTORY=/usr/sbin
CFLAGS=-march=opteron -O2 -pipe -fomit-frame-pointer
COMPRESS_COMMAND=/bin/gzip
COMPRESS_SUFFIX=gz
CONFIGURE_FILE=/etc/exim/exim.conf
DLOPEN_LOCAL_SCAN=yes
EXICYCLOG_MAX=10
EXIM_PERL=perl.o
EXIM_USER=mail
EXPERIMENTAL_SPF=yes
EXTRALIBS= -lspf2 -lpam -lwrap -Wl,-O1
FIXED_NEVER_USERS=root
HEADERS_CHARSET="ISO-8859-1"
LDAP_LIB_TYPE=OPENLDAP2
LFLAGS=-rdynamic -ldl
LOG_FILE_PATH=syslog
LOOKUP_CDB=yes
LOOKUP_DBM=yes
LOOKUP_DSEARCH=yes
LOOKUP_INCLUDE=-I/usr/include/ldap -I/usr/include/mysql -I/usr/include/sqlite
LOOKUP_LDAP=yes
LOOKUP_LIBS=-L/usr/lib -lldap -llber -L/usr/lib -lmysqlclient -lsqlite3
LOOKUP_LSEARCH=yes
LOOKUP_MYSQL=yes
LOOKUP_PASSWD=yes
PID_FILE_PATH=/var/run/exim.pid
ROUTER_ACCEPT=yes
ROUTER_DNSLOOKUP=yes
ROUTER_IPLITERAL=yes
ROUTER_MANUALROUTE=yes
ROUTER_QUERYPROGRAM=yes
ROUTER_REDIRECT=yes
SPOOL_DIRECTORY=/var/spool/exim
SUPPORT_MAILDIR=yes
SUPPORT_MAILSTORE=yes
SUPPORT_PAM=yes
SUPPORT_TLS=yes
SYSLOG_LOG_PID=yes
SYSTEM_ALIASES_FILE=/etc/aliases
TLS_LIBS=-lgnutls -ltasn1 -lgcrypt
TMPDIR="/tmp"
TRANSPORT_APPENDFILE=yes
TRANSPORT_AUTOREPLY=yes
TRANSPORT_PIPE=yes
TRANSPORT_SMTP=yes
USE_GNUTLS=yes
USE_TCP_WRAPPERS=yes
USE_TCP_WRAPPERS=yes
WITH_CONTENT_SCAN=yes
WITH_OLD_DEMIME=yes
ZCAT_COMMAND=/bin/zcat
Re: не собирается exim в redhat4
Добавлено: 2009-02-27 13:36:15
hizel
кстати если всё на месте, то
Are you attempting to rebuild Exim after you made changes to
Local/Makefile? If so, you may need to rm -rf the build-
directory and 'make makefile' to force a rebuild of the down-level
Makefiles.
делали?

Re: не собирается exim в redhat4
Добавлено: 2009-02-27 13:45:53
swood
Только что сделал - результат от этого не изменился

Может кто-то тоже сталкивался с подобным и удивительным в этой японской недоделке?

Re: не собирается exim в redhat4
Добавлено: 2009-02-27 13:51:53
hizel
приведите побольше лога сборки, что там до ar ?
Re: не собирается exim в redhat4
Добавлено: 2009-02-27 13:58:59
swood
Вот он полностью:
Код: Выделить всё
# make
`Makefile' is up to date.
make[1]: Entering directory `/root/exim_src/exim-4.69/build-Linux-athlon'
/bin/sh ../scripts/Configure-os.h
/bin/sh ../scripts/Configure-os.c
gcc buildconfig.c
/bin/sh ../scripts/Configure-config.h "make"
make[2]: Entering directory `/root/exim_src/exim-4.69/build-Linux-athlon'
make[2]: `buildconfig' is up to date.
make[2]: Leaving directory `/root/exim_src/exim-4.69/build-Linux-athlon'
Building configuration file config.h
>>> config.h built
make[2]: Entering directory `/root/exim_src/exim-4.69/build-Linux-athlon/pcre'
gcc pcre_maketables.c
gcc pcre_chartables.c
gcc pcre_fullinfo.c
gcc pcre_get.c
gcc pcre_globals.c
gcc pcre_compile.c
gcc pcre_config.c
gcc pcre_exec.c
gcc pcre_newline.c
gcc pcre_study.c
gcc pcre_tables.c
gcc pcre_try_flipped.c
gcc pcre_version.c
rm -f libpcre.a
ar cq libpcre.a
ranlib libpcre.a
gcc pcretest.c
gcc -o ../pcretest pcretest.o libpcre.a
make[2]: Leaving directory `/root/exim_src/exim-4.69/build-Linux-athlon/pcre'
>>> exicyclog script built
>>> exinext script built
>>> exiwhat script built
>>> exigrep script built
>>> eximstats script built
>>> exipick script built
>>> exiqgrep script built
>>> exiqsumm script built
>>> transport-filter.pl script built
>>> convert4r3 script built
>>> convert4r4 script built
>>> exim_checkaccess script built
gcc exim_dbmbuild.c
gcc -o exim_dbmbuild
>>> exim_dbmbuild utility built
gcc -DEXIM_DUMPDB exim_dbutil.c
gcc -DCOMPILE_UTILITY os.c
gcc -DCOMPILE_UTILITY store.c
gcc -o exim_dumpdb
>>> exim_dumpdb utility built
gcc -DEXIM_FIXDB exim_dbutil.c
gcc -o exim_fixdb
>>> exim_fixdb utility built
gcc -DEXIM_TIDYDB exim_dbutil.c
gcc -o exim_tidydb
>>> exim_tidydb utility built
gcc exim_lock.c
gcc -o exim_lock
>>> exim_lock utility built
make[2]: Entering directory `/root/exim_src/exim-4.69/build-Linux-athlon/lookups'
gcc cdb.c
gcc dbmdb.c
gcc dkim.c
gcc dnsdb.c
gcc dsearch.c
gcc ibase.c
gcc ldap.c
gcc lsearch.c
gcc mysql.c
gcc nis.c
gcc nisplus.c
gcc oracle.c
gcc passwd.c
gcc pgsql.c
gcc spf.c
spf.c: In function 'spf_open':
spf.c:36: error: 'SPF_server_t' undeclared (first use in this function)
spf.c:36: error: (Each undeclared identifier is reported only once
spf.c:36: error: for each function it appears in.)
spf.c:36: error: 'spf_server' undeclared (first use in this function)
spf.c:37: error: 'SPF_DNS_CACHE' undeclared (first use in this function)
spf.c: In function 'spf_close':
spf.c:46: error: 'SPF_server_t' undeclared (first use in this function)
spf.c:46: error: 'spf_server' undeclared (first use in this function)
spf.c: In function 'spf_find':
spf.c:52: error: 'SPF_server_t' undeclared (first use in this function)
spf.c:52: error: 'spf_server' undeclared (first use in this function)
spf.c:53: error: 'SPF_request_t' undeclared (first use in this function)
spf.c:53: error: 'spf_request' undeclared (first use in this function)
spf.c:54: error: 'SPF_response_t' undeclared (first use in this function)
spf.c:54: error: 'spf_response' undeclared (first use in this function)
make[2]: *** [spf.o] Error 1
make[2]: Leaving directory `/root/exim_src/exim-4.69/build-Linux-athlon/lookups'
make[2]: Entering directory `/root/exim_src/exim-4.69/build-Linux-athlon/routers'
gcc accept.c
gcc dnslookup.c
gcc ipliteral.c
gcc iplookup.c
gcc manualroute.c
gcc queryprogram.c
gcc redirect.c
gcc rf_change_domain.c
gcc rf_expand_data.c
gcc rf_get_errors_address.c
gcc rf_get_munge_headers.c
gcc rf_get_transport.c
gcc rf_get_ugid.c
gcc rf_lookup_hostlist.c
gcc rf_queue_add.c
gcc rf_self_action.c
gcc rf_set_ugid.c
ar cq routers.a
ranlib routers.a
make[2]: Leaving directory `/root/exim_src/exim-4.69/build-Linux-athlon/routers'
make[2]: Entering directory `/root/exim_src/exim-4.69/build-Linux-athlon/transports'
gcc appendfile.c
gcc autoreply.c
gcc lmtp.c
gcc pipe.c
gcc smtp.c
gcc tf_maildir.c
ar cq transports.a
ranlib transports.a
make[2]: Leaving directory `/root/exim_src/exim-4.69/build-Linux-athlon/transports'
make[2]: Entering directory `/root/exim_src/exim-4.69/build-Linux-athlon/auths'
gcc auth-spa.c
gcc b64decode.c
gcc b64encode.c
gcc call_pam.c
gcc call_pwcheck.c
gcc call_radius.c
gcc check_serv_cond.c
gcc cram_md5.c
gcc cyrus_sasl.c
gcc dovecot.c
gcc get_data.c
gcc get_no64_data.c
gcc md5.c
gcc plaintext.c
gcc pwcheck.c
gcc sha1.c
gcc spa.c
gcc xtextdecode.c
gcc xtextencode.c
ar cq auths.a
ranlib auths.a
make[2]: Leaving directory `/root/exim_src/exim-4.69/build-Linux-athlon/auths'
make[1]: *** No rule to make target `lookups/lookups.a', needed by `exim'. Stop.
make[1]: Leaving directory `/root/exim_src/exim-4.69/build-Linux-athlon'
make: *** [go] Error 2
Re: не собирается exim в redhat4
Добавлено: 2009-02-27 14:12:14
hizel
libspf стоит?

Re: не собирается exim в redhat4
Добавлено: 2009-02-27 14:17:25
swood
Стоит, борьбу с этой библиотекой я выиграл, равно как и с dkim.
Re: не собирается exim в redhat4
Добавлено: 2009-02-27 14:51:49
hizel
их две версии, во всяком случае у меня в debian
и если libspf заголовки валяются в /usr/include то libspf2 в /usr/include/spf2/
Re: не собирается exim в redhat4
Добавлено: 2009-02-27 15:01:32
swood
Сборщик до решения проблемы с libspf ругался на то, что нет хедеров этой библиотеки. Я их поставил - ругаться перестал. Я, честно сказать сомневаюсь, что если он перестал на них ругаться, то потом из-за того, что они ему не нравятся, вываливается.
Лично меня смущают аутефикаторы. В конфиге указаны строго те, которые мне нужны, но почему-то он пытается собрать и cyrus, и еще какую-то лабуду. Может быть из-за этого в итоге и отваливается. Но это лично мое предположение...
Что же до дебиана, то там у меня получалось пересобрать exim, правда при этом я обновлял полностью все зависимости. Благо Дебиан в отличие от redhat позволяет что-то делать и пользователю системы, то есть обладает большей гибкостью.
Re: не собирается exim в redhat4
Добавлено: 2009-02-27 15:20:40
hizel
ошибка у вас строго здесь
Код: Выделить всё
spf.c: In function 'spf_open':
spf.c:36: error: 'SPF_server_t' undeclared (first use in this function)
spf.c:36: error: (Each undeclared identifier is reported only once
spf.c:36: error: for each function it appears in.)
spf.c:36: error: 'spf_server' undeclared (first use in this function)
spf.c:37: error: 'SPF_DNS_CACHE' undeclared (first use in this function)
spf.c: In function 'spf_close':
spf.c:46: error: 'SPF_server_t' undeclared (first use in this function)
spf.c:46: error: 'spf_server' undeclared (first use in this function)
spf.c: In function 'spf_find':
spf.c:52: error: 'SPF_server_t' undeclared (first use in this function)
spf.c:52: error: 'spf_server' undeclared (first use in this function)
spf.c:53: error: 'SPF_request_t' undeclared (first use in this function)
spf.c:53: error: 'spf_request' undeclared (first use in this function)
spf.c:54: error: 'SPF_response_t' undeclared (first use in this function)
spf.c:54: error: 'spf_response' undeclared (first use in this function)
make[2]: *** [spf.o] Error 1
make[2]: Leaving directory `/root/exim_src/exim-4.69/build-Linux-athlon/lookups'
далее на примере моей системы
два libspf
Код: Выделить всё
hizel@hzwork:~$ dpkg -l | grep spf
ii libmail-spf-perl 2.005-1 Perl implementation of Sender Policy Framework and Sender ID
ii libspf-dev 0.999-1.0.0-p3.dfsg-2 the ANSI C SPF reference library (development files)
ii libspf0 0.999-1.0.0-p3.dfsg-2 the ANSI C SPF reference library (runtime library)
ii libspf2-2 1.2.9-1 library for validating mail senders with SPF
ii libspf2-dev 1.2.9-1 Header and development libraries for libspf2
в первом
Код: Выделить всё
hizel@hzwork:~$ dpkg -L libspf-dev
/.
/usr
/usr/lib
/usr/lib/libspf.a
/usr/lib/libspf.la
/usr/share
/usr/share/doc
/usr/include
/usr/include/_stdint.h
/usr/include/spf.h
/usr/lib/libspf.so
/usr/share/doc/libspf-dev
во втором
Код: Выделить всё
hizel@hzwork:~$ dpkg -L libspf2-dev
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/libspf2-dev
/usr/share/doc/libspf2-dev/README.Debian
/usr/share/doc/libspf2-dev/copyright
/usr/share/doc/libspf2-dev/README.gz
/usr/share/doc/libspf2-dev/TODO.gz
/usr/share/doc/libspf2-dev/changelog.Debian.gz
/usr/lib
/usr/lib/libspf2.a
/usr/lib/libspf2.la
/usr/include
/usr/include/spf2
/usr/include/spf2/spf.h
/usr/include/spf2/spf_dns.h
/usr/include/spf2/spf_dns_cache.h
/usr/include/spf2/spf_dns_null.h
/usr/include/spf2/spf_dns_resolv.h
/usr/include/spf2/spf_dns_rr.h
/usr/include/spf2/spf_dns_test.h
/usr/include/spf2/spf_dns_zone.h
/usr/include/spf2/spf_lib_version.h
/usr/include/spf2/spf_log.h
/usr/include/spf2/spf_record.h
/usr/include/spf2/spf_request.h
/usr/include/spf2/spf_response.h
/usr/include/spf2/spf_server.h
/usr/lib/libspf2.so
берем на шару из вашей ошибки одну строчку и грепаем
в первом пусто
Код: Выделить всё
hizel@hzwork:~$ grep SPF_server_t /usr/include/spf.h
hizel@hzwork:~$
во втором пожалуйста
Код: Выделить всё
hizel@hzwork:~$ grep SPF_server_t /usr/include/spf2/*
/usr/include/spf2/spf_dns.h:typedef SPF_errcode_t (*SPF_dns_get_spf_t)( SPF_server_t *spf_server,
/usr/include/spf2/spf_dns.h:typedef SPF_errcode_t (*SPF_dns_get_exp_t)( SPF_server_t *spf_server,
/usr/include/spf2/spf_dns.h:typedef int (*SPF_dns_add_cache_t)( SPF_server_t *spf_server,
/usr/include/spf2/spf_dns.h: * the structure is assumed to be shared between multiple SPF_server_t
/usr/include/spf2/spf_record.h: SPF_server_t *spf_server;
/usr/include/spf2/spf_record.h:SPF_record_t *SPF_record_new(SPF_server_t *spf_server,
/usr/include/spf2/spf_record.h:SPF_errcode_t SPF_record_find_mod_data(SPF_server_t *spf_server,
/usr/include/spf2/spf_record.h:SPF_errcode_t SPF_record_find_mod_value(SPF_server_t *spf_server,
/usr/include/spf2/spf_record.h:SPF_errcode_t SPF_record_compile(SPF_server_t *spf_server,
/usr/include/spf2/spf_record.h:SPF_errcode_t SPF_record_compile_macro(SPF_server_t *spf_server,
/usr/include/spf2/spf_record.h:SPF_errcode_t SPF_record_expand_data(SPF_server_t *spf_server,
/usr/include/spf2/spf_request.h: SPF_server_t *spf_server; /* The server. */
/usr/include/spf2/spf_request.h:SPF_request_t *SPF_request_new(SPF_server_t *spf_server);
/usr/include/spf2/spf_request.h:SPF_errcode_t SPF_request_get_exp(SPF_server_t *spf_server,
/usr/include/spf2/spf_server.h:typedef struct SPF_server_struct SPF_server_t;
/usr/include/spf2/spf_server.h:SPF_server_t *SPF_server_new(SPF_server_dnstype_t dnstype,int debug);
/usr/include/spf2/spf_server.h:SPF_server_t *SPF_server_new_dns(SPF_dns_server_t *dns,int debug);
/usr/include/spf2/spf_server.h:void SPF_server_free(SPF_server_t *sp);
/usr/include/spf2/spf_server.h:SPF_errcode_t SPF_server_set_rec_dom(SPF_server_t *sp,
/usr/include/spf2/spf_server.h:SPF_errcode_t SPF_server_set_sanitize(SPF_server_t *sp,
/usr/include/spf2/spf_server.h:SPF_errcode_t SPF_server_set_explanation(SPF_server_t *sp,
/usr/include/spf2/spf_server.h:SPF_errcode_t SPF_server_set_localpolicy(SPF_server_t *sp,
/usr/include/spf2/spf_server.h:SPF_errcode_t SPF_server_get_record(SPF_server_t *spf_server,
/usr/include/spf2/spf_server.h: SPF_server_set_ ## f(SPF_server_t *spf_server, int n); \
/usr/include/spf2/spf_server.h: SPF_server_get_ ## f(SPF_server_t *spf_server);
в связи с чем вопрос какой у вас libspf стоит?

Re: не собирается exim в redhat4
Добавлено: 2009-02-27 15:46:21
swood
Стоит, вот то, что установлено:
Код: Выделить всё
# rpm -qa | grep libspf
libspf2-devel-1.0.4-12
libspf2-1.0.4-12
libspf2-progs-1.0.4-12
Смотрим дальше:
Код: Выделить всё
ls /usr/include/spf2/
spf.h spf_dns.h spf_dns_cache.h spf_dns_null.h spf_dns_resolv.h spf_dns_test.h spf_dns_zone.h spf_lib_version.h
И еще:
Код: Выделить всё
ls /usr/lib/ | grep spf
libspf2.a
libspf2.la
libspf2.so
libspf2.so.1
libspf2.so.1.0.0
Ответ положительный - libspf2 в системе есть.
Re: не собирается exim в redhat4
Добавлено: 2009-02-27 15:51:09
hizel
тогда может добавить в
LOOKUP_INCLUDE,
LOOKUP_LIBS соответствующие пути

Re: не собирается exim в redhat4
Добавлено: 2009-02-27 16:44:42
swood
Поставил libspf2-1.2.5 вместо предыдущей, спасибо за подсказку, сборка продвинулась дальше. Но теперь вот такие грабли:
Код: Выделить всё
awk '{ print ($1+1) }' cnumber.h > cnumber.temp
rm -f cnumber.h; mv cnumber.temp cnumber.h
gcc version.c
rm -f exim
gcc -o exim
/usr/bin/ld: cannot find -ltasn1
collect2: ld returned 1 exit status
make[1]: *** [exim] Error 1
make[1]: Leaving directory `/root/exim_src/exim-4.69/build-Linux-athlon'
make: *** [go] Error 2
Случайно не подскажете чего ему еще не хватает?
Re: не собирается exim в redhat4
Добавлено: 2009-02-27 16:55:45
hizel
libtasn1-dev ?
Re: не собирается exim в redhat4
Добавлено: 2009-02-27 16:59:02
swood
Собрал! Спасибо за советы и помощь! Тему можно закрыть...

Re: не собирается exim в redhat4
Добавлено: 2009-02-27 17:29:39
hizel
хазяин барин
