Thanks for Brian's answer* * 1 I add the missed,such as [root@mail postfix-2.9.3]# make -f Makefile.init makefiles CCARGS="-DHAS_MYSQL -I/usr/local/mysql/include" AUXLIBS="-L/usr/local/mysql/lib -lmysqlclient" and still have the problem, sorry about long log
[root@mail postfix-2.9.3]# make set -e; for i in src/util src/global src/dns src/tls src/xsasl src/milter src/master src/postfix src/fsstone src/smtpstone src/sendmail src/error src/pickup src/cleanup src/smtpd src/local src/trivial-rewrite src/qmgr src/oqmgr src/smtp src/bounce src/pipe src/showq src/postalias src/postcat src/postconf src/postdrop src/postkick src/postlock src/postlog src/postmap src/postqueue src/postsuper src/qmqpd src/spawn src/flush src/verify src/virtual src/proxymap src/anvil src/scache src/discard src/tlsmgr src/postmulti src/postscreen src/dnsblog src/tlsproxy; do \ (set -e; echo "[$i]"; cd $i; make 'CC=gcc -Wmissing-prototypes -Wformat -DHAS_MYSQL -I/usr/local/mysql/include' update MAKELEVEL=) || exit 1; \ done [src/util] for i in argv.h attr.h attr_clnt.h auto_clnt.h base64_code.h binhash.h chroot_uid.h cidr_match.h clean_env.h connect.h ctable.h dict.h dict_cdb.h dict_cidr.h dict_db.h dict_dbm.h dict_env.h dict_ht.h dict_ni.h dict_nis.h dict_nisplus.h dict_pcre.h dict_regexp.h dict_sdbm.h dict_static.h dict_tcp.h dict_unix.h dir_forest.h events.h exec_command.h find_inet.h fsspace.h fullname.h get_domainname.h get_hostname.h hex_code.h hex_quote.h host_port.h htable.h inet_addr_host.h inet_addr_list.h inet_addr_local.h inet_proto.h iostuff.h line_wrap.h listen.h lstat_as.h mac_expand.h mac_parse.h make_dirs.h mask_addr.h match_list.h msg.h msg_output.h msg_syslog.h msg_vstream.h mvect.h myaddrinfo.h myflock.h mymalloc.h myrand.h name_code.h name_mask.h netstring.h nvtable.h open_as.h open_lock.h percentm.h posix_signals.h readlline.h ring.h safe.h safe_open.h sane_accept.h sane_connect.h sane_fsops.h sane_socketpair.h sane_time.h scan_dir.h set_eugid.h set_ugid.h sigdelay.h sock_addr.h spawn_command.h split_at.h stat_as.h stringops.h sys_defs.h timed_connect.h timed_wait.h trigger.h username.h valid_hostname.h vbuf.h vbuf_print.h vstream.h vstring.h vstring_vstream.h watchdog.h format_tv.h load_file.h killme_after.h edit_file.h dict_cache.h dict_thash.h ip_match.h nbbio.h base32_code.h dict_fail.h warn_stat.h; \ do \ cmp -s $i ../../include/$i 2>/dev/null || cp $i ../../include; \ done cd ../../include; chmod 644 argv.h attr.h attr_clnt.h auto_clnt.h base64_code.h binhash.h chroot_uid.h cidr_match.h clean_env.h connect.h ctable.h dict.h dict_cdb.h dict_cidr.h dict_db.h dict_dbm.h dict_env.h dict_ht.h dict_ni.h dict_nis.h dict_nisplus.h dict_pcre.h dict_regexp.h dict_sdbm.h dict_static.h dict_tcp.h dict_unix.h dir_forest.h events.h exec_command.h find_inet.h fsspace.h fullname.h get_domainname.h get_hostname.h hex_code.h hex_quote.h host_port.h htable.h inet_addr_host.h inet_addr_list.h inet_addr_local.h inet_proto.h iostuff.h line_wrap.h listen.h lstat_as.h mac_expand.h mac_parse.h make_dirs.h mask_addr.h match_list.h msg.h msg_output.h msg_syslog.h msg_vstream.h mvect.h myaddrinfo.h myflock.h mymalloc.h myrand.h name_code.h name_mask.h netstring.h nvtable.h open_as.h open_lock.h percentm.h posix_signals.h readlline.h ring.h safe.h safe_open.h sane_accept.h sane_connect.h sane_fsops.h sane_socketpair.h sane_time.h scan_dir.h set_eugid.h set_ugid.h sigdelay.h sock_addr.h spawn_command.h split_at.h stat_as.h stringops.h sys_defs.h timed_connect.h timed_wait.h trigger.h username.h valid_hostname.h vbuf.h vbuf_print.h vstream.h vstring.h vstring_vstream.h watchdog.h format_tv.h load_file.h killme_after.h edit_file.h dict_cache.h dict_thash.h ip_match.h nbbio.h base32_code.h dict_fail.h warn_stat.h [src/global] gcc -Wmissing-prototypes -Wformat -DHAS_MYSQL -I/usr/local/mysql/include -g -O -I. -I../../include -DLINUX2 -c dict_mysql.c dict_mysql.c:169:19: error: mysql.h: No such file or directory dict_mysql.c:199: error: expected specifier-qualifier-list before ‘MYSQL’ dict_mysql.c:245: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token dict_mysql.c: In function ‘dict_mysql_lookup’: dict_mysql.c:290: error: ‘MYSQL_RES’ undeclared (first use in this function) dict_mysql.c:290: error: (Each undeclared identifier is reported only once dict_mysql.c:290: error: for each function it appears in.) dict_mysql.c:290: error: ‘query_res’ undeclared (first use in this function) dict_mysql.c:291: error: ‘MYSQL_ROW’ undeclared (first use in this function) dict_mysql.c:291: error: expected ‘;’ before ‘row’ dict_mysql.c:369: error: ‘row’ undeclared (first use in this function) dict_mysql.c: In function ‘dict_mysql_check_stat’: dict_mysql.c:392: error: ‘HOST’ has no member named ‘stat’ dict_mysql.c:392: error: ‘HOST’ has no member named ‘type’ dict_mysql.c:394: error: ‘HOST’ has no member named ‘stat’ dict_mysql.c:394: error: ‘HOST’ has no member named ‘ts’ dict_mysql.c:394: error: ‘HOST’ has no member named ‘ts’ dict_mysql.c: In function ‘dict_mysql_get_active’: dict_mysql.c:443: error: ‘HOST’ has no member named ‘hostname’ dict_mysql.c:459: error: ‘HOST’ has no member named ‘hostname’ dict_mysql.c:461: error: ‘HOST’ has no member named ‘stat’ dict_mysql.c: In function ‘dict_mysql_event’: dict_mysql.c:475: error: ‘HOST’ has no member named ‘db’ dict_mysql.c: At top level: dict_mysql.c:486: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token dict_mysql.c: In function ‘plmysql_connect_single’: dict_mysql.c:539: error: ‘HOST’ has no member named ‘db’ dict_mysql.c:541: error: ‘HOST’ has no member named ‘db’ dict_mysql.c:542: error: ‘HOST’ has no member named ‘type’ dict_mysql.c:542: error: ‘HOST’ has no member named ‘name’ dict_mysql.c:546: error: ‘HOST’ has no member named ‘port’ dict_mysql.c:547: error: ‘HOST’ has no member named ‘type’ dict_mysql.c:547: error: ‘HOST’ has no member named ‘name’ dict_mysql.c:551: error: ‘HOST’ has no member named ‘hostname’ dict_mysql.c:552: error: ‘HOST’ has no member named ‘stat’ dict_mysql.c:555: error: ‘HOST’ has no member named ‘hostname’ dict_mysql.c:555: error: ‘HOST’ has no member named ‘db’ dict_mysql.c: In function ‘plmysql_close_host’: dict_mysql.c:563: error: ‘HOST’ has no member named ‘db’ dict_mysql.c:564: error: ‘HOST’ has no member named ‘db’ dict_mysql.c:565: error: ‘HOST’ has no member named ‘stat’ dict_mysql.c: In function ‘plmysql_down_host’: dict_mysql.c:574: error: ‘HOST’ has no member named ‘db’ dict_mysql.c:575: error: ‘HOST’ has no member named ‘db’ dict_mysql.c:576: error: ‘HOST’ has no member named ‘ts’ dict_mysql.c:577: error: ‘HOST’ has no member named ‘stat’ dict_mysql.c: In function ‘host_init’: dict_mysql.c:715: error: ‘HOST’ has no member named ‘db’ dict_mysql.c:716: error: ‘HOST’ has no member named ‘hostname’ dict_mysql.c:717: error: ‘HOST’ has no member named ‘port’ dict_mysql.c:718: error: ‘HOST’ has no member named ‘stat’ dict_mysql.c:719: error: ‘HOST’ has no member named ‘ts’ dict_mysql.c:727: error: ‘HOST’ has no member named ‘type’ dict_mysql.c:731: error: ‘HOST’ has no member named ‘type’ dict_mysql.c:733: error: ‘HOST’ has no member named ‘name’ dict_mysql.c:734: error: ‘HOST’ has no member named ‘name’ dict_mysql.c:735: error: ‘HOST’ has no member named ‘port’ dict_mysql.c:736: error: ‘HOST’ has no member named ‘name’ dict_mysql.c:738: error: ‘HOST’ has no member named ‘name’ dict_mysql.c:739: error: ‘HOST’ has no member named ‘name’ dict_mysql.c:740: error: ‘HOST’ has no member named ‘type’ dict_mysql.c:744: error: ‘HOST’ has no member named ‘name’ dict_mysql.c:744: error: ‘HOST’ has no member named ‘name’ dict_mysql.c:745: error: ‘HOST’ has no member named ‘port’ dict_mysql.c:745: error: ‘HOST’ has no member named ‘type’ dict_mysql.c: In function ‘plmysql_dealloc’: dict_mysql.c:778: error: ‘HOST’ has no member named ‘db’ dict_mysql.c:779: error: ‘HOST’ has no member named ‘db’ dict_mysql.c:780: error: ‘HOST’ has no member named ‘hostname’ dict_mysql.c:781: error: ‘HOST’ has no member named ‘name’ dict_mysql.c:782: error: ‘HOST’ has no member named ‘name’ make: *** [dict_mysql.o] Error 1 make: *** [update] Error 1 2 I read the document http://www.postfix.org/PCRE_README.html , use command like that [root@mail postfix-2.9.3]# make -f Makefile.init makefiles CCARGS="-DHAS_PCRE -I/usr/local/include" AUXLIBS="-L/usr/local/lib -R/usr/local/lib -lpcre" and still so long log, sorry [root@mail postfix-2.9.3]# make set -e; for i in src/util src/global src/dns src/tls src/xsasl src/milter src/master src/postfix src/fsstone src/smtpstone src/sendmail src/error src/pickup src/cleanup src/smtpd src/local src/trivial-rewrite src/qmgr src/oqmgr src/smtp src/bounce src/pipe src/showq src/postalias src/postcat src/postconf src/postdrop src/postkick src/postlock src/postlog src/postmap src/postqueue src/postsuper src/qmqpd src/spawn src/flush src/verify src/virtual src/proxymap src/anvil src/scache src/discard src/tlsmgr src/postmulti src/postscreen src/dnsblog src/tlsproxy; do \ (set -e; echo "[$i]"; cd $i; make 'CC=gcc -Wmissing-prototypes -Wformat -DHAS_PCRE -I/usr/local/include' update MAKELEVEL=) || exit 1; \ done [src/util] gcc -Wmissing-prototypes -Wformat -DHAS_PCRE -I/usr/local/include -g -O -I. -DLINUX2 -c dict_pcre.c dict_pcre.c:61:18: error: pcre.h: No such file or directory dict_pcre.c:86: error: expected specifier-qualifier-list before ‘pcre’ dict_pcre.c:102: error: expected specifier-qualifier-list before ‘pcre’ dict_pcre.c:111: error: expected specifier-qualifier-list before ‘pcre’ dict_pcre.c: In function ‘dict_pcre_expand’: dict_pcre.c:182: error: ‘PCRE_ERROR_NOSUBSTRING’ undeclared (first use in this function) dict_pcre.c:182: error: (Each undeclared identifier is reported only once dict_pcre.c:182: error: for each function it appears in.) dict_pcre.c: In function ‘dict_pcre_exec_error’: dict_pcre.c:215: error: ‘PCRE_ERROR_NULL’ undeclared (first use in this function) dict_pcre.c:216: error: ‘PCRE_ERROR_BADOPTION’ undeclared (first use in this function) dict_pcre.c:219: error: ‘PCRE_ERROR_BADMAGIC’ undeclared (first use in this function) dict_pcre.c:220: error: ‘PCRE_ERROR_UNKNOWN_NODE’ undeclared (first use in this function) dict_pcre.c: In function ‘dict_pcre_lookup’: dict_pcre.c:290: error: ‘DICT_PCRE_MATCH_RULE’ has no member named ‘pattern’ dict_pcre.c:290: error: ‘DICT_PCRE_MATCH_RULE’ has no member named ‘hints’ dict_pcre.c:296: error: ‘DICT_PCRE_MATCH_RULE’ has no member named ‘match’ dict_pcre.c:298: error: ‘PCRE_ERROR_NOMATCH’ undeclared (first use in this function) dict_pcre.c:299: error: ‘DICT_PCRE_MATCH_RULE’ has no member named ‘match’ dict_pcre.c:312: error: ‘DICT_PCRE_MATCH_RULE’ has no member named ‘max_sub’ dict_pcre.c:313: error: ‘DICT_PCRE_MATCH_RULE’ has no member named ‘replacement’ dict_pcre.c:325: error: ‘DICT_PCRE_MATCH_RULE’ has no member named ‘replacement’ dict_pcre.c:341: error: ‘DICT_PCRE_IF_RULE’ has no member named ‘pattern’ dict_pcre.c:341: error: ‘DICT_PCRE_IF_RULE’ has no member named ‘hints’ dict_pcre.c:347: error: ‘DICT_PCRE_IF_RULE’ has no member named ‘match’ dict_pcre.c:350: error: ‘DICT_PCRE_IF_RULE’ has no member named ‘match’ dict_pcre.c: In function ‘dict_pcre_close’: dict_pcre.c:389: error: ‘DICT_PCRE_MATCH_RULE’ has no member named ‘pattern’ dict_pcre.c:390: error: ‘DICT_PCRE_MATCH_RULE’ has no member named ‘pattern’ dict_pcre.c:391: error: ‘DICT_PCRE_MATCH_RULE’ has no member named ‘hints’ dict_pcre.c:392: error: ‘DICT_PCRE_MATCH_RULE’ has no member named ‘hints’ dict_pcre.c:393: error: ‘DICT_PCRE_MATCH_RULE’ has no member named ‘replacement’ dict_pcre.c:394: error: ‘DICT_PCRE_MATCH_RULE’ has no member named ‘replacement’ dict_pcre.c:398: error: ‘DICT_PCRE_IF_RULE’ has no member named ‘pattern’ dict_pcre.c:399: error: ‘DICT_PCRE_IF_RULE’ has no member named ‘pattern’ dict_pcre.c:400: error: ‘DICT_PCRE_IF_RULE’ has no member named ‘hints’ dict_pcre.c:401: error: ‘DICT_PCRE_IF_RULE’ has no member named ‘hints’ dict_pcre.c: In function ‘dict_pcre_get_pattern’: dict_pcre.c:470: error: ‘PCRE_CASELESS’ undeclared (first use in this function) dict_pcre.c:470: error: ‘PCRE_DOTALL’ undeclared (first use in this function) dict_pcre.c:477: error: ‘PCRE_MULTILINE’ undeclared (first use in this function) dict_pcre.c:483: error: ‘PCRE_EXTENDED’ undeclared (first use in this function) dict_pcre.c:486: error: ‘PCRE_ANCHORED’ undeclared (first use in this function) dict_pcre.c:489: error: ‘PCRE_DOLLAR_ENDONLY’ undeclared (first use in this function) dict_pcre.c:492: error: ‘PCRE_UNGREEDY’ undeclared (first use in this function) dict_pcre.c:495: error: ‘PCRE_EXTRA’ undeclared (first use in this function) dict_pcre.c: In function ‘dict_pcre_compile’: dict_pcre.c:556: error: ‘DICT_PCRE_ENGINE’ has no member named ‘pattern’ dict_pcre.c:558: error: ‘DICT_PCRE_ENGINE’ has no member named ‘pattern’ dict_pcre.c:563: error: ‘DICT_PCRE_ENGINE’ has no member named ‘hints’ dict_pcre.c:563: error: ‘DICT_PCRE_ENGINE’ has no member named ‘pattern’ dict_pcre.c:567: error: ‘DICT_PCRE_ENGINE’ has no member named ‘pattern’ dict_pcre.c: In function ‘dict_pcre_parse_rule’: dict_pcre.c:693: error: ‘DICT_PCRE_MATCH_RULE’ has no member named ‘match’ dict_pcre.c:694: error: ‘DICT_PCRE_MATCH_RULE’ has no member named ‘max_sub’ dict_pcre.c:696: error: ‘DICT_PCRE_MATCH_RULE’ has no member named ‘replacement’ dict_pcre.c:698: error: ‘DICT_PCRE_MATCH_RULE’ has no member named ‘replacement’ dict_pcre.c:699: error: ‘DICT_PCRE_MATCH_RULE’ has no member named ‘pattern’ dict_pcre.c:699: error: ‘DICT_PCRE_ENGINE’ has no member named ‘pattern’ dict_pcre.c:700: error: ‘DICT_PCRE_MATCH_RULE’ has no member named ‘hints’ dict_pcre.c:700: error: ‘DICT_PCRE_ENGINE’ has no member named ‘hints’ dict_pcre.c:746: error: ‘DICT_PCRE_IF_RULE’ has no member named ‘match’ dict_pcre.c:747: error: ‘DICT_PCRE_IF_RULE’ has no member named ‘pattern’ dict_pcre.c:747: error: ‘DICT_PCRE_ENGINE’ has no member named ‘pattern’ dict_pcre.c:748: error: ‘DICT_PCRE_IF_RULE’ has no member named ‘hints’ dict_pcre.c:748: error: ‘DICT_PCRE_ENGINE’ has no member named ‘hints’ dict_pcre.c: In function ‘dict_pcre_open’: dict_pcre.c:840: error: ‘pcre_malloc’ undeclared (first use in this function) dict_pcre.c:841: error: ‘pcre_free’ undeclared (first use in this function) make: *** [dict_pcre.o] Error 1 make: *** [update] Error 1 I don't know how to fix it. Help me Thanks a lot TOM 2012/7/11 Brian Evans - Postfix List <grkni...@scent-team.com> > On 7/10/2012 11:52 AM, Feel Zhou wrote: > > Hello My friend > > > > My system is Centos 6.2 with postfix-2.6.6, When I use command > > postconf -m, and got many support: > > btree;cidr;environ;hash;ldap;mysql;nis;pcre;proxy;regexp;static;unix; > > So I down the new version postfix-2.9.3, and use make install, got > > some problem. > > [root@mail]make -f Makefile.init makefiles \ > > >CCARGS="-DHAS_DB -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -DUSE_TLS > > -DHAS_LDAP \ > > >-I/usr/local/include -I/usr/local/BerkeleyDB/include > > -I/usr/include/sasl " \ > > >AUXLIBS="-L/usr/local/lib -L/usr/local/BerkeleyDB/lib > > -L/usr/lib/sasl2 \ > > > -ldb -lssl -lcrypto -lsasl2 -lz -lm -lldap -llber" > > postconf -m, support: > > > btree;cidr;environ;fail;hash;internal;ldap;memcache;nis;proxy;regexp;static;tcp;texthash;unix; > > This is work well. But do not support mysql and pcre > > 1 If I add "-DHAS_MYSQL -I/usr/local/mysql/include" in CCARGS > > and add "-L/usr/local/mysql/lib" in AUXLIBS, the command make will > > be error about mysql. > > You missed '-lmysqlclient' in the AUXLIBS as noted in > http://www.postfix.org/MYSQL_README.html. > > > 2 How can I support pcre, because I need the perl support. > > Because you did not request it. > Please review http://www.postfix.org/PCRE_README.html > > Brian > >