Hi, I have a problem to install postfix from ports First, I installed djbdns and qmail, and now, I would like to install postfix but it doesn't compile. So, what's wrong? bunker# cd /usr/ports/mail/postfix bunker# make install ===> Building for postfix-2.0.18,1 set -e; for i in src/util src/global src/dns src/master src/postfix src/smtpstone src/sendmail src/error src/pickup src/cleanup src/smtpd src/local src/lmtp src/trivial-rewrite src/qmgr 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/nqmgr src/qmqpd src/spawn src/flush src/virtual src/proxymap src/tlsmgr; do (set -e; echo "[$i]"; cd $i; make 'CC=cc -DUSE_SASL_AUTH -I/usr/local/include -I/usr/local/include/sasl -DHAS_SSL -I/usr/include -I/usr/local/include/db41 -DHAS_MYSQL -I/usr/local/include/mysql -DHAS_PGSQL -I/usr/local/include -I/usr/local/pgsql/include -DHAS_LDAP -I/usr/local/include -DHAS_PCRE -I/usr/local/include' update MAKELEVEL=) || exit 1; done [src/util] for i in argv.h attr.h base64_code.h binhash.h chroot_uid.h clean_env.h connect.h ctable.h dict.h dict_db.h dict_dbm.h dict_env.h dict_ht.h dict_ldap.h dict_mysql.h dict_ni.h dict_nis.h dict_nisplus.h dict_pcre.h dict_pgsql.h dict_regexp.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_quote.h htable.h inet_addr_host.h inet_addr_list.h inet_addr_local.h inet_util.h intv.h iostuff.h line_wrap.h listen.h lstat_as.h mac_expand.h mac_parse.h make_dirs.h match_list.h match_ops.h msg.h msg_output.h msg_syslog.h msg_vstream.h mvect.h myflock.h mymalloc.h myrand.h name_mask.h netstring.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_fsops.h sane_socketpair.h sane_time.h scan_dir.h set_eugid.h set_ugid.h sigdelay.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 nvtable.h host_port.h sane_connect.h dict_sdbm.h sdbm.h; do cmp -s $i ../../include/$i 2>/dev/null || cp $i ../../include; done cd ../../include; chmod 644 argv.h attr.h base64_code.h binhash.h chroot_uid.h clean_env.h connect.h ctable.h dict.h dict_db.h dict_dbm.h dict_env.h dict_ht.h dict_ldap.h dict_mysql.h dict_ni.h dict_nis.h dict_nisplus.h dict_pcre.h dict_pgsql.h dict_regexp.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_quote.h htable.h inet_addr_host.h inet_addr_list.h inet_addr_local.h inet_util.h intv.h iostuff.h line_wrap.h listen.h lstat_as.h mac_expand.h mac_parse.h make_dirs.h match_list.h match_ops.h msg.h msg_output.h msg_syslog.h msg_vstream.h mvect.h myflock.h mymalloc.h myrand.h name_mask.h netstring.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_fsops.h sane_socketpair.h sane_time.h scan_dir.h set_eugid.h set_ugid.h sigdelay.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 nvtable.h host_port.h sane_connect.h dict_sdbm.h sdbm.h [src/global] for i in been_here.h bounce.h canon_addr.h cleanup_user.h clnt_stream.h config.h debug_peer.h debug_process.h defer.h deliver_completed.h deliver_flock.h deliver_pass.h deliver_request.h domain_list.h dot_lockfile.h dot_lockfile_as.h ext_prop.h file_id.h header_opts.h is_header.h mail_addr.h mail_addr_crunch.h mail_addr_find.h mail_addr_map.h mail_conf.h mail_copy.h mail_date.h mail_error.h mail_flush.h mail_open_ok.h mail_params.h mail_proto.h mail_queue.h mail_run.h mail_scan_dir.h mail_stream.h mail_task.h mail_version.h maps.h mark_corrupt.h mkmap.h mynetworks.h mypwd.h namadr_list.h off_cvt.h opened.h own_inet_addr.h pipe_command.h post_mail.h quote_821_local.h quote_822_local.h rec_streamlf.h rec_type.h recipient_list.h record.h resolve_clnt.h resolve_local.h rewrite_clnt.h sent.h smtp_stream.h split_addr.h string_list.h sys_exits.h timed_ipc.h tok822.h xtext.h bounce_log.h flush_clnt.h mbox_conf.h mbox_open.h abounce.h qmqp_proto.h verp_sender.h match_parent_style.h quote_flags.h mime_state.h header_token.h lex_822.h strip_addr.h virtual8_maps.h hold_message.h dict_proxy.h mail_dict.h pfixtls.h; do cmp -s $i ../../include/$i 2>/dev/null || cp $i ../../include; done cd ../../include; chmod 644 been_here.h bounce.h canon_addr.h cleanup_user.h clnt_stream.h config.h debug_peer.h debug_process.h defer.h deliver_completed.h deliver_flock.h deliver_pass.h deliver_request.h domain_list.h dot_lockfile.h dot_lockfile_as.h ext_prop.h file_id.h header_opts.h is_header.h mail_addr.h mail_addr_crunch.h mail_addr_find.h mail_addr_map.h mail_conf.h mail_copy.h mail_date.h mail_error.h mail_flush.h mail_open_ok.h mail_params.h mail_proto.h mail_queue.h mail_run.h mail_scan_dir.h mail_stream.h mail_task.h mail_version.h maps.h mark_corrupt.h mkmap.h mynetworks.h mypwd.h namadr_list.h off_cvt.h opened.h own_inet_addr.h pipe_command.h post_mail.h quote_821_local.h quote_822_local.h rec_streamlf.h rec_type.h recipient_list.h record.h resolve_clnt.h resolve_local.h rewrite_clnt.h sent.h smtp_stream.h split_addr.h string_list.h sys_exits.h timed_ipc.h tok822.h xtext.h bounce_log.h flush_clnt.h mbox_conf.h mbox_open.h abounce.h qmqp_proto.h verp_sender.h match_parent_style.h quote_flags.h mime_state.h header_token.h lex_822.h strip_addr.h virtual8_maps.h hold_message.h dict_proxy.h mail_dict.h pfixtls.h [src/dns] for i in dns.h; do cmp -s $i ../../include/$i 2>/dev/null || cp $i ../../include; done cd ../../include; chmod 644 dns.h [src/master] cc -DUSE_SASL_AUTH -I/usr/local/include -I/usr/local/include/sasl -DHAS_SSL -I/usr/include -I/usr/local/include/db41 -DHAS_MYSQL -I/usr/local/include/mysql -DHAS_PGSQL -I/usr/local/include -I/usr/local/pgsql/include -DHAS_LDAP -I/usr/local/include -DHAS_PCRE -I/usr/local/include -O -pipe -march=pentiumpro -I. -I../../include -DFREEBSD4 -o master master.o master_conf.o master_ent.o master_sig.o master_avail.o master_spawn.o master_service.o master_status.o master_listen.o master_vars.o master_wakeup.o master_flow.o ../../lib/libglobal.a ../../lib/libutil.a -L/usr/local/lib -lsasl2 -lpam -lcrypt -lkrb -lcrypto -lcom_err -L/usr/lib -lssl -lcrypto -L/usr/local/lib -ldb41 /usr/local/lib/mysql/libmysqlclient.a -lm -lz -L/usr/local/lib -L/usr/local/pgsql/lib -lpq -lcrypt -L/usr/local/lib -lldap -llber -L/usr/local/lib -lpcre /usr/libexec/elf/ld: cannot find -lkrb *** Error code 1 Stop in /usr/ports/mail/postfix/work/postfix-2.0.18/src/master. *** Error code 1 Stop in /usr/ports/mail/postfix/work/postfix-2.0.18. *** Error code 1 Stop in /usr/ports/mail/postfix. *** Error code 1 Stop in /usr/ports/mail/postfix. bunker# bunker# uname -a FreeBSD bunker.badboy.li 4.9-STABLE FreeBSD 4.9-STABLE #0: Wed Mar 3 16:09:57 CET 2004 root@bunker.badboy.li:/usr/obj/usr/src/sys/BUNKER i386 bunker# ********************************************************************** Diese Nachricht ist ausschliesslich fuer den bezeichneten Adressaten oder dessen Vertreter bestimmt. Beachten Sie bitte, dass jede Form der unautorisierten Nutzung, Veroeffentlichung, Vervielfaeltigung oder Weitergabe des Inhaltes der Email nicht gestattet ist. Sollten Sie nicht der vorgesehene Adressat dieser Email oder dessen Vertreter sein, so bitten wir Sie, sich mit dem Absender der Email in Verbindung zu setzen und anschliessend diese Email und saemtliche Anhaenge zu loeschen. ------------------------------------------------------------------------ This message is exclusively for the person addressed or their representative. Any form of the unauthorized use, publication, reproduction, copying or disclosure of the content of this e-mail is not permitted. If you are not the intended recipient of this message and its contents, please notify this sender immediately and delete this message and all its attachments subsequently. **********************************************************************
Looks like it cannot find a kerberos library. I have not used kerberos on FreeBSD, so make sure your kerberos is installed. I could have sworn there is a level of kerberos in the default install, but it might be possible if you did a mini or custom install you do not have it. Do you actually need kerberos? Can you pass some flags to the postfix port to not include Kerberos support? - Carroll Kong ----- Original Message ----- From: "Wolfgang Frick" <wolfgang.frick@llb.li> To: <stable@freebsd.org> Sent: Friday, March 05, 2004 4:51 AM Subject: Postfix install on 4.9> Hi, > I have a problem to install postfix from ports > > First, I installed djbdns and qmail, and now, I would like to install > postfix > but it doesn't compile. > > So, what's wrong? > > bunker# cd /usr/ports/mail/postfix > bunker# make install > ===> Building for postfix-2.0.18,1 > set -e; for i in src/util src/global src/dns src/master src/postfix > src/smtpstone src/sendmail src/error src/pickup src/cleanup src/smtpd > src/local > src/lmtp src/trivial-rewrite src/qmgr 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/nqmgr src/qmqpd > src/spawn src/flush src/virtual src/proxymap src/tlsmgr; do (set -e; > echo > "[$i]"; cd $i; make 'CC=cc -DUSE_SASL_AUTH -I/usr/local/include > -I/usr/local/include/sasl -DHAS_SSL -I/usr/include > -I/usr/local/include/db41 -DHAS_MYSQL > -I/usr/local/include/mysql -DHAS_PGSQL -I/usr/local/include > -I/usr/local/pgsql/include -DHAS_LDAP -I/usr/local/include -DHAS_PCRE > -I/usr/local/include' update > MAKELEVEL=) || exit 1; done > [src/util] > for i in argv.h attr.h base64_code.h binhash.h chroot_uid.h clean_env.h > connect.h ctable.h dict.h dict_db.h dict_dbm.h dict_env.h dict_ht.h > dict_ldap.h > dict_mysql.h dict_ni.h dict_nis.h dict_nisplus.h dict_pcre.h dict_pgsql.h > dict_regexp.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_quote.h htable.h inet_addr_host.h inet_addr_list.h inet_addr_local.h > inet_util.h intv.h iostuff.h line_wrap.h listen.h lstat_as.h mac_expand.h > mac_parse.h make_dirs.h match_list.h match_ops.h msg.h msg_output.h > msg_syslog.h > msg_vstream.h mvect.h myflock.h mymalloc.h myrand.h name_mask.h > netstring.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_fsops.h sane_socketpair.h sane_time.h > scan_dir.h set_eugid.h set_ugid.h sigdelay.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 nvtable.h host_port.h sane_connect.h dict_sdbm.h sdbm.h; do > cmp -s > $i ../../include/$i 2>/dev/null || cp $i ../../include; done > cd ../../include; chmod 644 argv.h attr.h base64_code.h binhash.h > chroot_uid.h clean_env.h connect.h ctable.h dict.h dict_db.h dict_dbm.h > dict_env.h > dict_ht.h dict_ldap.h dict_mysql.h dict_ni.h dict_nis.h dict_nisplus.h > dict_pcre.h dict_pgsql.h dict_regexp.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_quote.h htable.h inet_addr_host.h > inet_addr_list.h > inet_addr_local.h inet_util.h intv.h iostuff.h line_wrap.h listen.h > lstat_as.h > mac_expand.h mac_parse.h make_dirs.h match_list.h match_ops.h msg.h > msg_output.h msg_syslog.h msg_vstream.h mvect.h myflock.h mymalloc.h > myrand.h > name_mask.h netstring.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_fsops.h > sane_socketpair.h > sane_time.h scan_dir.h set_eugid.h set_ugid.h sigdelay.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 nvtable.h host_port.h sane_connect.h > dict_sdbm.h > sdbm.h > [src/global] > for i in been_here.h bounce.h canon_addr.h cleanup_user.h clnt_stream.h > config.h debug_peer.h debug_process.h defer.h deliver_completed.h > deliver_flock.h deliver_pass.h deliver_request.h domain_list.h > dot_lockfile.h > dot_lockfile_as.h ext_prop.h file_id.h header_opts.h is_header.h > mail_addr.h > mail_addr_crunch.h mail_addr_find.h mail_addr_map.h mail_conf.h > mail_copy.h > mail_date.h mail_error.h mail_flush.h mail_open_ok.h mail_params.h > mail_proto.h > mail_queue.h mail_run.h mail_scan_dir.h mail_stream.h mail_task.h > mail_version.h > maps.h mark_corrupt.h mkmap.h mynetworks.h mypwd.h namadr_list.h > off_cvt.h > opened.h own_inet_addr.h pipe_command.h post_mail.h quote_821_local.h > quote_822_local.h rec_streamlf.h rec_type.h recipient_list.h record.h > resolve_clnt.h resolve_local.h rewrite_clnt.h sent.h smtp_stream.h > split_addr.h > string_list.h sys_exits.h timed_ipc.h tok822.h xtext.h bounce_log.h > flush_clnt.h > mbox_conf.h mbox_open.h abounce.h qmqp_proto.h verp_sender.h > match_parent_style.h quote_flags.h mime_state.h header_token.h lex_822.h > strip_addr.h > virtual8_maps.h hold_message.h dict_proxy.h mail_dict.h pfixtls.h; do > cmp -s $i > ../../include/$i 2>/dev/null || cp $i ../../include; done > cd ../../include; chmod 644 been_here.h bounce.h canon_addr.h > cleanup_user.h > clnt_stream.h config.h debug_peer.h debug_process.h defer.h > deliver_completed.h deliver_flock.h deliver_pass.h deliver_request.h > domain_list.h > dot_lockfile.h dot_lockfile_as.h ext_prop.h file_id.h header_opts.h > is_header.h > mail_addr.h mail_addr_crunch.h mail_addr_find.h mail_addr_map.h > mail_conf.h > mail_copy.h mail_date.h mail_error.h mail_flush.h mail_open_ok.h > mail_params.h > mail_proto.h mail_queue.h mail_run.h mail_scan_dir.h mail_stream.h > mail_task.h mail_version.h maps.h mark_corrupt.h mkmap.h mynetworks.h > mypwd.h > namadr_list.h off_cvt.h opened.h own_inet_addr.h pipe_command.h > post_mail.h > quote_821_local.h quote_822_local.h rec_streamlf.h rec_type.h > recipient_list.h > record.h resolve_clnt.h resolve_local.h rewrite_clnt.h sent.h > smtp_stream.h > split_addr.h string_list.h sys_exits.h timed_ipc.h tok822.h xtext.h > bounce_log.h flush_clnt.h mbox_conf.h mbox_open.h abounce.h qmqp_proto.h > verp_sender.h > match_parent_style.h quote_flags.h mime_state.h header_token.h lex_822.h > strip_addr.h virtual8_maps.h hold_message.h dict_proxy.h mail_dict.h > pfixtls.h > [src/dns] > for i in dns.h; do cmp -s $i ../../include/$i 2>/dev/null || cp $i > ../../include; done > cd ../../include; chmod 644 dns.h > [src/master] > cc -DUSE_SASL_AUTH -I/usr/local/include -I/usr/local/include/sasl > -DHAS_SSL > -I/usr/include -I/usr/local/include/db41 -DHAS_MYSQL > -I/usr/local/include/mysql -DHAS_PGSQL -I/usr/local/include > -I/usr/local/pgsql/include -DHAS_LDAP > -I/usr/local/include -DHAS_PCRE -I/usr/local/include -O -pipe > -march=pentiumpro > -I. -I../../include -DFREEBSD4 -o master master.o master_conf.o > master_ent.o > master_sig.o master_avail.o master_spawn.o master_service.o > master_status.o > master_listen.o master_vars.o master_wakeup.o master_flow.o > ../../lib/libglobal.a ../../lib/libutil.a -L/usr/local/lib -lsasl2 -lpam > -lcrypt -lkrb > -lcrypto -lcom_err -L/usr/lib -lssl -lcrypto -L/usr/local/lib -ldb41 > /usr/local/lib/mysql/libmysqlclient.a -lm -lz -L/usr/local/lib > -L/usr/local/pgsql/lib -lpq > -lcrypt -L/usr/local/lib -lldap -llber -L/usr/local/lib -lpcre > /usr/libexec/elf/ld: cannot find -lkrb > *** Error code 1 > > Stop in /usr/ports/mail/postfix/work/postfix-2.0.18/src/master. > *** Error code 1 > > Stop in /usr/ports/mail/postfix/work/postfix-2.0.18. > *** Error code 1 > > Stop in /usr/ports/mail/postfix. > *** Error code 1 > > Stop in /usr/ports/mail/postfix. > bunker# > bunker# uname -a > FreeBSD bunker.badboy.li 4.9-STABLE FreeBSD 4.9-STABLE #0: Wed Mar > 3 16:09:57 CET 2004 > root@bunker.badboy.li:/usr/obj/usr/src/sys/BUNKER i386 > bunker# > > > > > > ********************************************************************** > Diese Nachricht ist ausschliesslich fuer den bezeichneten Adressaten > oder dessen Vertreter bestimmt. Beachten Sie bitte, dass jede Form der > unautorisierten Nutzung, Veroeffentlichung, Vervielfaeltigung oder > Weitergabe des Inhaltes der Email nicht gestattet ist. Sollten Sie nicht > der vorgesehene Adressat dieser Email oder dessen Vertreter sein, so > bitten wir Sie, sich mit dem Absender der Email in Verbindung zu setzen > und anschliessend diese Email und saemtliche Anhaenge zu loeschen. > ------------------------------------------------------------------------ > This message is exclusively for the person addressed or their > representative. Any form of the unauthorized use, publication, > reproduction, copying or disclosure of the content of this e-mail is > not permitted. If you are not the intended recipient of this message > and its contents, please notify this sender immediately and delete > this message and all its attachments subsequently. > ********************************************************************** > > _______________________________________________ > freebsd-stable@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-stable > To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org" >
Wolfgang,> First, I installed djbdns and qmail, and now, I would like to install > postfix but it doesn't compile.You are aware that Qmail and Postfix both provide the same mail functions, right? While it's possible to use parts of one with the other, it's normally a choice between one or the other. Of course trying both and choosing the one which suits your needs and preferences is the best answer to the question of which is "best".> "[$i]"; cd $i; make 'CC=cc -DUSE_SASL_AUTH -I/usr/local/include...> /usr/libexec/elf/ld: cannot find -lkrbThe build is looking for Kerberos libraries and not finding them. What's not so obvious is that it's looking for Kerberos because of SASL. If you're not going to use SASL, then don't choose it in the menu you get when you build Postfix; similarly with the other options. If you do want SASL and you do want your SASL to use Kerberos, then you need to set SASLKRB in your POSTFIX_OPTIONS. If you want SASL but nor Kerberos, then you'll probably need to define WITHOUT_GSSAPI in your cyrus-sasl2 build. The postfix port is a little unusual in that instead of a series of WITH_FOO variables to select optional components, the variable POSTFIX_OPTIONS contains that list. See the file scripts/configure.postfix in the port. You can make your POSTFIX_OPTIONS permanent by putting it in make.conf, or better in pkgtools.conf for portupgrade, eg. ----8<---- MAKE_ARGS = { 'security/cyrus-sasl2' => '-DWITHOUT_GSSAPI -DWITH_DEV_URANDOM', 'mail/postfix' => '-DBATCH POSTFIX_OPTIONS="SASL2"' } ----8<---- This will (should) build cyrus-sasl2 without Kerberos, skip the menu by setting "BATCH" and chooses to use Cyrus SASLv2 for postfix. Please lose the footer when publishing to a public mailing list. -Andrew- -- _______________________________________________________________________ | -Andrew J. Caines- Unix Systems Engineer A.J.Caines@halplant.com | | "They that can give up essential liberty to obtain a little temporary | | safety deserve neither liberty nor safety" - Benjamin Franklin, 1759 |
>>>>> "WF" == Wolfgang Frick <wolfgang.frick@llb.li> writes:WF> Hi, WF> I have a problem to install postfix from ports You should ask over on ports@freebsd.org, then... WF> First, I installed djbdns and qmail, and now, I would like to WF> install postfix but it doesn't compile. WF> So, what's wrong? WF> [[ ... ]] WF> master_listen.o master_vars.o master_wakeup.o master_flow.o WF> ../../lib/libglobal.a ../../lib/libutil.a -L/usr/local/lib -lsasl2 -lpam WF> -lcrypt -lkrb WF> -lcrypto -lcom_err -L/usr/lib -lssl -lcrypto -L/usr/local/lib -ldb41 WF> /usr/local/lib/mysql/libmysqlclient.a -lm -lz -L/usr/local/lib WF> -L/usr/local/pgsql/lib -lpq WF> -lcrypt -L/usr/local/lib -lldap -llber -L/usr/local/lib -lpcre WF> /usr/libexec/elf/ld: cannot find -lkrb WF> *** Error code 1 The *only* place that the port attempts to link in Kerberos is if you select the option that reads "If your SASL requires Kerberos select this option". So, to paraphrase an old joke, "Doctor, it hurts when I move my arm": So don't move your arm. ie, don't select the "i need kerberos" option if you don't need it. -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-Vivek Khera, Ph.D. Khera Communications, Inc. Internet: khera@kciLink.com Rockville, MD +1-301-869-4449 x806 AIM: vivekkhera Y!: vivek_khera http://www.khera.org/~vivek/