
Talk about being on the cutting edge. I was about 95% of the way finished installing v. 2.0 and following along with some docs on list.org when I got a 404 error at the list.org site. Turns out that while I was doing the install 2.1 was released and the list.org site was updated.
Any who..
I am attempting to install v 2.1 and am getting an error during the MAKE INSTALL. Since it is detecting an upgrade from 2.0 it is running the make update and choking as follows
Listing /home/mailman/Mailman/pythonlib ... Compiling /home/mailman/Mailman/versions.py ... Traceback (most recent call last): File "bin/update", line 45, in ? import paths File "bin/paths.py", line 59, in ? import korean ImportError: No module named korean make: *** [update] Error 1
Is this a known issue or did I stumble across a booboo?
I tried to track it down and although I am an experience developer/admin, I am fairly new to Python and Mailman. I am a bit confused about the comments concerning korea and korea.alias. Should I just comment out the importing of korea?
thanx, chaim
P.S. please cc: me direct as I am not subscribed to this list but just using the web archives.

"chaim" == <chaim@chaim.com> writes:
chaim> I tried to track it down and although I am an experience
chaim> developer/admin, I am fairly new to Python and Mailman. I
chaim> am a bit confused about the comments concerning korea and
chaim> korea.alias. Should I just comment out the importing of
chaim> korea?
What version of Python ar you using? Can you try the following:
% python Python 2.2.2 (#1, Oct 14 2002, 19:51:36) [GCC 2.96 20000731 (Red Hat Linux 7.3 2.96-112)] on linux2 Type "help", "copyright", "credits" or "license" for more information.
import distutils distutils.__version__ '1.0.3'
what do you get? -Barry

On 31 Dec 2002 at 12:18, Barry A. Warsaw wrote:
What version of Python ar you using?
Python 2.2.1 (#1, Aug 30 2002, 12:15:30) [GCC 3.2 20020822 (Red Hat Linux Rawhide 3.2-4)] on linux2 Type "help", "copyright", "credits" or "license" for more information.
import distutils distutils.__version__ '1.0.3'

Do you see any errors in the make output before the line about the korean package?
Also, look in /usr/local/mailman/pythonlib. You should see both a korean subdir and a file called korean.pth.
Are they there? -Barry

"chaim" == <chaim@chaim.com> writes:
chaim> On 31 Dec 2002 at 12:29, Barry A. Warsaw wrote:
>> Do you see any errors in the make output before the line about
>> the korean package?
chaim> No
>> Also, look in /usr/local/mailman/pythonlib. You should see
>> both a korean subdir and a file called korean.pth.
chaim> That directory is empty.
Okay so the distutils installation in the misc directory is failing. The question is, why? Can you do the following:
% make distclean % configure (with whatever options you used) % make install
And send me the output. Hopefully there's a clue in the make output.
Thanks, -Barry

On 31 Dec 2002 at 14:39, Barry A. Warsaw wrote:
Okay so the distutils installation in the misc directory is failing. The question is, why? Can you do the following:
% make distclean % configure (with whatever options you used) % make install
And send me the output. Hopefully there's a clue in the make output.
[mailman@www mailman-2.1]$ make clean make[1]: Entering directory `/usr/local/mailman/mailman-2.1/bin' make[1]: Nothing to be done for `clean'. make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/bin' make[1]: Entering directory `/usr/local/mailman/mailman-2.1/cron' make[1]: Nothing to be done for `clean'. make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/cron' make[1]: Entering directory `/usr/local/mailman/mailman-2.1/misc' make[1]: Nothing to be done for `clean'. make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/misc' make[1]: Entering directory `/usr/local/mailman/mailman-2.1/Mailman' for d in Cgi Logging Archiver Handlers Bouncers Queue MTA Gui Commands; \ do \ (cd $d; make clean); \ done make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/Cgi' make[2]: Nothing to be done for `clean'. make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/Cgi' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/Logging' make[2]: Nothing to be done for `clean'. make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/Logging' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/Archiver' make[2]: Nothing to be done for `clean'. make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/Archiver' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/Handlers' make[2]: Nothing to be done for `clean'. make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/Handlers' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/Bouncers' make[2]: Nothing to be done for `clean'. make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/Bouncers' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/Queue' make[2]: Nothing to be done for `clean'. make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/Queue' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/MTA' make[2]: Nothing to be done for `clean'. make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/MTA' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/Gui' make[2]: Nothing to be done for `clean'. make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/Gui' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/Commands' make[2]: Nothing to be done for `clean'. make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/Commands' make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/Mailman' make[1]: Entering directory `/usr/local/mailman/mailman-2.1/scripts' make[1]: Nothing to be done for `clean'. make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/scripts' make[1]: Entering directory `/usr/local/mailman/mailman-2.1/src' rm: cannot lstat `*.o': No such file or directory make[1]: [clean] Error 1 (ignored) make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/src' make[1]: Entering directory `/usr/local/mailman/mailman- 2.1/templates' make[1]: Nothing to be done for `clean'. make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/templates' make[1]: Entering directory `/usr/local/mailman/mailman-2.1/messages' rm -f marked.files docstring.files make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/messages' make[1]: Entering directory `/usr/local/mailman/mailman-2.1/tests' make[1]: Nothing to be done for `clean'. make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/tests' rm -f update.log [mailman@www mailman-2.1]$ WWWHOST=lists.indigo-confederation.com [mailman@www mailman-2.1]$ MAILHOST=mail.indigo-confederation.com [mailman@www mailman-2.1]$ export WWWHOST MAILHOST [mailman@www mailman-2.1]$ make distclean make[1]: Entering directory `/usr/local/mailman/mailman-2.1/bin' rm Makefile make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/bin' make[1]: Entering directory `/usr/local/mailman/mailman-2.1/cron' rm Makefile crontab.in make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/cron' make[1]: Entering directory `/usr/local/mailman/mailman-2.1/misc' rm Makefile paths.py mailman rm -rf email-2.4.3 JapaneseCodecs-1.4.9 KoreanCodecs-2.0.5 make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/misc' make[1]: Entering directory `/usr/local/mailman/mailman-2.1/Mailman' rm Makefile Defaults.py mm_cfg.py.dist rm *.pyc rm: cannot lstat `*.pyc': No such file or directory make[1]: [distclean] Error 1 (ignored) for d in Cgi Logging Archiver Handlers Bouncers Queue MTA Gui Commands; \ do \ (cd $d; make distclean); \ done make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/Cgi' rm *.pyc rm: cannot lstat `*.pyc': No such file or directory make[2]: [distclean] Error 1 (ignored) rm Makefile make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/Cgi' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/Logging' rm *.pyc rm: cannot lstat `*.pyc': No such file or directory make[2]: [distclean] Error 1 (ignored) rm Makefile make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/Logging' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/Archiver' rm *.pyc rm: cannot lstat `*.pyc': No such file or directory make[2]: [distclean] Error 1 (ignored) rm Makefile make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/Archiver' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/Handlers' rm *.pyc rm: cannot lstat `*.pyc': No such file or directory make[2]: [distclean] Error 1 (ignored) rm Makefile make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/Handlers' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/Bouncers' rm *.pyc rm: cannot lstat `*.pyc': No such file or directory make[2]: [distclean] Error 1 (ignored) rm Makefile make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/Bouncers' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/Queue' rm *.pyc rm: cannot lstat `*.pyc': No such file or directory make[2]: [distclean] Error 1 (ignored) rm Makefile make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/Queue' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/MTA' rm *.pyc rm: cannot lstat `*.pyc': No such file or directory make[2]: [distclean] Error 1 (ignored) rm Makefile make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/MTA' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/Gui' rm *.pyc rm: cannot lstat `*.pyc': No such file or directory make[2]: [distclean] Error 1 (ignored) rm Makefile make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/Gui' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/Commands' rm *.pyc rm: cannot lstat `*.pyc': No such file or directory make[2]: [distclean] Error 1 (ignored) rm Makefile make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/Commands' make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/Mailman' make[1]: Entering directory `/usr/local/mailman/mailman-2.1/scripts' rm Makefile make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/scripts' make[1]: Entering directory `/usr/local/mailman/mailman-2.1/src' rm: cannot lstat `*.o': No such file or directory make[1]: [clean] Error 1 (ignored) make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/src' make[1]: Entering directory `/usr/local/mailman/mailman- 2.1/templates' rm -f Makefile make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/templates' make[1]: Entering directory `/usr/local/mailman/mailman-2.1/messages' rm -f marked.files docstring.files rm -f Makefile make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/messages' make[1]: Entering directory `/usr/local/mailman/mailman-2.1/tests' rm *.pyc rm: cannot lstat `*.pyc': No such file or directory make[1]: [distclean] Error 1 (ignored) rm Makefile make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/tests/bounces' rm *.pyc rm: cannot lstat `*.pyc': No such file or directory make[2]: [distclean] Error 1 (ignored) rm Makefile make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/tests/bounces' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/tests/msgs' rm *.pyc rm: cannot lstat `*.pyc': No such file or directory make[2]: [distclean] Error 1 (ignored) rm Makefile make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/tests/msgs' make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/tests' rm -f config.cache config.log config.status Makefile rm -rf build [mailman@www mailman-2.1]$ ./configure --with-mail-gid=qmail --with- cgi-gid=apache creating cache ./config.cache checking for --with-python... no checking for python... /usr/bin/python checking Python interpreter... /usr/bin/python checking Python version... 2.2.1 checking that Python has distutils... yes checking for a BSD compatible install... /usr/bin/install -c checking whether make sets ${MAKE}... yes checking for true... /bin/true checking for --without-gcc... no checking for gcc... gcc checking whether the C compiler (gcc ) works... yes checking whether the C compiler (gcc ) is a cross-compiler... no checking whether we are using GNU C... yes checking whether gcc accepts -g... yes checking whether #! works in shell scripts... yes checking for --with-var-prefix... no checking for --with-permcheck... yes checking for --with-username... mailman checking for user name "mailman"... okay checking for --with-groupname... mailman checking for group name "mailman"... okay checking permissions on /usr/local/mailman... okay checking for mail wrapper group; i.e. --with-mail-gid... qmail checking for CGI wrapper group; i.e. --with-cgi-gid... apache checking for CGI extensions... no checking for --with-mailhost... no checking for --with-urlhost... no checking for default mail host name... dsl093-167- 214.sfo2.dsl.speakeasy.net checking for default URL host component... dsl093-167- 214.sfo2.dsl.speakeasy.net checking for strerror... yes checking for setregid... yes checking for syslog... yes checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for syslog.h... yes checking for uid_t in sys/types.h... yes checking type of array argument to getgroups... gid_t checking for vsnprintf... yes updating cache ./config.cache creating ./config.status creating misc/paths.py creating Mailman/Defaults.py creating Mailman/mm_cfg.py.dist creating src/Makefile creating misc/Makefile creating bin/Makefile creating Mailman/Makefile creating Mailman/Cgi/Makefile creating Mailman/Logging/Makefile creating Mailman/Archiver/Makefile creating Mailman/Commands/Makefile creating Mailman/Handlers/Makefile creating Mailman/Bouncers/Makefile creating Mailman/Queue/Makefile creating Mailman/MTA/Makefile creating Mailman/Gui/Makefile creating templates/Makefile creating cron/Makefile creating scripts/Makefile creating messages/Makefile creating cron/crontab.in creating misc/mailman creating Makefile creating tests/Makefile creating tests/bounces/Makefile creating tests/msgs/Makefile creating build/bin/add_members creating build/bin/arch creating build/bin/change_pw creating build/bin/check_db creating build/bin/check_perms creating build/bin/cleanarch creating build/bin/clone_member creating build/bin/config_list creating build/bin/convert.py creating build/bin/dumpdb creating build/bin/find_member creating build/bin/fix_url.py creating build/bin/genaliases creating build/bin/inject creating build/bin/list_admins creating build/bin/list_lists creating build/bin/list_members creating build/bin/list_owners creating build/bin/mailmanctl creating build/bin/mmsitepass creating build/bin/newlist creating build/bin/pygettext.py creating build/bin/qrunner creating build/bin/remove_members creating build/bin/rmlist creating build/bin/sync_members creating build/bin/transcheck creating build/bin/unshunt creating build/bin/update creating build/bin/version creating build/bin/withlist creating build/bin/b4b5-archfix creating build/contrib/check_perms_grsecurity.py creating build/contrib/qmail-to-mailman.py creating build/contrib/rotatelogs.py creating build/cron/bumpdigests creating build/cron/checkdbs creating build/cron/disabled creating build/cron/gate_news creating build/cron/mailpasswds creating build/cron/nightly_gzip creating build/cron/senddigests configuration completed at Tue Dec 31 12:02:45 PST 2002 [mailman@www mailman-2.1]$ make install Creating architecture independent directories... chmod o-r /usr/local/mailman/archives/private Creating architecture dependent directories... make[1]: Entering directory `/usr/local/mailman/mailman-2.1/bin' for f in mmsitepass newlist rmlist add_members list_members remove_members clone_member update arch sync_members check_d b withlist check_perms find_member version config_list list_lists dumpdb cleanarch list_admins genaliases change_pw mail manctl qrunner inject unshunt fix_url.py convert.py transcheck b4b5- archfix list_owners; \ do \ /usr/bin/install -c -m 755 ../build/bin/$f /usr/local/mailman/bin; \ done make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/bin' make[1]: Entering directory `/usr/local/mailman/mailman-2.1/cron' for f in crontab.in; \ do \ /usr/bin/install -c -m 644 $f /usr/local/mailman/cron; \ done for f in checkdbs mailpasswds senddigests gate_news nightly_gzip bumpdigests disabled; \ do \ /usr/bin/install -c -m 755 ../build/cron/$f /usr/local/mailman/cron; \ done make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/cron' make[1]: Entering directory `/usr/local/mailman/mailman-2.1/misc' /usr/bin/install -c -m 644 ./*.jpg ./*.png /usr/local/mailman/icons for d in bin cron scripts tests; \ do \ dir=/usr/local/mailman/$d; \ /usr/bin/install -c -m 644 paths.py $dir; \ done /usr/bin/install -c -m 755 mailman /usr/local/mailman/scripts for p in email-2.4.3 JapaneseCodecs-1.4.9 KoreanCodecs-2.0.5; \ do \ gunzip -c ./$p.tar.gz | tar xf -; \ (cd $p ; umask 02 ; PYTHONPATH=/usr/local/mailman/pythonlib /usr/bin/python setup.py --quiet install --install-lib / usr/local/mailman/pythonlib --install-purelib /usr/local/mailman/pythonlib --install-data /usr/local/mailman/pythonlib); \ done Traceback (most recent call last): File "setup.py", line 38, in ? cmdclass={'install_lib': EmailInstall}, File "/usr/src/build/143041- i386/install/usr/lib/python2.2/distutils/core.py", line 138, in setup File "/usr/src/build/143041- i386/install/usr/lib/python2.2/distutils/dist.py", line 893, in run_commands File "/usr/src/build/143041- i386/install/usr/lib/python2.2/distutils/dist.py", line 912, in run_command File "/usr/lib/python2.2/cmd.py", line 112, in ensure_finalized return stop File "/usr/src/build/143041- i386/install/usr/lib/python2.2/distutils/command/install.py", line 267, in finalize_option s File "/usr/src/build/143041- i386/install/usr/lib/python2.2/distutils/sysconfig.py", line 408, in get_config_vars File "/usr/src/build/143041- i386/install/usr/lib/python2.2/distutils/sysconfig.py", line 313, in _init_posix distutils.errors.DistutilsPlatformError: invalid Python installation: unable to open /usr/lib/python2.2/config/Makefile (No such file or directory) Traceback (most recent call last): File "setup.py", line 62, in ? ["src/_japanese_codecs.c"])]) File "/usr/src/build/143041- i386/install/usr/lib/python2.2/distutils/core.py", line 138, in setup File "/usr/src/build/143041- i386/install/usr/lib/python2.2/distutils/dist.py", line 893, in run_commands File "/usr/src/build/143041- i386/install/usr/lib/python2.2/distutils/dist.py", line 912, in run_command File "/usr/lib/python2.2/cmd.py", line 112, in ensure_finalized return stop File "/usr/src/build/143041- i386/install/usr/lib/python2.2/distutils/command/install.py", line 267, in finalize_option s File "/usr/src/build/143041- i386/install/usr/lib/python2.2/distutils/sysconfig.py", line 408, in get_config_vars File "/usr/src/build/143041- i386/install/usr/lib/python2.2/distutils/sysconfig.py", line 313, in _init_posix distutils.errors.DistutilsPlatformError: invalid Python installation: unable to open /usr/lib/python2.2/config/Makefile (No such file or directory) Traceback (most recent call last): File "setup.py", line 71, in ? ext_modules = flavors['extension'] and [ File "/usr/src/build/143041- i386/install/usr/lib/python2.2/distutils/core.py", line 138, in setup File "/usr/src/build/143041- i386/install/usr/lib/python2.2/distutils/dist.py", line 893, in run_commands File "/usr/src/build/143041- i386/install/usr/lib/python2.2/distutils/dist.py", line 912, in run_command File "/usr/lib/python2.2/cmd.py", line 112, in ensure_finalized return stop File "setup.py", line 50, in finalize_options install.finalize_options(self) File "/usr/src/build/143041- i386/install/usr/lib/python2.2/distutils/command/install.py", line 267, in finalize_option s File "/usr/src/build/143041- i386/install/usr/lib/python2.2/distutils/sysconfig.py", line 408, in get_config_vars File "/usr/src/build/143041- i386/install/usr/lib/python2.2/distutils/sysconfig.py", line 313, in _init_posix distutils.errors.DistutilsPlatformError: invalid Python installation: unable to open /usr/lib/python2.2/config/Makefile (No such file or directory) make[1]: *** [install-packages] Error 1 make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/misc' make[1]: Entering directory `/usr/local/mailman/mailman-2.1/Mailman' for f in ./*.py; \ do \ /usr/bin/install -c -m 644 $f /usr/local/mailman/Mailman; \ done /usr/bin/install -c -m 644 mm_cfg.py.dist /usr/local/mailman/Mailman if [ ! -f /usr/local/mailman/Mailman/mm_cfg.py ]; \ then \ /usr/bin/install -c -m 644 mm_cfg.py.dist /usr/local/mailman/Mailman/mm_cfg.py; \ fi for d in Cgi Logging Archiver Handlers Bouncers Queue MTA Gui Commands; \ do \ (cd $d; make install); \ done make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/Cgi' for f in *.py; \ do \ /usr/bin/install -c -m 644 ./$f /usr/local/mailman/Mailman/Cgi; \ done make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/Cgi' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/Logging' for f in *.py; \ do \ /usr/bin/install -c -m 644 ./$f /usr/local/mailman/Mailman/Logging; \ done make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/Logging' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/Archiver' for f in __init__.py Archiver.py HyperArch.py HyperDatabase.py pipermail.py; \ do \ /usr/bin/install -c -m 644 ./$f /usr/local/mailman/Mailman/Archiver; \ done make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/Archiver' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/Handlers' for f in *.py; \ do \ /usr/bin/install -c -m 644 ./$f /usr/local/mailman/Mailman/Handlers; \ done make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/Handlers' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/Bouncers' for f in *.py; \ do \ /usr/bin/install -c -m 644 ./$f /usr/local/mailman/Mailman/Bouncers; \ done make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/Bouncers' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/Queue' for f in *.py; \ do \ /usr/bin/install -c -m 644 ./$f /usr/local/mailman/Mailman/Queue; \ done make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/Queue' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/MTA' for f in *.py; \ do \ /usr/bin/install -c -m 644 ./$f /usr/local/mailman/Mailman/MTA; \ done make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/MTA' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/Gui' for f in *.py; \ do \ /usr/bin/install -c -m 644 ./$f /usr/local/mailman/Mailman/Gui; \ done make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/Gui' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/Mailman/Commands' for f in *.py; \ do \ /usr/bin/install -c -m 644 ./$f /usr/local/mailman/Mailman/Commands; \ done make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/Mailman/Commands' make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/Mailman' make[1]: Entering directory `/usr/local/mailman/mailman-2.1/scripts' for f in bounces confirm driver join leave owner post request; \ do \ /usr/bin/install -c -m 644 ./$f /usr/local/mailman/scripts; \ done /usr/bin/install -c -m 644 ./bounces /usr/local/mailman/scripts/admin /usr/bin/install -c -m 644 ./join /usr/local/mailman/scripts/subscribe /usr/bin/install -c -m 644 ./leave /usr/local/mailman/scripts/unsubscribe make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/scripts' make[1]: Entering directory `/usr/local/mailman/mailman-2.1/src' gcc -c -I. -DPREFIX="\"/usr/local/mailman\"" - DPYTHON="\"/usr/bin/python\"" -DHELPFUL -g -O2 -g -O2 - DHAVE_STRERROR=1 -D HAVE_SETREGID=1 -DHAVE_SYSLOG=1 -DSTDC_HEADERS=1 -DHAVE_SYSLOG_H=1 - DGETGROUPS_T=gid_t -DHAVE_VSNPRINTF=1 ./common.c gcc -c -I. -DPREFIX="\"/usr/local/mailman\"" - DPYTHON="\"/usr/bin/python\"" -DHELPFUL -g -O2 -g -O2 - DHAVE_STRERROR=1 -D HAVE_SETREGID=1 -DHAVE_SYSLOG=1 -DSTDC_HEADERS=1 -DHAVE_SYSLOG_H=1 - DGETGROUPS_T=gid_t -DHAVE_VSNPRINTF=1 ./vsnprintf. c gcc -DSCRIPT="\"admindb\"" -I. -DCGI_GROUP="\"apache\"" -g -O2 -g -O2 -DHAVE_STRERROR=1 -DHAVE_SETREGID=1 -DHAVE_SYSLOG= 1 -DSTDC_HEADERS=1 -DHAVE_SYSLOG_H=1 -DGETGROUPS_T=gid_t - DHAVE_VSNPRINTF=1 common.o vsnprintf.o -o admindb ./cgi-wrap per.c gcc -DSCRIPT="\"admin\"" -I. -DCGI_GROUP="\"apache\"" -g -O2 -g -O2 - DHAVE_STRERROR=1 -DHAVE_SETREGID=1 -DHAVE_SYSLOG=1 -DSTDC_HEADERS=1 -DHAVE_SYSLOG_H=1 -DGETGROUPS_T=gid_t - DHAVE_VSNPRINTF=1 common.o vsnprintf.o -o admin ./cgi-wrapper. c gcc -DSCRIPT="\"confirm\"" -I. -DCGI_GROUP="\"apache\"" -g -O2 -g -O2 -DHAVE_STRERROR=1 -DHAVE_SETREGID=1 -DHAVE_SYSLOG= 1 -DSTDC_HEADERS=1 -DHAVE_SYSLOG_H=1 -DGETGROUPS_T=gid_t - DHAVE_VSNPRINTF=1 common.o vsnprintf.o -o confirm ./cgi-wrap per.c gcc -DSCRIPT="\"create\"" -I. -DCGI_GROUP="\"apache\"" -g -O2 -g -O2 - DHAVE_STRERROR=1 -DHAVE_SETREGID=1 -DHAVE_SYSLOG=1 -DSTDC_HEADERS=1 -DHAVE_SYSLOG_H=1 -DGETGROUPS_T=gid_t - DHAVE_VSNPRINTF=1 common.o vsnprintf.o -o create ./cgi-wrappe r.c gcc -DSCRIPT="\"edithtml\"" -I. -DCGI_GROUP="\"apache\"" -g -O2 -g - O2 -DHAVE_STRERROR=1 -DHAVE_SETREGID=1 -DHAVE_SYSLOG =1 -DSTDC_HEADERS=1 -DHAVE_SYSLOG_H=1 -DGETGROUPS_T=gid_t - DHAVE_VSNPRINTF=1 common.o vsnprintf.o -o edithtml ./cgi-wr apper.c gcc -DSCRIPT="\"listinfo\"" -I. -DCGI_GROUP="\"apache\"" -g -O2 -g - O2 -DHAVE_STRERROR=1 -DHAVE_SETREGID=1 -DHAVE_SYSLOG =1 -DSTDC_HEADERS=1 -DHAVE_SYSLOG_H=1 -DGETGROUPS_T=gid_t - DHAVE_VSNPRINTF=1 common.o vsnprintf.o -o listinfo ./cgi-wr apper.c gcc -DSCRIPT="\"options\"" -I. -DCGI_GROUP="\"apache\"" -g -O2 -g -O2 -DHAVE_STRERROR=1 -DHAVE_SETREGID=1 -DHAVE_SYSLOG= 1 -DSTDC_HEADERS=1 -DHAVE_SYSLOG_H=1 -DGETGROUPS_T=gid_t - DHAVE_VSNPRINTF=1 common.o vsnprintf.o -o options ./cgi-wrap per.c gcc -DSCRIPT="\"private\"" -I. -DCGI_GROUP="\"apache\"" -g -O2 -g -O2 -DHAVE_STRERROR=1 -DHAVE_SETREGID=1 -DHAVE_SYSLOG= 1 -DSTDC_HEADERS=1 -DHAVE_SYSLOG_H=1 -DGETGROUPS_T=gid_t - DHAVE_VSNPRINTF=1 common.o vsnprintf.o -o private ./cgi-wrap per.c gcc -DSCRIPT="\"rmlist\"" -I. -DCGI_GROUP="\"apache\"" -g -O2 -g -O2 - DHAVE_STRERROR=1 -DHAVE_SETREGID=1 -DHAVE_SYSLOG=1 -DSTDC_HEADERS=1 -DHAVE_SYSLOG_H=1 -DGETGROUPS_T=gid_t - DHAVE_VSNPRINTF=1 common.o vsnprintf.o -o rmlist ./cgi-wrappe r.c gcc -DSCRIPT="\"roster\"" -I. -DCGI_GROUP="\"apache\"" -g -O2 -g -O2 - DHAVE_STRERROR=1 -DHAVE_SETREGID=1 -DHAVE_SYSLOG=1 -DSTDC_HEADERS=1 -DHAVE_SYSLOG_H=1 -DGETGROUPS_T=gid_t - DHAVE_VSNPRINTF=1 common.o vsnprintf.o -o roster ./cgi-wrappe r.c gcc -DSCRIPT="\"subscribe\"" -I. -DCGI_GROUP="\"apache\"" -g -O2 -g - O2 -DHAVE_STRERROR=1 -DHAVE_SETREGID=1 -DHAVE_SYSLO G=1 -DSTDC_HEADERS=1 -DHAVE_SYSLOG_H=1 -DGETGROUPS_T=gid_t - DHAVE_VSNPRINTF=1 common.o vsnprintf.o -o subscribe ./cgi- wrapper.c gcc -I. -DMAIL_GROUP="\"qmail\"" -g -O2 -g -O2 -DHAVE_STRERROR=1 - DHAVE_SETREGID=1 -DHAVE_SYSLOG=1 -DSTDC_HEADERS=1 -DHA VE_SYSLOG_H=1 -DGETGROUPS_T=gid_t -DHAVE_VSNPRINTF=1 common.o vsnprintf.o -o mailman ./mail-wrapper.c for f in admindb admin confirm create edithtml listinfo options private rmlist roster subscribe; \ do \ exe=/usr/local/mailman/cgi-bin/$f; \ /usr/bin/install -c -m 755 $f $exe; \ chmod g+s $exe; \ done for f in mailman; \ do \ /usr/bin/install -c -m 755 $f /usr/local/mailman/mail; \ chmod g+s /usr/local/mailman/mail/$f; \ done make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/src' make[1]: Entering directory `/usr/local/mailman/mailman- 2.1/templates' for d in big5 cs en es et de fi fr gb hu it ja ko lt nl no pt_BR ru sv; \ do \ ./../mkinstalldirs /usr/local/mailman/templates/$d; \ for f in ./$d/*.html ./$d/*.txt; \ do \ /usr/bin/install -c -m 644 $f /usr/local/mailman/templates/$d; \ done; \ done make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/templates' make[1]: Entering directory `/usr/local/mailman/mailman-2.1/messages' Creating language directory /usr/local/mailman/messages/cs/LC_MESSAGES Creating language directory /usr/local/mailman/messages/de/LC_MESSAGES Creating language directory /usr/local/mailman/messages/es/LC_MESSAGES Creating language directory /usr/local/mailman/messages/et/LC_MESSAGES Creating language directory /usr/local/mailman/messages/fi/LC_MESSAGES Creating language directory /usr/local/mailman/messages/fr/LC_MESSAGES Creating language directory /usr/local/mailman/messages/hu/LC_MESSAGES Creating language directory /usr/local/mailman/messages/it/LC_MESSAGES Creating language directory /usr/local/mailman/messages/ja/LC_MESSAGES Creating language directory /usr/local/mailman/messages/ko/LC_MESSAGES Creating language directory /usr/local/mailman/messages/lt/LC_MESSAGES Creating language directory /usr/local/mailman/messages/nl/LC_MESSAGES Creating language directory /usr/local/mailman/messages/no/LC_MESSAGES Creating language directory /usr/local/mailman/messages/pt_BR/LC_MESSAGES Creating language directory /usr/local/mailman/messages/ru/LC_MESSAGES Creating language directory /usr/local/mailman/messages/sv/LC_MESSAGES make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/messages' make[1]: Entering directory `/usr/local/mailman/mailman-2.1/tests' for f in ./test*.py ./*Base.py; \ do \ /usr/bin/install -c -m 644 $f /usr/local/mailman/tests; \ done for f in ./onebounce.py ./fblast.py; \ do \ /usr/bin/install -c -m 755 $f /usr/local/mailman/tests; \ done for d in bounces msgs; \ do \ (cd $d; make install); \ done make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/tests/bounces' for f in ./*.txt; \ do \ /usr/bin/install -c -m 644 $f /usr/local/mailman/tests/bounces; \ done make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/tests/bounces' make[2]: Entering directory `/usr/local/mailman/mailman- 2.1/tests/msgs' for f in ./*.txt; \ do \ /usr/bin/install -c -m 644 $f /usr/local/mailman/tests/msgs; \ done make[2]: Leaving directory `/usr/local/mailman/mailman- 2.1/tests/msgs' make[1]: Leaving directory `/usr/local/mailman/mailman-2.1/tests' /usr/bin/python -c 'from compileall import *; compile_dir("/usr/local/mailman/Mailman")' Listing /usr/local/mailman/Mailman ... Listing /usr/local/mailman/Mailman/Archiver ... Compiling /usr/local/mailman/Mailman/Archiver/Archiver.py ... Compiling /usr/local/mailman/Mailman/Archiver/HyperArch.py ... Compiling /usr/local/mailman/Mailman/Archiver/HyperDatabase.py ... Compiling /usr/local/mailman/Mailman/Archiver/__init__.py ... Compiling /usr/local/mailman/Mailman/Archiver/pipermail.py ... Compiling /usr/local/mailman/Mailman/Autoresponder.py ... Compiling /usr/local/mailman/Mailman/Bouncer.py ... Listing /usr/local/mailman/Mailman/Bouncers ... Compiling /usr/local/mailman/Mailman/Bouncers/BouncerAPI.py ... Compiling /usr/local/mailman/Mailman/Bouncers/Caiwireless.py ... Compiling /usr/local/mailman/Mailman/Bouncers/Compuserve.py ... Compiling /usr/local/mailman/Mailman/Bouncers/DSN.py ... Compiling /usr/local/mailman/Mailman/Bouncers/Exchange.py ... Compiling /usr/local/mailman/Mailman/Bouncers/Exim.py ... Compiling /usr/local/mailman/Mailman/Bouncers/GroupWise.py ... Compiling /usr/local/mailman/Mailman/Bouncers/LLNL.py ... Compiling /usr/local/mailman/Mailman/Bouncers/Microsoft.py ... Compiling /usr/local/mailman/Mailman/Bouncers/Netscape.py ... Compiling /usr/local/mailman/Mailman/Bouncers/Postfix.py ... Compiling /usr/local/mailman/Mailman/Bouncers/Qmail.py ... Compiling /usr/local/mailman/Mailman/Bouncers/SMTP32.py ... Compiling /usr/local/mailman/Mailman/Bouncers/SimpleMatch.py ... Compiling /usr/local/mailman/Mailman/Bouncers/SimpleWarning.py ... Compiling /usr/local/mailman/Mailman/Bouncers/Sina.py ... Compiling /usr/local/mailman/Mailman/Bouncers/Yahoo.py ... Compiling /usr/local/mailman/Mailman/Bouncers/Yale.py ... Compiling /usr/local/mailman/Mailman/Bouncers/__init__.py ... Listing /usr/local/mailman/Mailman/Cgi ... Compiling /usr/local/mailman/Mailman/Cgi/Auth.py ... Compiling /usr/local/mailman/Mailman/Cgi/__init__.py ... Compiling /usr/local/mailman/Mailman/Cgi/admin.py ... Compiling /usr/local/mailman/Mailman/Cgi/admindb.py ... Compiling /usr/local/mailman/Mailman/Cgi/confirm.py ... Compiling /usr/local/mailman/Mailman/Cgi/create.py ... Compiling /usr/local/mailman/Mailman/Cgi/edithtml.py ... Compiling /usr/local/mailman/Mailman/Cgi/listinfo.py ... Compiling /usr/local/mailman/Mailman/Cgi/options.py ... Compiling /usr/local/mailman/Mailman/Cgi/private.py ... Compiling /usr/local/mailman/Mailman/Cgi/rmlist.py ... Compiling /usr/local/mailman/Mailman/Cgi/roster.py ... Compiling /usr/local/mailman/Mailman/Cgi/subscribe.py ... Listing /usr/local/mailman/Mailman/Commands ... Compiling /usr/local/mailman/Mailman/Commands/__init__.py ... Compiling /usr/local/mailman/Mailman/Commands/cmd_confirm.py ... Compiling /usr/local/mailman/Mailman/Commands/cmd_echo.py ... Compiling /usr/local/mailman/Mailman/Commands/cmd_end.py ... Compiling /usr/local/mailman/Mailman/Commands/cmd_help.py ... Compiling /usr/local/mailman/Mailman/Commands/cmd_info.py ... Compiling /usr/local/mailman/Mailman/Commands/cmd_join.py ... Compiling /usr/local/mailman/Mailman/Commands/cmd_leave.py ... Compiling /usr/local/mailman/Mailman/Commands/cmd_lists.py ... Compiling /usr/local/mailman/Mailman/Commands/cmd_password.py ... Compiling /usr/local/mailman/Mailman/Commands/cmd_remove.py ... Compiling /usr/local/mailman/Mailman/Commands/cmd_set.py ... Compiling /usr/local/mailman/Mailman/Commands/cmd_stop.py ... Compiling /usr/local/mailman/Mailman/Commands/cmd_subscribe.py ... Compiling /usr/local/mailman/Mailman/Commands/cmd_unsubscribe.py ... Compiling /usr/local/mailman/Mailman/Commands/cmd_who.py ... Compiling /usr/local/mailman/Mailman/Defaults.py ... Compiling /usr/local/mailman/Mailman/Deliverer.py ... Compiling /usr/local/mailman/Mailman/Digester.py ... Compiling /usr/local/mailman/Mailman/Errors.py ... Compiling /usr/local/mailman/Mailman/GatewayManager.py ... Listing /usr/local/mailman/Mailman/Gui ... Compiling /usr/local/mailman/Mailman/Gui/Archive.py ... Compiling /usr/local/mailman/Mailman/Gui/Autoresponse.py ... Compiling /usr/local/mailman/Mailman/Gui/Bounce.py ... Compiling /usr/local/mailman/Mailman/Gui/ContentFilter.py ... Compiling /usr/local/mailman/Mailman/Gui/Digest.py ... Compiling /usr/local/mailman/Mailman/Gui/GUIBase.py ... Compiling /usr/local/mailman/Mailman/Gui/General.py ... Compiling /usr/local/mailman/Mailman/Gui/Language.py ... Compiling /usr/local/mailman/Mailman/Gui/Membership.py ... Compiling /usr/local/mailman/Mailman/Gui/NonDigest.py ... Compiling /usr/local/mailman/Mailman/Gui/Passwords.py ... Compiling /usr/local/mailman/Mailman/Gui/Privacy.py ... Compiling /usr/local/mailman/Mailman/Gui/Topics.py ... Compiling /usr/local/mailman/Mailman/Gui/Usenet.py ... Compiling /usr/local/mailman/Mailman/Gui/__init__.py ... Compiling /usr/local/mailman/Mailman/HTMLFormatter.py ... Listing /usr/local/mailman/Mailman/Handlers ... Compiling /usr/local/mailman/Mailman/Handlers/Acknowledge.py ... Compiling /usr/local/mailman/Mailman/Handlers/AfterDelivery.py ... Compiling /usr/local/mailman/Mailman/Handlers/Approve.py ... Compiling /usr/local/mailman/Mailman/Handlers/AvoidDuplicates.py ... Compiling /usr/local/mailman/Mailman/Handlers/CalcRecips.py ... Compiling /usr/local/mailman/Mailman/Handlers/Cleanse.py ... Compiling /usr/local/mailman/Mailman/Handlers/CookHeaders.py ... Compiling /usr/local/mailman/Mailman/Handlers/Decorate.py ... Compiling /usr/local/mailman/Mailman/Handlers/Emergency.py ... Compiling /usr/local/mailman/Mailman/Handlers/FileRecips.py ... Compiling /usr/local/mailman/Mailman/Handlers/Hold.py ... Compiling /usr/local/mailman/Mailman/Handlers/MimeDel.py ... Compiling /usr/local/mailman/Mailman/Handlers/Moderate.py ... Compiling /usr/local/mailman/Mailman/Handlers/OwnerRecips.py ... Compiling /usr/local/mailman/Mailman/Handlers/Replybot.py ... Compiling /usr/local/mailman/Mailman/Handlers/SMTPDirect.py ... Compiling /usr/local/mailman/Mailman/Handlers/Scrubber.py ... Compiling /usr/local/mailman/Mailman/Handlers/Sendmail.py ... Compiling /usr/local/mailman/Mailman/Handlers/SpamDetect.py ... Compiling /usr/local/mailman/Mailman/Handlers/Tagger.py ... Compiling /usr/local/mailman/Mailman/Handlers/ToArchive.py ... Compiling /usr/local/mailman/Mailman/Handlers/ToDigest.py ... Compiling /usr/local/mailman/Mailman/Handlers/ToOutgoing.py ... Compiling /usr/local/mailman/Mailman/Handlers/ToUsenet.py ... Compiling /usr/local/mailman/Mailman/Handlers/__init__.py ... Compiling /usr/local/mailman/Mailman/ListAdmin.py ... Compiling /usr/local/mailman/Mailman/LockFile.py ... Listing /usr/local/mailman/Mailman/Logging ... Compiling /usr/local/mailman/Mailman/Logging/Logger.py ... Compiling /usr/local/mailman/Mailman/Logging/MultiLogger.py ... Compiling /usr/local/mailman/Mailman/Logging/StampedLogger.py ... Compiling /usr/local/mailman/Mailman/Logging/Syslog.py ... Compiling /usr/local/mailman/Mailman/Logging/Utils.py ... Compiling /usr/local/mailman/Mailman/Logging/__init__.py ... Listing /usr/local/mailman/Mailman/MTA ... Compiling /usr/local/mailman/Mailman/MTA/Manual.py ... Compiling /usr/local/mailman/Mailman/MTA/Postfix.py ... Compiling /usr/local/mailman/Mailman/MTA/Utils.py ... Compiling /usr/local/mailman/Mailman/MTA/__init__.py ... Compiling /usr/local/mailman/Mailman/MailList.py ... Compiling /usr/local/mailman/Mailman/Mailbox.py ... Compiling /usr/local/mailman/Mailman/MemberAdaptor.py ... Compiling /usr/local/mailman/Mailman/Message.py ... Compiling /usr/local/mailman/Mailman/OldStyleMemberships.py ... Compiling /usr/local/mailman/Mailman/Pending.py ... Compiling /usr/local/mailman/Mailman/Post.py ... Listing /usr/local/mailman/Mailman/Queue ... Compiling /usr/local/mailman/Mailman/Queue/ArchRunner.py ... Compiling /usr/local/mailman/Mailman/Queue/BounceRunner.py ... Compiling /usr/local/mailman/Mailman/Queue/CommandRunner.py ... Compiling /usr/local/mailman/Mailman/Queue/IncomingRunner.py ... Compiling /usr/local/mailman/Mailman/Queue/MaildirRunner.py ... Compiling /usr/local/mailman/Mailman/Queue/NewsRunner.py ... Compiling /usr/local/mailman/Mailman/Queue/OutgoingRunner.py ... Compiling /usr/local/mailman/Mailman/Queue/Runner.py ... Compiling /usr/local/mailman/Mailman/Queue/Switchboard.py ... Compiling /usr/local/mailman/Mailman/Queue/VirginRunner.py ... Compiling /usr/local/mailman/Mailman/Queue/__init__.py ... Compiling /usr/local/mailman/Mailman/Queue/sbcache.py ... Compiling /usr/local/mailman/Mailman/SafeDict.py ... Compiling /usr/local/mailman/Mailman/SecurityManager.py ... Compiling /usr/local/mailman/Mailman/Site.py ... Compiling /usr/local/mailman/Mailman/TopicMgr.py ... Compiling /usr/local/mailman/Mailman/UserDesc.py ... Compiling /usr/local/mailman/Mailman/Utils.py ... Compiling /usr/local/mailman/Mailman/Version.py ... Compiling /usr/local/mailman/Mailman/__init__.py ... Compiling /usr/local/mailman/Mailman/htmlformat.py ... Compiling /usr/local/mailman/Mailman/i18n.py ... Compiling /usr/local/mailman/Mailman/versions.py ... Traceback (most recent call last): File "bin/update", line 45, in ? import paths File "bin/paths.py", line 59, in ? import korean ImportError: No module named korean make: *** [update] Error 1 [mailman@www mailman-2.1]$

Thanks, that's actually very helpful. Okay, next, try this:
% python Python 2.2.2 (#1, Oct 14 2002, 19:51:36) [GCC 2.96 20000731 (Red Hat Linux 7.3 2.96-112)] on linux2 Type "help", "copyright", "credits" or "license" for more information.
import distutils.sysconfig len(distutils.sysconfig.get_config_vars()) 123
I don't care what the number is, I just care if you get an exception or not. If not, then I'll be really confused.
If you do get an exception, then I know what to add to configure to catch this problem, but it essentially means you'll have to install the python-devel package to get the needed files.
I think it looks like RedHat changes their Python RPMs again. Sigh. -Barry

On 31 Dec 2002 at 15:15, Barry A. Warsaw wrote:
Thanks, that's actually very helpful. Okay, next, try this:
% python Python 2.2.2 (#1, Oct 14 2002, 19:51:36) [GCC 2.96 20000731 (Red Hat Linux 7.3 2.96-112)] on linux2 Type "help", "copyright", "credits" or "license" for more information.
import distutils.sysconfig >>> len(distutils.sysconfig.get_config_vars()) 123 >>>
I don't care what the number is, I just care if you get an exception or not. If not, then I'll be really confused.
If you do get an exception, then I know what to add to configure to catch this problem, but it essentially means you'll have to install the python-devel package to get the needed files.
I think it looks like RedHat changes their Python RPMs again. Sigh. -Barry
[mailman@www mailman-2.1]$ python Python 2.2.1 (#1, Aug 30 2002, 12:15:30) [GCC 3.2 20020822 (Red Hat Linux Rawhide 3.2-4)] on linux2 Type "help", "copyright", "credits" or "license" for more information.
import distutils.sysconfig len(distutils.sysconfig.get_config_vars()) Traceback (most recent call last): File "<stdin>", line 1, in ? File "/usr/src/build/143041- i386/install/usr/lib/python2.2/distutils/sysconfig.py", line 408, in get_config_vars File "/usr/src/build/143041- i386/install/usr/lib/python2.2/distutils/sysconfig.py", line 313, in _init_posix distutils.errors.DistutilsPlatformError: invalid Python installation: unable to open /usr/lib/python2.2/config/Makefile (No such file or directory)
[mailman@www mailman-2.1]$

Thank you for your help so far on this issue. Have you found anything new since your last email?
thanx, chaim

"chaim" == <chaim@chaim.com> writes:
chaim> Thank you for your help so far on this issue. Have you
chaim> found anything new since your last email?
This was resolved in 2.1 final. You must have the python -devel package installed, but the test for this was broken in the pre-2.1 final configure script.
-Barry

On 2 Jan 2003 at 11:27, Barry A. Warsaw wrote:
"chaim" == <chaim@chaim.com> writes:
chaim> Thank you for your help so far on this issue. Have you chaim> found anything new since your last email?
This was resolved in 2.1 final. You must have the python -devel package installed, but the test for this was broken in the pre-2.1 final configure script.
-Barry
Thank you. I downloaded the package from list.org and they didn't mention anything about it being pre-2.1 beta. Can you suggest where I can find the 2.1 final and what the exact size of the file should be?
thanx, chaim

"chaim" == <chaim@chaim.com> writes:
chaim> Thank you. I downloaded the package from list.org and they
chaim> didn't mention anything about it being pre-2.1 beta. Can
chaim> you suggest where I can find the 2.1 final and what the
chaim> exact size of the file should be?
http://sourceforge.net/project/showfiles.php?group_id=103
-Barry

On Tue, Dec 31, 2002 at 09:23:49AM -0800, chaim@chaim.com wrote:
On 31 Dec 2002 at 12:18, Barry A. Warsaw wrote:
What version of Python ar you using?
Python 2.2.1 (#1, Aug 30 2002, 12:15:30) [GCC 3.2 20020822 (Red Hat Linux Rawhide 3.2-4)] on linux2 Type "help", "copyright", "credits" or "license" for more information.
import distutils distutils.__version__ '1.0.3'
For the record, I am in the exact same bind... as are most people with RH 8.0, I'd imagine. I've seen this bug mentioned over the past few months during beta testing, but every reply I've come across says simple that it was a known error that had been repaired in later revs. Seems this wasn't the case after all.
I plead utter Python ignorance. Can anyone point me in the proper direction for a workaround/fix?
I'm also a little confused about the CGI wrapper error:
"Group mismatch error. Mailman expected the CGI wrapper script to be executed as group "nobody", but the system's web server executed the CGI script as group "apache". Try tweaking the web server to run the script as group "nobody", or re-run configure, providing the command line option `--with-cgi-gid=apache'."
I have yet to tweak my Apache, but reconfiguring with this flag did not seem to work, as I expected it would. I'll beat on the httpd.conf later today when I find a minute or two.
-- warren woodward XMission DSL warrenw@xmission.com (801) 303-0819 (877) XMISSION
"The United States, as the world knows, will never start a war." -JFK, American University, June 10, 1963

"WW" == Warren Woodward <scratch@xmission.com> writes:
WW> For the record, I am in the exact same bind... as are most
WW> people with RH 8.0, I'd imagine.
Is it really related to RH8.0? I've certainly never been able to reproduce it on RH7.3, which is all I have available at the moment. If so, then we need to figure out what's different about RH8.0. Here are some questions:
Are you using the standard Python from RH8 or did you build it from source?
If your Python comes from an RPM, did you install just the standard package or did you also install the devel package?
Do you see any other errors from a "make install" of Mailman 2.1? Look very carefully, especially where the distutils packages are being installed.
Does your /usr/local/mailman/pythonlib have both a korean subdir and a korean.pth file?
-Barry

On Tue, Dec 31, 2002 at 12:39:54PM -0500, Barry A. Warsaw wrote:
- Are you using the standard Python from RH8 or did you build it from source?
Standard Python from RH 8.0.
- If your Python comes from an RPM, did you install just the standard package or did you also install the devel package?
I didn't intentionally install the devel package. I don't believe it's there (can't check at the moment).
- Do you see any other errors from a "make install" of Mailman 2.1? Look very carefully, especially where the distutils packages are being installed.
Not that I can see. Here's a tee of it:
http://home.thescratchpad.net/mminstall.txt
- Does your /usr/local/mailman/pythonlib have both a korean subdir and a korean.pth file?
It has neither. In fact, it's quite empty (hadn't noticed that before).
Note also that RH (for whatever reason) uses /var/mailman as the default
install path, so I built the upgrade to use the same. I attempted an
alternate installation in the /usr/local/mailman/, but obviously, had the
same error.
-- warren woodward XMission DSL warrenw@xmission.com (801) 303-0819 (877) XMISSION
"The United States, as the world knows, will never start a war." -JFK, American University, June 10, 1963

"WW" == Warren Woodward <warrenw@xmission.com> writes:
>> - Do you see any other errors from a "make install" of Mailman
>> 2.1? Look very carefully, especially where the distutils
>> packages are being installed.
WW> Not that I can see. Here's a tee of it:
WW> http://home.thescratchpad.net/mminstall.txt
Thanks. Okay, I believe that the distutils install is failing, but the make output gives no clue as to why. Can you do the following for me at the shell:
% cd <source directory> % cd misc % gunzip -c email-2.4.3.tar.gz | tar xf - % cd email-2.4.3 % umask 02 % PYTHONPATH=/var/mailman/pythonlib /usr/bin/python setup.py install --install-lib /var/mailman/pythonlib --install-purelib /var/mailman/pythonlib --install-data /var/mailman/pythonlib
And please send me the output.
Thanks, -Barry

Hmm. I think I'm back to blaming Red Hat.
[root@home email-2.4.3]# PYTHONPATH=/var/mailman/pythonlib /usr/bin/python setup.py install --install-lib /var/mailman/pythonlib --install-purelib /var/mailman/pythonlib --install-data /var/mailman/pythonlib running install Traceback (most recent call last): File "setup.py", line 38, in ? cmdclass={'install_lib': EmailInstall}, File "/usr/src/build/143041-i386/install/usr/lib/python2.2/distutils/core.py", line 138, in setup File "/usr/src/build/143041-i386/install/usr/lib/python2.2/distutils/dist.py", line 893, in run_commands File "/usr/src/build/143041-i386/install/usr/lib/python2.2/distutils/dist.py", line 912, in run_command File "/usr/lib/python2.2/cmd.py", line 112, in ensure_finalized return stop File "/usr/src/build/143041-i386/install/usr/lib/python2.2/distutils/command/install.py", line 267, in finalize_options File "/usr/src/build/143041-i386/install/usr/lib/python2.2/distutils/sysconfig.py", line 408, in get_config_vars File "/usr/src/build/143041-i386/install/usr/lib/python2.2/distutils/sysconfig.py", line 313, in _init_posix distutils.errors.DistutilsPlatformError: invalid Python installation: unable to open /usr/lib/python2.2/config/Makefile (No such file or directory)
-- warren woodward XMission DSL warrenw@xmission.com (801) 303-0819 (877) XMISSION
"The United States, as the world knows, will never start a war." -JFK, American University, June 10, 1963

"WW" == Warren Woodward <scratch@xmission.com> writes:
WW> Hmm. I think I'm back to blaming Red Hat.
Me too. See my followup to Chaim.
I'm betting (hoping) that if you install the python-devel package, it'll work for you. Unfortunately, configure had a catch for this, but it looks like RH changed their packages again and that catch doesn't work. Should be easy to "fix".
-Barry

Could folks who are having these "no korean package" problems please try the following configure script? If I'm right about the problem, this should bomb out with an error pretty early on. If it does, please install the python-devel package and see if that fixes your problems. If we can resolve this in the next couple of hours, I can upload a new tarball before the release announcement. Thanks! -Barry #! /bin/sh # From configure.in Revision: 2.37 # Guess values for system-dependent variables and create Makefiles. # Generated automatically using autoconf version 2.13 # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # Defaults: ac_help= ac_default_prefix=/usr/local # Any additions from configure.in: ac_default_prefix=/usr/local/mailman ac_help="$ac_help --with-python specify path to Python interpreter" ac_help="$ac_help --without-gcc never use gcc" ac_help="$ac_help --with-var-prefix directory for mutable data [/var/mailman]" ac_help="$ac_help --without-permcheck skip the check for target directory permissions" ac_help="$ac_help --with-username specify a user name other than \"mailman\"" ac_help="$ac_help --with-groupname specify a group name other than \"mailman\"" ac_help="$ac_help --with-mail-gid group name mail programs run as" ac_help="$ac_help --with-cgi-gid group name CGI programs run as" ac_help="$ac_help --with-cgi-ext specify extension for CGI programs (include dot)" ac_help="$ac_help --with-mailhost specify the hostname part for outgoing email" ac_help="$ac_help --with-urlhost specify the hostname part of urls" # Initialize some variables set by options. # The variables have the same names as the options, with # dashes changed to underlines. build=NONE cache_file=./config.cache exec_prefix=NONE host=NONE no_create= nonopt=NONE no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= target=NONE verbose= x_includes=NONE x_libraries=NONE bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' # Initialize some other variables. subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. ac_max_here_lines=12 ac_prev= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval "$ac_prev=\$ac_option" ac_prev= continue fi case "$ac_option" in -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; *) ac_optarg= ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case "$ac_option" in -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir="$ac_optarg" ;; -build | --build | --buil | --bui | --bu) ac_prev=build ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build="$ac_optarg" ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file="$ac_optarg" ;; -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ | --da=*) datadir="$ac_optarg" ;; -disable-* | --disable-*) ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` # Reject names that are not valid shell variable names. if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } fi ac_feature=`echo $ac_feature| sed 's/-/_/g'` eval "enable_${ac_feature}=no" ;; -enable-* | --enable-*) ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` # Reject names that are not valid shell variable names. if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } fi ac_feature=`echo $ac_feature| sed 's/-/_/g'` case "$ac_option" in *=*) ;; *) ac_optarg=yes ;; esac eval "enable_${ac_feature}='$ac_optarg'" ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix="$ac_optarg" ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he) # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat << EOF Usage: configure [options] [host] Options: [defaults in brackets after descriptions] Configuration: --cache-file=FILE cache test results in FILE --help print this message --no-create do not create output files --quiet, --silent do not print \`checking...' messages --version print the version of autoconf that created configure Directory and file names: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [same as prefix] --bindir=DIR user executables in DIR [EPREFIX/bin] --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] --libexecdir=DIR program executables in DIR [EPREFIX/libexec] --datadir=DIR read-only architecture-independent data in DIR [PREFIX/share] --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data in DIR [PREFIX/com] --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] --libdir=DIR object code libraries in DIR [EPREFIX/lib] --includedir=DIR C header files in DIR [PREFIX/include] --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] --infodir=DIR info documentation in DIR [PREFIX/info] --mandir=DIR man documentation in DIR [PREFIX/man] --srcdir=DIR find the sources in DIR [configure dir or ..] --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names EOF cat << EOF Host type: --build=BUILD configure for building on BUILD [BUILD=HOST] --host=HOST configure for HOST [guessed] --target=TARGET configure for TARGET [TARGET=HOST] Features and packages: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --x-includes=DIR X include files are in DIR --x-libraries=DIR X library files are in DIR EOF if test -n "$ac_help"; then echo "--enable and --with options recognized:$ac_help" fi exit 0 ;; -host | --host | --hos | --ho) ac_prev=host ;; -host=* | --host=* | --hos=* | --ho=*) host="$ac_optarg" ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir="$ac_optarg" ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir="$ac_optarg" ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir="$ac_optarg" ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir="$ac_optarg" ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst \ | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir="$ac_optarg" ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir="$ac_optarg" ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir="$ac_optarg" ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix="$ac_optarg" ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix="$ac_optarg" ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix="$ac_optarg" ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name="$ac_optarg" ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir="$ac_optarg" ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir="$ac_optarg" ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site="$ac_optarg" ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir="$ac_optarg" ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir="$ac_optarg" ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target="$ac_optarg" ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers) echo "configure generated by autoconf version 2.13" exit 0 ;; -with-* | --with-*) ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` # Reject names that are not valid shell variable names. if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } fi ac_package=`echo $ac_package| sed 's/-/_/g'` case "$ac_option" in *=*) ;; *) ac_optarg=yes ;; esac eval "with_${ac_package}='$ac_optarg'" ;; -without-* | --without-*) ac_package=`echo $ac_option|sed -e 's/-*without-//'` # Reject names that are not valid shell variable names. if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } fi ac_package=`echo $ac_package| sed 's/-/_/g'` eval "with_${ac_package}=no" ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes="$ac_optarg" ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries="$ac_optarg" ;; -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } ;; *) if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then echo "configure: warning: $ac_option: invalid host type" 1>&2 fi if test "x$nonopt" != xNONE; then { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } fi nonopt="$ac_option" ;; esac done if test -n "$ac_prev"; then { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } fi trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 # File descriptor usage: # 0 standard input # 1 file creation # 2 errors and warnings # 3 some systems may open it to /dev/tty # 4 used on the Kubota Titan # 6 checking for... messages and results # 5 compiler messages saved in config.log if test "$silent" = yes; then exec 6>/dev/null else exec 6>&1 fi exec 5>./config.log echo "\ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. " 1>&5 # Strip out --no-create and --no-recursion so they do not pile up. # Also quote any args containing shell metacharacters. ac_configure_args= for ac_arg do case "$ac_arg" in -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c) ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) ac_configure_args="$ac_configure_args '$ac_arg'" ;; *) ac_configure_args="$ac_configure_args $ac_arg" ;; esac done # NLS nuisances. # Only set these to C if already set. These must not be set unconditionally # because not all systems understand e.g. LANG=C (notably SCO). # Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! # Non-C LC_CTYPE values break the ctype check. if test "${LANG+set}" = set; then LANG=C; export LANG; fi if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h # AIX cpp loses on an empty file, so make sure it contains at least a newline. echo > confdefs.h # A filename unique to this package, relative to the directory that # configure is in, which we can look for to find out if srcdir is correct. ac_unique_file=src/common.h # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then its parent. ac_prog=$0 ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. srcdir=$ac_confdir if test ! -r $srcdir/$ac_unique_file; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r $srcdir/$ac_unique_file; then if test "$ac_srcdir_defaulted" = yes; then { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } else { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } fi fi srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` # Prefer explicitly selected file to automatically selected ones. if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" else CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then echo "loading site script $ac_site_file" . "$ac_site_file" fi done if test -r "$cache_file"; then echo "loading cache $cache_file" . $cache_file else echo "creating cache $cache_file"
$cache_file fi
ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cc_cross ac_exeext= ac_objext=o if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then ac_n= ac_c=' ' ac_t=' ' else ac_n=-n ac_c= ac_t= fi else ac_n= ac_c='\c' ac_t= fi # /usr/local/mailman is the default installation directory # Check for Python! Better be found on $PATH echo $ac_n "checking for --with-python""... $ac_c" 1>&6 echo "configure:558: checking for --with-python" >&5 # Check whether --with-python or --without-python was given. if test "${with_python+set}" = set; then withval="$with_python" : fi case "$with_python" in "") ans="no";; *) ans="$with_python" esac echo "$ac_t""$ans" 1>&6 if test -z "$with_python" then # Extract the first word of "python", so it can be a program name with args. set dummy python; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo "configure:576: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_with_python'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else case "$with_python" in /*) ac_cv_path_with_python="$with_python" # Let the user override the test with a path. ;; ?:/*) ac_cv_path_with_python="$with_python" # Let the user override the test with a dos path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_path_with_python="$ac_dir/$ac_word" break fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_with_python" && ac_cv_path_with_python="/usr/local/bin/python" ;; esac fi with_python="$ac_cv_path_with_python" if test -n "$with_python"; then echo "$ac_t""$with_python" 1>&6 else echo "$ac_t""no" 1>&6 fi fi echo $ac_n "checking Python interpreter""... $ac_c" 1>&6 echo "configure:612: checking Python interpreter" >&5 if test ! -x $with_python then { echo "configure: error: ***** No Python interpreter found! ***** Try including the configure option ***** --with-python=/path/to/python/interpreter" 1>&2; exit 1; } fi PYTHON=$with_python echo "$ac_t""$PYTHON" 1>&6 # See if Python is new enough. 2.1 or better is required, with 2.1.3 # recommended. echo $ac_n "checking Python version""... $ac_c" 1>&6 echo "configure:628: checking Python version" >&5 cat > conftest.py <<EOF import sys try: v = sys.hexversion except AttributeError: v = 0 # int of hexversion 0x2010000 if v >= 0x2010000: s = sys.version.split()[0] else: s = "" fp = open("conftest.out", "w") fp.write("%s\n" % s) fp.close() EOF $PYTHON conftest.py version=`cat conftest.out` rm -f conftest.out conftest.py if test -z "$version" then { echo "configure: error: ***** $PYTHON is too old (or broken) ***** Python 2.1 or newer is required ***** Python 2.1.3 or better is recommended" 1>&2; exit 1; } fi echo "$ac_t""$version" 1>&6 # Make sure distutils is available. Some Linux Python packages split # distutils into the "-devel" package, so they need both. echo $ac_n "checking that Python has distutils""... $ac_c" 1>&6 echo "configure:662: checking that Python has distutils" >&5 cat > conftest.py <<EOF try: import distutils.errors import distutils.sysconfig except ImportError: res = "no" else: res = "yes" try: distutils.sysconfig.get_config_vars() except distutils.errors.DistutilsPlatformError: res = "no" fp = open("conftest.out", "w") fp.write("%s\n" % res) fp.close() EOF $PYTHON conftest.py havedistutils=`cat conftest.out` rm -f conftest.out conftest.py if test "$havedistutils" != "yes" then { echo "configure: error: ***** Distutils is not available or is incomplete for $PYTHON ***** If you installed Python from RPM (or other package manager) ***** be sure to install the -devel package, or install Python ***** from source. See README.LINUX for details" 1>&2; exit 1; } fi echo "$ac_t""$havedistutils" 1>&6 # Checks for programs. ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f $ac_dir/install.sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break fi done if test -z "$ac_aux_dir"; then { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } fi ac_config_guess=$ac_aux_dir/config.guess ac_config_sub=$ac_aux_dir/config.sub ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 echo "configure:727: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" for ac_dir in $PATH; do # Account for people who put trailing slashes in PATH elements. case "$ac_dir/" in /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do if test -f $ac_dir/$ac_prog; then if test $ac_prog = install && grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : else ac_cv_path_install="$ac_dir/$ac_prog -c" break 2 fi fi done ;; esac done IFS="$ac_save_IFS" fi if test "${ac_cv_path_install+set}" = set; then INSTALL="$ac_cv_path_install" else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL="$ac_install_sh" fi fi echo "$ac_t""$INSTALL" 1>&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 echo "configure:780: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftestmake <<\EOF all: @echo 'ac_maketemp="${MAKE}"' EOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` if test -n "$ac_maketemp"; then eval ac_cv_prog_make_${ac_make}_set=yes else eval ac_cv_prog_make_${ac_make}_set=no fi rm -f conftestmake fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then echo "$ac_t""yes" 1>&6 SET_MAKE= else echo "$ac_t""no" 1>&6 SET_MAKE="MAKE=${MAKE-make}" fi # Extract the first word of "true", so it can be a program name with args. set dummy true; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo "configure:809: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_TRUE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else case "$TRUE" in /*) ac_cv_path_TRUE="$TRUE" # Let the user override the test with a path. ;; ?:/*) ac_cv_path_TRUE="$TRUE" # Let the user override the test with a dos path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_dummy="$PATH:/bin:/usr/bin" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_path_TRUE="$ac_dir/$ac_word" break fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_TRUE" && ac_cv_path_TRUE="true" ;; esac fi TRUE="$ac_cv_path_TRUE" if test -n "$TRUE"; then echo "$ac_t""$TRUE" 1>&6 else echo "$ac_t""no" 1>&6 fi # Find compiler, allow alternatives to gcc echo $ac_n "checking for --without-gcc""... $ac_c" 1>&6 echo "configure:845: checking for --without-gcc" >&5 # Check whether --with-gcc or --without-gcc was given. if test "${with_gcc+set}" = set; then withval="$with_gcc" case $withval in no) CC=cc without_gcc=yes;; yes) CC=gcc without_gcc=no;; *) CC=$withval without_gcc=$withval;; esac else without_gcc=no; fi echo "$ac_t""$without_gcc" 1>&6 # If the user switches compilers, we can't believe the cache if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC" then { echo "configure: error: cached CC is different -- throw away $cache_file (it is also a good idea to do 'make clean' before compiling)" 1>&2; exit 1; } fi # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo "configure:874: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_CC="gcc" break fi done IFS="$ac_save_ifs" fi fi CC="$ac_cv_prog_CC" if test -n "$CC"; then echo "$ac_t""$CC" 1>&6 else echo "$ac_t""no" 1>&6 fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo "configure:904: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_prog_rejected=no ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" break fi done IFS="$ac_save_ifs" if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# -gt 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift set dummy "$ac_dir/$ac_word" "$@" shift ac_cv_prog_CC="$@" fi fi fi fi CC="$ac_cv_prog_CC" if test -n "$CC"; then echo "$ac_t""$CC" 1>&6 else echo "$ac_t""no" 1>&6 fi if test -z "$CC"; then case "`uname -s`" in *win32* | *WIN32*) # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo "configure:955: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then ac_cv_prog_CC="cl" break fi done IFS="$ac_save_ifs" fi fi CC="$ac_cv_prog_CC" if test -n "$CC"; then echo "$ac_t""$CC" 1>&6 else echo "$ac_t""no" 1>&6 fi ;; esac fi test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 echo "configure:987: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF #line 998 "configure" #include "confdefs.h" main(){return(0);} EOF if { (eval echo configure:1003: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then ac_cv_prog_cc_cross=no else ac_cv_prog_cc_cross=yes fi else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 ac_cv_prog_cc_works=no fi rm -fr conftest* ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' cross_compiling=$ac_cv_prog_cc_cross echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 echo "configure:1029: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 echo "configure:1034: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.c <<EOF #ifdef __GNUC__ yes; #endif EOF if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1043: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no fi fi echo "$ac_t""$ac_cv_prog_gcc" 1>&6 if test $ac_cv_prog_gcc = yes; then GCC=yes else GCC= fi ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 echo "configure:1062: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else echo 'void f(){}' > conftest.c if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then ac_cv_prog_cc_g=yes else ac_cv_prog_cc_g=no fi rm -f conftest* fi echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 if test "$ac_test_CFLAGS" = set; then CFLAGS="$ac_save_CFLAGS" elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi # Optimizer/debugger flags passed between Makefiles if test -z "$OPT" then case $GCC in yes) case $ac_cv_prog_cc_g in yes) OPT="-g -O2";; *) OPT="-O2";; esac ;; *) OPT="-O";; esac fi # We better be able to execute interpreters # Pull the hash mark out of the macro call to avoid m4 problems. ac_msg="whether #! works in shell scripts" echo $ac_n "checking $ac_msg""... $ac_c" 1>&6 echo "configure:1114: checking $ac_msg" >&5 if eval "test \"`echo '$''{'ac_cv_sys_interpreter'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else echo '#! /bin/cat exit 69 ' > conftest chmod u+x conftest (SHELL=/bin/sh; export SHELL; ./conftest >/dev/null) if test $? -ne 69; then ac_cv_sys_interpreter=yes else ac_cv_sys_interpreter=no fi rm -f conftest fi echo "$ac_t""$ac_cv_sys_interpreter" 1>&6 interpval="$ac_cv_sys_interpreter" if test "$ac_cv_sys_interpreter" != "yes" then { echo "configure: error: ***** Cannot execute interpreter scripts? ***** Are you sure you system doesn't support this?" 1>&2; exit 1; } fi # Check for an alternate data directory, separate from installation dir. default_var_prefix="/var/mailman" echo $ac_n "checking for --with-var-prefix""... $ac_c" 1>&6 echo "configure:1147: checking for --with-var-prefix" >&5 # Check whether --with-var-prefix or --without-var-prefix was given. if test "${with_var_prefix+set}" = set; then withval="$with_var_prefix" : fi case "$with_var_prefix" in yes) VAR_PREFIX="$default_var_prefix"; ans=$VAR_PREFIX;; ""|no) VAR_PREFIX="$prefix"; ans="no";; *) VAR_PREFIX="$with_var_prefix"; ans=$VAR_PREFIX; esac echo "$ac_t""$ans" 1>&6 echo $ac_n "checking for --with-permcheck""... $ac_c" 1>&6 echo "configure:1162: checking for --with-permcheck" >&5 # Check whether --with-permcheck or --without-permcheck was given. if test "${with_permcheck+set}" = set; then withval="$with_permcheck" : fi if test -z "$with_permcheck" then with_permcheck="yes" fi echo "$ac_t""$with_permcheck" 1>&6 # Now make sure that $prefix is set up correctly. It must be group # owned by the target group, it must have the group sticky bit set, and # it must be a+rx if test "$VAR_PREFIX" = "NONE" then VAR_PREFIX=$ac_default_prefix prefixcheck=$ac_default_prefix else prefixcheck=$VAR_PREFIX fi # new macro for finding group names # new macro for finding UIDs # Check for some other uid to use than `mailman' echo $ac_n "checking for --with-username""... $ac_c" 1>&6 echo "configure:1194: checking for --with-username" >&5 # Check whether --with-username or --without-username was given. if test "${with_username+set}" = set; then withval="$with_username" : fi if test -z "$with_username" then with_username="mailman" fi USERNAME=$with_username echo "$ac_t""$USERNAME" 1>&6 # User `mailman' must exist echo $ac_n "checking for user name \"$USERNAME\"""... $ac_c" 1>&6 echo "configure:1212: checking for user name \"$USERNAME\"" >&5 # MAILMAN_USER == variable name # $USERNAME == user id to check for if test -z "$MAILMAN_USER" then cat > conftest.py <<EOF import pwd uid = '' for user in "$USERNAME".split(): try: try: uname = pwd.getpwuid(int(user))[0] break except ValueError: uname = pwd.getpwnam(user)[0] break except KeyError: uname = '' fp = open("conftest.out", "w") fp.write("%s\n" % uname) fp.close() EOF $PYTHON conftest.py MAILMAN_USER=`cat conftest.out` fi rm -f conftest.out conftest.py if test -z "$MAILMAN_USER" then if test "$with_permcheck" = "yes" then { echo "configure: error: ***** No \"$USERNAME\" user found! ***** Your system must have a \"$USERNAME\" user defined ***** (usually in your /etc/passwd file). Please see the INSTALL ***** file for details." 1>&2; exit 1; } fi fi echo "$ac_t""okay" 1>&6 # Check for some other gid to use than `mailman' echo $ac_n "checking for --with-groupname""... $ac_c" 1>&6 echo "configure:1258: checking for --with-groupname" >&5 # Check whether --with-groupname or --without-groupname was given. if test "${with_groupname+set}" = set; then withval="$with_groupname" : fi if test -z "$with_groupname" then with_groupname="mailman" fi GROUPNAME=$with_groupname echo "$ac_t""$GROUPNAME" 1>&6 # Target group must exist echo $ac_n "checking for group name \"$GROUPNAME\"""... $ac_c" 1>&6 echo "configure:1277: checking for group name \"$GROUPNAME\"" >&5 # MAILMAN_GROUP == variable name # $GROUPNAME == user id to check for if test -z "$MAILMAN_GROUP" then cat > conftest.py <<EOF import grp gid = '' for group in "$GROUPNAME".split(): try: try: gname = grp.getgrgid(int(group))[0] break except ValueError: gname = grp.getgrnam(group)[0] break except KeyError: gname = '' fp = open("conftest.out", "w") fp.write("%s\n" % gname) fp.close() EOF $PYTHON conftest.py MAILMAN_GROUP=`cat conftest.out` fi rm -f conftest.out conftest.py if test -z "$MAILMAN_GROUP" then if test "$with_permcheck" = "yes" then { echo "configure: error: ***** No \"$GROUPNAME\" group found! ***** Your system must have a \"$GROUPNAME\" group defined ***** (usually in your /etc/group file). Please see the INSTALL ***** file for details." 1>&2; exit 1; } fi fi echo "$ac_t""okay" 1>&6 echo $ac_n "checking permissions on $prefixcheck""... $ac_c" 1>&6 echo "configure:1322: checking permissions on $prefixcheck" >&5 cat > conftest.py <<EOF import os, grp from stat import * prefix = "$prefixcheck" groupname = "$GROUPNAME" mailmangroup = "$MAILMAN_GROUP" mailmangid = grp.getgrnam(mailmangroup)[2] problems = [] try: statdata = os.stat(prefix) except OSError: problems.append("Directory doesn't exist: " + prefix) else: mode = statdata[ST_MODE] gid = statdata[ST_GID] if mailmangid <> gid: problems.append("Directory must be owned by group " + groupname + ": " + prefix) if (mode & S_ISGID) <> S_ISGID: problems.append("Set-gid bit must be set for directory: " + prefix) perms = S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH if (mode & perms) <> perms: problems.append("Permissions should be at least 02775: " + prefix) if not problems: msg = "okay\n" else: msg = '***** ' + '\n***** '.join(problems) + '\n' fp = open("conftest.out", "w") fp.write(msg) fp.close() EOF $PYTHON conftest.py status=`cat conftest.out` rm -f conftest.out conftest.py if test "$with_permcheck" = "yes" then if test "$status" != "okay" then { echo "configure: error: ***** Installation directory $prefixcheck is not configured properly! $status" 1>&2; exit 1; } fi else status="skipped" fi echo "$ac_t""$status" 1>&6 # Now find the UIDs and GIDs # Support --with-mail-gid and --with-cgi-gid echo $ac_n "checking for mail wrapper group; i.e. --with-mail-gid""... $ac_c" 1>&6 echo "configure:1375: checking for mail wrapper group; i.e. --with-mail-gid" >&5 # Check whether --with-mail-gid or --without-mail-gid was given. if test "${with_mail_gid+set}" = set; then withval="$with_mail_gid" : fi if test -z "$with_mail_gid" then with_mail_gid="mailman other mail daemon" fi # MAIL_GROUP == variable name # $with_mail_gid == user id to check for if test -z "$MAIL_GROUP" then cat > conftest.py <<EOF import grp gid = '' for group in "$with_mail_gid".split(): try: try: gname = grp.getgrgid(int(group))[0] break except ValueError: gname = grp.getgrnam(group)[0] break except KeyError: gname = '' fp = open("conftest.out", "w") fp.write("%s\n" % gname) fp.close() EOF $PYTHON conftest.py MAIL_GROUP=`cat conftest.out` fi rm -f conftest.out conftest.py if test -z "$MAIL_GROUP" then if test "$with_permcheck" = "yes" then { echo "configure: error: ***** No group name \"$with_mail_gid\" found for the mail wrapper program. ***** This is the group that your mail server will use to run Mailman's ***** programs. You should specify an existing group with the ***** --with-mail-gid configure option, or use --without-permcheck to ***** skip this verification step. See also your mail server's documentation, ***** and Mailman's INSTALL file for details" 1>&2; exit 1; } else MAIL_GROUP=$with_mail_gid fi fi echo "$ac_t""$MAIL_GROUP" 1>&6 echo $ac_n "checking for CGI wrapper group; i.e. --with-cgi-gid""... $ac_c" 1>&6 echo "configure:1434: checking for CGI wrapper group; i.e. --with-cgi-gid" >&5 # Check whether --with-cgi-gid or --without-cgi-gid was given. if test "${with_cgi_gid+set}" = set; then withval="$with_cgi_gid" : fi if test -z "$with_cgi_gid" then with_cgi_gid="www www-data nobody" fi # CGI_GROUP == variable name # $with_cgi_gid == user id to check for if test -z "$CGI_GROUP" then cat > conftest.py <<EOF import grp gid = '' for group in "$with_cgi_gid".split(): try: try: gname = grp.getgrgid(int(group))[0] break except ValueError: gname = grp.getgrnam(group)[0] break except KeyError: gname = '' fp = open("conftest.out", "w") fp.write("%s\n" % gname) fp.close() EOF $PYTHON conftest.py CGI_GROUP=`cat conftest.out` fi rm -f conftest.out conftest.py if test -z "$CGI_GROUP" then if test "$with_permcheck" = "yes" then { echo "configure: error: ***** No group name \"$with_cgi_gid\" found for the CGI wrapper program. ***** This is the group that your web server will use to run Mailman's ***** programs. You should specify an existing group with the ***** --with-cgi-gid configure option, or use --without-permcheck to ***** skip this verification step. See also your web server's documentation, ***** and Mailman's INSTALL file for details" 1>&2; exit 1; } else CGI_GROUP=$with_cgi_gid fi fi echo "$ac_t""$CGI_GROUP" 1>&6 # Check for CGI extensions, required by some Web servers echo $ac_n "checking for CGI extensions""... $ac_c" 1>&6 echo "configure:1496: checking for CGI extensions" >&5 # Check whether --with-cgi-ext or --without-cgi-ext was given. if test "${with_cgi_ext+set}" = set; then withval="$with_cgi_ext" : fi if test -z "$with_cgi_ext" then CGIEXT='' with_cgi_ext='no' else CGIEXT=$with_cgi_ext fi echo "$ac_t""$with_cgi_ext" 1>&6 # figure out the default mail hostname and url host component echo $ac_n "checking for --with-mailhost""... $ac_c" 1>&6 echo "configure:1516: checking for --with-mailhost" >&5 # Check whether --with-mailhost or --without-mailhost was given. if test "${with_mailhost+set}" = set; then withval="$with_mailhost" : fi if test -z "$with_mailhost" then MAILHOST='' with_mailhost='no' else MAILHOST=$with_mailhost fi echo "$ac_t""$with_mailhost" 1>&6 echo $ac_n "checking for --with-urlhost""... $ac_c" 1>&6 echo "configure:1534: checking for --with-urlhost" >&5 # Check whether --with-urlhost or --without-urlhost was given. if test "${with_urlhost+set}" = set; then withval="$with_urlhost" : fi if test -z "$with_urlhost" then URLHOST='' with_urlhost='no' else URLHOST=$with_urlhost fi echo "$ac_t""$with_urlhost" 1>&6 cat > conftest.py <<EOF # python from socket import * fqdn = getfqdn() fp = open('conftest.out', 'w') print >> fp, fqdn print >> fp, fqdn fp.close() EOF $PYTHON conftest.py echo $ac_n "checking for default mail host name""... $ac_c" 1>&6 echo "configure:1563: checking for default mail host name" >&5 if test -z "$MAILHOST" then MAILHOST=`sed q conftest.out` fi echo "$ac_t""$MAILHOST" 1>&6 echo $ac_n "checking for default URL host component""... $ac_c" 1>&6 echo "configure:1570: checking for default URL host component" >&5 if test -z "$URLHOST" then URLHOST=`sed -n '$p' conftest.out` fi echo "$ac_t""$URLHOST" 1>&6 rm -f conftest.out conftest.py # Checks for libraries. for ac_func in strerror setregid syslog do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo "configure:1582: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF #line 1587 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ #include <assert.h> /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func(); int main() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else $ac_func(); #endif ; return 0; } EOF if { (eval echo configure:1610: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_func_$ac_func=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` cat >> confdefs.h <<EOF #define $ac_tr_func 1 EOF else echo "$ac_t""no" 1>&6 fi done if test $ac_cv_func_syslog = no; then # syslog is not in the default libraries. See if it's in some other. # Additionally, for at least SCO OpenServer, syslog() is #defined to # one of several _real_ functions in syslog.h, so we need to do the test # with the appropriate include. for lib in bsd socket inet; do echo $ac_n "checking for syslog in -l$lib""... $ac_c" 1>&6 echo "configure:1641: checking for syslog in -l$lib" >&5 Mailman_LIBS_save="$LIBS"; LIBS="$LIBS -l$lib" cat > conftest.$ac_ext <<EOF #line 1644 "configure" #include "confdefs.h" #include <syslog.h> int main() { syslog(LOG_DEBUG, "Just a test..."); ; return 0; } EOF if { (eval echo configure:1651: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""yes" 1>&6 cat >> confdefs.h <<\EOF #define HAVE_SYSLOG 1 EOF break else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* echo "$ac_t""no" 1>&6 LIBS="$Mailman_LIBS_save" fi rm -f conftest* unset Mailman_LIBS_save done fi # Checks for header files. echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 echo "configure:1673: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else # This must be in double quotes, not single quotes, because CPP may get # substituted into the Makefile and "${CC-cc}" will confuse make. CPP="${CC-cc} -E" # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext <<EOF #line 1688 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:1694: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext <<EOF #line 1705 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:1711: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext <<EOF #line 1722 "configure" #include "confdefs.h" #include <assert.h> Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:1728: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* CPP=/lib/cpp fi rm -f conftest* fi rm -f conftest* fi rm -f conftest* ac_cv_prog_CPP="$CPP" fi CPP="$ac_cv_prog_CPP" else ac_cv_prog_CPP="$CPP" fi echo "$ac_t""$CPP" 1>&6 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 echo "configure:1753: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF #line 1758 "configure" #include "confdefs.h" #include <stdlib.h> #include <stdarg.h> #include <string.h> #include <float.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:1766: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* ac_cv_header_stdc=yes else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* ac_cv_header_stdc=no fi rm -f conftest* if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext <<EOF #line 1783 "configure" #include "confdefs.h" #include <string.h> EOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | egrep "memchr" >/dev/null 2>&1; then : else rm -rf conftest* ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext <<EOF #line 1801 "configure" #include "confdefs.h" #include <stdlib.h> EOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | egrep "free" >/dev/null 2>&1; then : else rm -rf conftest* ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext <<EOF #line 1822 "configure" #include "confdefs.h" #include <ctype.h> #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') #define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF if { (eval echo configure:1833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -fr conftest* ac_cv_header_stdc=no fi rm -fr conftest* fi fi fi echo "$ac_t""$ac_cv_header_stdc" 1>&6 if test $ac_cv_header_stdc = yes; then cat >> confdefs.h <<\EOF #define STDC_HEADERS 1 EOF fi for ac_hdr in syslog.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 echo "configure:1860: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF #line 1865 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" { (eval echo configure:1870: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* eval "ac_cv_header_$ac_safe=yes" else echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_header_$ac_safe=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` cat >> confdefs.h <<EOF #define $ac_tr_hdr 1 EOF else echo "$ac_t""no" 1>&6 fi done # Checks for typedefs, structures, and compiler characteristics. echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 echo "configure:1899: checking for uid_t in sys/types.h" >&5 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF #line 1904 "configure" #include "confdefs.h" #include <sys/types.h> EOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | egrep "uid_t" >/dev/null 2>&1; then rm -rf conftest* ac_cv_type_uid_t=yes else rm -rf conftest* ac_cv_type_uid_t=no fi rm -f conftest* fi echo "$ac_t""$ac_cv_type_uid_t" 1>&6 if test $ac_cv_type_uid_t = no; then cat >> confdefs.h <<\EOF #define uid_t int EOF cat >> confdefs.h <<\EOF #define gid_t int EOF fi echo $ac_n "checking type of array argument to getgroups""... $ac_c" 1>&6 echo "configure:1933: checking type of array argument to getgroups" >&5 if eval "test \"`echo '$''{'ac_cv_type_getgroups'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test "$cross_compiling" = yes; then ac_cv_type_getgroups=cross else cat > conftest.$ac_ext <<EOF #line 1941 "configure" #include "confdefs.h" /* Thanks to Mike Rendell for this test. */ #include <sys/types.h> #define NGID 256 #undef MAX #define MAX(x, y) ((x) > (y) ? (x) : (y)) main() { gid_t gidset[NGID]; int i, n; union { gid_t gval; long lval; } val; val.lval = -1; for (i = 0; i < NGID; i++) gidset[i] = val.gval; n = getgroups (sizeof (gidset) / MAX (sizeof (int), sizeof (gid_t)) - 1, gidset); /* Exit non-zero if getgroups seems to require an array of ints. This happens when gid_t is short but getgroups modifies an array of ints. */ exit ((n > 0 && gidset[n] != val.gval) ? 1 : 0); } EOF if { (eval echo configure:1966: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_type_getgroups=gid_t else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -fr conftest* ac_cv_type_getgroups=int fi rm -fr conftest* fi if test $ac_cv_type_getgroups = cross; then cat > conftest.$ac_ext <<EOF #line 1980 "configure" #include "confdefs.h" #include <unistd.h> EOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | egrep "getgroups.*int.*gid_t" >/dev/null 2>&1; then rm -rf conftest* ac_cv_type_getgroups=gid_t else rm -rf conftest* ac_cv_type_getgroups=int fi rm -f conftest* fi fi echo "$ac_t""$ac_cv_type_getgroups" 1>&6 cat >> confdefs.h <<EOF #define GETGROUPS_T $ac_cv_type_getgroups EOF # Checks for library functions. for ac_func in vsnprintf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo "configure:2008: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF #line 2013 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ #include <assert.h> /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func(); int main() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else $ac_func(); #endif ; return 0; } EOF if { (eval echo configure:2036: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* eval "ac_cv_func_$ac_func=no" fi rm -f conftest* fi if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then echo "$ac_t""yes" 1>&6 ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` cat >> confdefs.h <<EOF #define $ac_tr_func 1 EOF else echo "$ac_t""no" 1>&6 fi done SCRIPTS="build/bin/add_members:bin/add_members \ build/bin/arch:bin/arch \ build/bin/change_pw:bin/change_pw \ build/bin/check_db:bin/check_db \ build/bin/check_perms:bin/check_perms \ build/bin/cleanarch:bin/cleanarch \ build/bin/clone_member:bin/clone_member \ build/bin/config_list:bin/config_list \ build/bin/convert.py:bin/convert.py \ build/bin/dumpdb:bin/dumpdb \ build/bin/find_member:bin/find_member \ build/bin/fix_url.py:bin/fix_url.py \ build/bin/genaliases:bin/genaliases \ build/bin/inject:bin/inject \ build/bin/list_admins:bin/list_admins \ build/bin/list_lists:bin/list_lists \ build/bin/list_members:bin/list_members \ build/bin/list_owners:bin/list_owners \ build/bin/mailmanctl:bin/mailmanctl \ build/bin/mmsitepass:bin/mmsitepass \ build/bin/newlist:bin/newlist \ build/bin/pygettext.py:bin/pygettext.py \ build/bin/qrunner:bin/qrunner \ build/bin/remove_members:bin/remove_members \ build/bin/rmlist:bin/rmlist \ build/bin/sync_members:bin/sync_members \ build/bin/transcheck:bin/transcheck \ build/bin/unshunt:bin/unshunt \ build/bin/update:bin/update \ build/bin/version:bin/version \ build/bin/withlist:bin/withlist \ build/bin/b4b5-archfix:bin/b4b5-archfix \ build/contrib/check_perms_grsecurity.py:contrib/check_perms_grsecurity.py \ build/contrib/qmail-to-mailman.py:contrib/qmail-to-mailman.py \ build/contrib/rotatelogs.py:contrib/rotatelogs.py \ build/cron/bumpdigests:cron/bumpdigests \ build/cron/checkdbs:cron/checkdbs \ build/cron/disabled:cron/disabled \ build/cron/gate_news:cron/gate_news \ build/cron/mailpasswds:cron/mailpasswds \ build/cron/nightly_gzip:cron/nightly_gzip \ build/cron/senddigests:cron/senddigests \ " # These directories are temporary directories to store macro-expanded # scripts. They're removed on a make distclean, so we make them here. mkdir -p build/bin build/contrib build/cron trap '' 1 2 15 cat > confcache <<\EOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs. It is not useful on other systems. # If it contains results you don't want to keep, you may remove or edit it. # # By default, configure uses ./config.cache as the cache file, # creating it if it does not exist already. You can give configure # the --cache-file=FILE option to use a different cache file; that is # what configure does when it calls configure scripts in # subdirectories, so they share the cache. # Giving --cache-file=/dev/null disables caching, for debugging configure. # config.status only pays attention to the cache file if you give it the # --recheck option to rerun configure. # EOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, don't put newlines in cache variables' values. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. (set) 2>&1 | case `(ac_space=' '; set | grep ac_space) 2>&1` in *ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote substitution # turns \\\\ into \\, and sed turns \\ into \). sed -n \ -e "s/'/'\\\\''/g" \ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' ;; esac >> confcache if cmp -s $cache_file confcache; then : else if test -w $cache_file; then echo "updating cache $cache_file" cat confcache > $cache_file else echo "not updating unwritable cache $cache_file" fi fi rm -f confcache trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Any assignment to VPATH causes Sun make to only execute # the first set of double-colon rules, so remove it if not needed. # If there is a colon in the path, we need to keep it. if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' fi trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. cat > conftest.defs <<\EOF s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g s%\[%\\&%g s%\]%\\&%g s%\$%$$%g EOF DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` rm -f conftest.defs # Without the "./", some shells look in PATH for config.status. : ${CONFIG_STATUS=./config.status} echo creating $CONFIG_STATUS rm -f $CONFIG_STATUS cat > $CONFIG_STATUS <<EOF #! /bin/sh # Generated automatically by configure. # Run this file to recreate the current configuration. # This directory was configured as follows, # on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # # $0 $ac_configure_args # # Compiler output produced by configure, useful for debugging # configure, is in ./config.log if it exists. ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" for ac_option do case "\$ac_option" in -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; -version | --version | --versio | --versi | --vers | --ver | --ve | --v) echo "$CONFIG_STATUS generated by autoconf version 2.13" exit 0 ;; -help | --help | --hel | --he | --h) echo "\$ac_cs_usage"; exit 0 ;; *) echo "\$ac_cs_usage"; exit 1 ;; esac done ac_given_srcdir=$srcdir ac_given_INSTALL="$INSTALL" trap 'rm -fr `echo "misc/paths.py Mailman/Defaults.py Mailman/mm_cfg.py.dist src/Makefile misc/Makefile bin/Makefile Mailman/Makefile Mailman/Cgi/Makefile Mailman/Logging/Makefile Mailman/Archiver/Makefile Mailman/Commands/Makefile Mailman/Handlers/Makefile Mailman/Bouncers/Makefile Mailman/Queue/Makefile Mailman/MTA/Makefile Mailman/Gui/Makefile templates/Makefile cron/Makefile scripts/Makefile messages/Makefile cron/crontab.in misc/mailman Makefile tests/Makefile tests/bounces/Makefile tests/msgs/Makefile $SCRIPTS" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 EOF cat >> $CONFIG_STATUS <<EOF # Protect against being on the right side of a sed subst in config.status. sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF $ac_vpsub $extrasub s%@SHELL@%$SHELL%g s%@CFLAGS@%$CFLAGS%g s%@CPPFLAGS@%$CPPFLAGS%g s%@CXXFLAGS@%$CXXFLAGS%g s%@FFLAGS@%$FFLAGS%g s%@DEFS@%$DEFS%g s%@LDFLAGS@%$LDFLAGS%g s%@LIBS@%$LIBS%g s%@exec_prefix@%$exec_prefix%g s%@prefix@%$prefix%g s%@program_transform_name@%$program_transform_name%g s%@bindir@%$bindir%g s%@sbindir@%$sbindir%g s%@libexecdir@%$libexecdir%g s%@datadir@%$datadir%g s%@sysconfdir@%$sysconfdir%g s%@sharedstatedir@%$sharedstatedir%g s%@localstatedir@%$localstatedir%g s%@libdir@%$libdir%g s%@includedir@%$includedir%g s%@oldincludedir@%$oldincludedir%g s%@infodir@%$infodir%g s%@mandir@%$mandir%g s%@with_python@%$with_python%g s%@PYTHON@%$PYTHON%g s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g s%@INSTALL_DATA@%$INSTALL_DATA%g s%@SET_MAKE@%$SET_MAKE%g s%@TRUE@%$TRUE%g s%@CC@%$CC%g s%@OPT@%$OPT%g s%@VAR_PREFIX@%$VAR_PREFIX%g s%@MAILMAN_USER@%$MAILMAN_USER%g s%@MAILMAN_GROUP@%$MAILMAN_GROUP%g s%@MAIL_GROUP@%$MAIL_GROUP%g s%@CGI_GROUP@%$CGI_GROUP%g s%@CGIEXT@%$CGIEXT%g s%@MAILHOST@%$MAILHOST%g s%@URLHOST@%$URLHOST%g s%@CPP@%$CPP%g s%@SCRIPTS@%$SCRIPTS%g CEOF EOF cat >> $CONFIG_STATUS <<\EOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. ac_file=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_cmds # Line after last line for current file. ac_more_lines=: ac_sed_cmds="" while $ac_more_lines; do if test $ac_beg -gt 1; then sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file else sed "${ac_end}q" conftest.subs > conftest.s$ac_file fi if test ! -s conftest.s$ac_file; then ac_more_lines=false rm -f conftest.s$ac_file else if test -z "$ac_sed_cmds"; then ac_sed_cmds="sed -f conftest.s$ac_file" else ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" fi ac_file=`expr $ac_file + 1` ac_beg=$ac_end ac_end=`expr $ac_end + $ac_max_sed_cmds` fi done if test -z "$ac_sed_cmds"; then ac_sed_cmds=cat fi EOF cat >> $CONFIG_STATUS <<EOF CONFIG_FILES=\${CONFIG_FILES-"misc/paths.py Mailman/Defaults.py Mailman/mm_cfg.py.dist src/Makefile misc/Makefile bin/Makefile Mailman/Makefile Mailman/Cgi/Makefile Mailman/Logging/Makefile Mailman/Archiver/Makefile Mailman/Commands/Makefile Mailman/Handlers/Makefile Mailman/Bouncers/Makefile Mailman/Queue/Makefile Mailman/MTA/Makefile Mailman/Gui/Makefile templates/Makefile cron/Makefile scripts/Makefile messages/Makefile cron/crontab.in misc/mailman Makefile tests/Makefile tests/bounces/Makefile tests/msgs/Makefile $SCRIPTS"} EOF cat >> $CONFIG_STATUS <<\EOF for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case "$ac_file" in *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; *) ac_file_in="${ac_file}.in" ;; esac # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. # Remove last slash and all that follows it. Not all systems have dirname. ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then # The file is in a subdirectory. test ! -d "$ac_dir" && mkdir "$ac_dir" ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" # A "../" for each directory in $ac_dir_suffix. ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` else ac_dir_suffix= ac_dots= fi case "$ac_given_srcdir" in .) srcdir=. if test -z "$ac_dots"; then top_srcdir=. else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; *) # Relative path. srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" top_srcdir="$ac_dots$ac_given_srcdir" ;; esac case "$ac_given_INSTALL" in [/$]*) INSTALL="$ac_given_INSTALL" ;; *) INSTALL="$ac_dots$ac_given_INSTALL" ;; esac echo creating "$ac_file" rm -f "$ac_file" configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." case "$ac_file" in *Makefile*) ac_comsub="1i\\ # $configure_input" ;; *) ac_comsub= ;; esac ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` sed -e "$ac_comsub s%@configure_input@%$configure_input%g s%@srcdir@%$srcdir%g s%@top_srcdir@%$top_srcdir%g s%@INSTALL@%$INSTALL%g " $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file fi; done rm -f conftest.s* EOF cat >> $CONFIG_STATUS <<EOF EOF cat >> $CONFIG_STATUS <<\EOF echo "configuration completed at" `date` exit 0 EOF chmod +x $CONFIG_STATUS rm -fr confdefs* $ac_clean_files test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 # Make sure all the build scripts are executable. chmod -R +x build # Test for the Chinese codecs.

On Tue, Dec 31, 2002 at 03:23:28PM -0500, Barry A. Warsaw wrote: Content-Description: message body text
Could folks who are having these "no korean package" problems please try the following configure script?
If I'm right about the problem, this should bomb out with an error pretty early on. If it does, please install the python-devel package and see if that fixes your problems.
It did:
[root@home mailman-2.1rc1]# ./configure loading cache ./config.cache checking for --with-python... no checking for python... (cached) /usr/bin/python checking Python interpreter... /usr/bin/python checking Python version... 2.2.1 checking that Python has distutils... configure: error:
***** Distutils is not available or is incomplete for /usr/bin/python ***** If you installed Python from RPM (or other package manager) ***** be sure to install the -devel package, or install Python ***** from source. See README.LINUX for details
I'll compile Python from source in a bit here and try again.
-- warren woodward XMission DSL Domo/Mailman warrenw@xmission.com (801) 303-0819 (877) XMISSION
"The United States, as the world knows, will never start a war." -JFK, American University, June 10, 1963

"BAW" == Barry A Warsaw <barry@python.org> writes:
BAW> Thanks, I'm going to make this change to the 2.1 tarball.
I've just uploaded a new tarball and am about to make the announcements. I've tested the new configure script as best I can on RH 7.3 and it seems to do the trick (I tried removing and adding the python2-devel package).
Thanks all who helped, and have a great new year. -Barry
participants (4)
-
barry@python.org
-
chaim@chaim.com
-
Warren Woodward
-
Warren Woodward