I_STDARG=1 ./Configure (I see you are using the Korn shell. Some ksh's blow up on Configure, especially on exotic machines. If yours does, try the Bourne shell instead.) Beginning of configuration questions for elm2.5 kit. First let's make sure your kit is complete. Checking... Looks good... Found bin directory Checking your sh to see if it knows about # comments... Your sh handles # comments correctly. Okay, let's see if #! works on this system... It does. Checking out how to guarantee sh startup... Let's see if '#!/bin/sh' works... Yup, it does. Checking echo to see how to suppress newlines... ...using -n. Type carriage return to continue. Your cursor should be here--> This installation shell script will examine your system and ask you questions to determine how the elm2.5 package should be installed. If you get stuck on a question, you may use a ! shell escape to start a subshell or execute a command. Many of the questions will have default answers in square brackets--typing carriage return will give you the default. On some of the questions which ask for file or directory names you are allowed to use the ~name construct to specify the login directory belonging to "name", even if you don't have a shell which knows about that. Questions where this is allowed will be marked "(~name ok)". [Type carriage return to continue] Much effort has been expended to ensure that this shell script will run on any Unix system. If despite that it blows up on you, your best bet is to edit Configure and run it again. Also, let the Elm Development Group (elm@dsi.com) know how they blew it. If you can't run Configure for some reason, you'll have to generate a config.sh file by hand. This installation script affects things in two ways: 1) it may do direct variable substitutions on some of the files included in this kit, and 2) it builds a config.h file for inclusion in C programs. You may edit any of these files as the need arises after running this script. If you make a mistake on a question, there is no easy way to back up to it currently. The easiest thing to do is to edit config.sh and rerun all the SH files. Configure will offer to let you do this before it runs the SH files. [Type carriage return to continue] I see a config.sh file. Did Configure make it on THIS system? [y] Fetching default answers from your old config.sh file... Locating common programs... cat is in /bin/cat. chgrp is in /bin/chgrp. chmod is in /bin/chmod. cp is in /bin/cp. echo is in /bin/echo. expr is in /usr/bin/expr. grep is in /bin/grep. ln is in /bin/ln. ls is in /bin/ls. mv is in /bin/mv. rm is in /bin/rm. sed is in /bin/sed. sleep is in /bin/sleep. touch is in /bin/touch. tr is in /usr/bin/tr. Don't worry if any of the following aren't found... I don't see Mcc out there, offhand. compress is in /bin/compress. cpp is in /usr/bin/cpp. date is in /bin/date. emacs is in /usr/bin/emacs. I don't see execmail out there, either. ispell is in /usr/bin/ispell. line is in /usr/bin/line. I don't see lint out there, either. lp is in /usr/bin/lp. lpr is in /usr/bin/lpr. I don't see mips out there, either. more is in /bin/more. nroff is in /usr/bin/nroff. I don't see pack out there, either. pg is in /usr/bin/pg. pr is in /usr/bin/pr. rmail is in /usr/bin/rmail. sendmail is in /usr/bin/sendmail. shar is in /usr/bin/shar. I don't see smail out there, either. I don't see submit out there, either. tar is in /bin/tar. tbl is in /usr/bin/tbl. test is in /usr/bin/test. troff is in /usr/bin/troff. uname is in /bin/uname. uuname is in /usr/bin/uuname. vi is in /usr/bin/vi. Checking compatibility between /bin/echo and builtin echo (if any)... They are compatible. In fact, they may be identical. There is a neat feature that enables scanning of the message body for entries to add to the users ".calendar" (or whatever) file. These entries are then processed by the system program calendar. To use this feature it needs to be enabled. The name of the per user calendar file used by your system's calendar program is also required. Enable calendar feature [n] Not all environments are restricted to the ASCII 7-bit character set. For example, the ISO 8859/1 (Latin alphabet no. 1) character set, consisting of 8 bits and 191 printable characters, is becoming more and more common, especially in non-English speaking countries. Unfortunately, not all isprint() functions or macros, which ELM uses to determine whether a character is printable or not, will handle non-ASCII (8-bit) characters properly. It is suggested that you start with this value configured to handle 8-bit characters correctly and if there are problems with Elm aborting while displaying messages that use extended character sets to reconfigure Elm to only display 7-bit characters. Should Elm assume that isprint() won't break on non-ASCII characters? [y] Hmm... Looks kind of like a version 7 system, but we'll see... Congratulations. You aren't running Eunice. It's not Xenix... Nor is it Venix... Does your /etc/passwd file keep full names in Berkeley/V7 format (name first thing after ':' in GCOS field)? [y] The Elm documentation (Reference Guide, Configuration Guide, etc.) is set up for troff. If you only have nroff, it can be used, but the documentation will not be as readable. If you use an alternate processor for troff/nroff documents it can be specified here. Elm expects the text processor to write to standard out. You will be given a chance to provide command line options to this command in the next question. Give the name of the program used to format the Elm documentation on your system: [/usr/bin/troff] If this text processor requires any options for proper formatting, specify them here. To specify no options, enter the word "none". Some versions of troff require the -t option to write to standard out. This is the proper place to specify that option. What options should Elm use with /usr/bin/troff: [] elm2.5 has manual pages that can be installed in unformatted or formatted form. Either or both (or neither) of these may be installed. Please give the location in which to store each type of man page. To specify that a particular type is not to be installed, answer "none" to the question. Where do the unformatted manual pages go? [/usr/man/man1] The installed unformatted manual pages can have various extensions to suit the conventions of the host operating system, for example "page.1". Note that the period '.' must be included as part of the extension. To specify no extension, enter the word "none". What extension should be used on installed unformatted man pages: [.1] Where do the formatted manual pages go? [/var/man/cat1] Online manual pages are generally formatted with nroff. If you use an alternate text processor for on-line manual pages it can be specified here. Elm expects the text processor to write to standard out. Note: This does not effect the formatter previously chosen for the Elm Elm documentation (Reference Guide, Configuration Guide, etc.). Give the name of the program used to format on-line manual pages on your system: [/usr/bin/nroff] If this text processor requires any options for proper formatting, specify then here. To specify no options, enter the word "none". What options should Elm use with /usr/bin/nroff: [] The installed formatted manual pages can have various extensions to suit the conventions of the host operating system, for example "page.1". Note that the period '.' must be included as part of the extension. To specify no extension, enter the word "none". What extension should be used on installed formatted man pages: [.1] Should the formatted manual pages be compressed? [n] Some systems have different model sizes. On most systems they are called small, medium, large, and huge. On the PDP11 they are called unsplit and split. If your system doesn't support different memory models, say "none". If you wish to force everything to one memory model, say "none" here and put the appropriate flags later when it asks you for other cc and ld flags. Xenix and Venix systems may wish to put "none" and let the compiler figure things out. (In the following question multiple model names should be space separated.) Which models are supported? [none] Use which C compiler? [cc] Some C compilers have problems with their optimizers, by default, elm2.5 compiles with the -O flag to use the optimizer. Alternately, you might want to use the symbolic debugger, which uses the -g flag (on traditional UNIX systems). Either flag can be specified here. To use neither flag, specify the word "none". What optimizer/debugger flag should be used? [-O] Your C compiler may want other flags. For this question you should include -I/whatever and -DWHATEVER flags and any other flags used by the C compiler, but you should NOT include libraries or ld flags like -lwhatever. If you want elm to honor its debug flag, add -DDEBUG. To use no flags, specify the word "none". Any additional cc flags? [none] Your linker/loader may want other flags. For example, you might want to enable support for the symbolic debugger (-g on traditional UNIX systems). For this question you should specify those flags. Do NOT specify libraries (-lwhatever) here. Most systems will not need any special flags, in which case specify "none". Any additional ld flags (NOT including libraries)? [none] Checking for optional libraries... No -lintl. No -lnls. Some versions of UNIX support shared libraries, which make executables smaller but make load time slightly longer. On some systems, mostly newer UNIX System V's, the shared library is included by putting the option "-lc_s" as the last thing on the cc command line when linking. Other systems use shared libraries by default. There may be other libraries needed to compile elm2.5 on your machine as well. If your system needs the "-lc_s" option, include it here. Include any other special libraries here as well. Say "none" for none. Any additional libraries? [none] You've got Linux, using /usr/lib/libc.a Extracting names from /usr/lib/libc.a for later perusal...done Now, how can we feed standard input to your C preprocessor... Maybe "cc -E" will work... Nope, maybe "/usr/bin/cpp" will work... Yup, it does. Your C preprocessor defines the following symbols: unix __STDC__ Using standard system "ctype" conversions. Looks good. Does your system allow chown(-1, group) and chown(user, -1) to not change the user or group respectively. This is usually documented in the chown manual page (man 2 chown). (Most POSIX and BSD systems can, Xenix cannot) Does this system allow -1 as chown argument? [y] Some modern Mail Transport Agents (mailers) support the Content-Length: header. In doing so, they do not wish to have messages escaped to protect 'From ' lines in the body of the message, among other strings. Does the Mail Transport Agent in use on this system honor the Content-Length: header? Honors Content-Length: header? [n] cuserid() found Elm can either display the hostname on the index page, or just the folder name. If the hostname is displayed, the folder name will read hostname:folder. If not it will just read folder. Should Elm display the hostname as part of the folder name? [n] flock() found. flock locking not available. F_SETLK found, fcntl locking available Mail Transport Agents (sendmail, etc.) and Mail User Agents (Elm) can use a variety of file locking protocols. Based on your system type, usage of a network, and MTA/MUAs in use, you may want to configure more than one of the following Mail Locking Protocols. It is recommended that you use as many as are possible on your system to avoid problems. All systems can support the dot locking method (.lock files). Available locking protocols: dot locking (.lock) fcntl style locking Would you like to use dot lock style mail spool locking? [y] Would you like to use fcntl style mail spool locking? [y] Non-mailbox locks will use the /usr/spool/uucp directory Figuring out host name... Maybe "hostname" will work... Your host name appears to be "greasy". Is this correct? [y] What is your domain name? [.example.net] gethostname() found. Every now and then someone has a gethostname() that lies about the hostname but can't be fixed for political or economic reasons. Would you like to pretend gethostname() isn't there and maybe compile in the hostname? [n] Elm would like to use the systems definitions of the error messages for system errors. These are usually contained in the global variables sys_errlist[] and sys_nerr. If these do not exist, there is a standard list built into Elm. Does the system support the sys_errlist[] global variable? [y] fsync() not found ftruncate() found getopt() found Using string.h instead of strings.h strchr() found. Some systems run MMDF as their Mail Transport Agent. MMDF uses a different way of delimiting messages in the mailbox files. Other systems don't run MMDF but use the MMDF separator in their mailbox files. The MMDF separator is usually a series of four Control A's. elm2.5 needs to know if this system uses the MMDF style message separator in its mailbox files. Does this system use MMDF style message separator? [n] Give the full path name of the program used to deliver mail on your system: [/usr/sbin/sendmail] Some newer mailers can deliver mail to addresses of the INTERNET persuasion, such as user@host.domain. Other older mailers require the complete uucp ! path to the destination to be specified in the address. Does your mailer understand INTERNET addresses? [y] Elm has the ability to place a call to the GNU ispell spelling checker on its post-message-entry/pre-message-send menu. Configure has found ispell as /usr/bin/ispell Should Elm add the ispell option to the pre-send menu? [y] Give the name of the ispell program on your system: [/usr/bin/ispell] What options should Elm use with /usr/bin/ispell: [-x] locale.h found, elm2.5 will call setlocale nl_types.h found, elm2.5 will include the systems version catgets() found Message catalog routines found The system has the message catalog routines in its library. These routines are new, and on some systems do not function properly. Also, elm2.5 expects that these routines are X/Open compliant. Should elm2.5 use its own routines instead of the systems NLS routines? [n] A lot of sites that install the Elm Mail System find that the function E)dit mailbox from within Elm is dangerous and confusing. If you choose, you can instead disable that function, with the program being slightly smaller and presenting an appropriate error message to the user if they try to E)dit their mailbox. Would you like to enable the E)dit Mailbox function? [n] memcpy() found Elm supports the RFC-1521 Multipurpose Internet Mail Extensions (MIME). MIME allows you to use international character sets (not just US-ASCII) in mail messages. MIME also allows multiple objects (binaries, graphics, audio, video, PostScript, spreadsheets -- whatever!) to be attached to mail messages. MIME does not require a graphic display, but some of its neatest capabilities demand one. Elm generates MIME messages on its own. To handle incoming MIME messages, however, you need to install Nathaniel Borenstein's "metamail" package on your system. The most recent version of "metamail" is distributed from thumper.bellcore.com [128.96.41.1]. Additional distribution points are available; consult an "archie" server. You may choose to have Elm pass received MIME messages to "metamail". Otherwise, if you do not have "metamail" (or you elect not to use it), Elm can ignore the MIME attributes and display the message as-is. Should Elm pass incoming MIME messages to "metamail"? [y] When composing outbound mail messages, Elm checks whether there are any 8-bit "international" characters in the message. If not, the message is labelled as "us-ascii". If there are, Elm needs to specify the character set for the message. What international character set do people on your system most commonly use? "iso-8859-1" is a common selection, and is appropriate for many European languages. (The choice you make here becomes the system default. Users that want a different choice may set an "elmrc" value.) Default for sending messages sent with int'l chars? [iso-8859-1] When a message is received, Elm needs to know whether the terminal can display the characters in the message, or if it needs to start up "metamail". What character set does your terminals most commonly handle? "iso-8859-1" is a common selection, and is appropriate for many European languages. (Even VT-100 text terminals can do this.) If your displays have no capability whatsoever, then select "us-ascii". (The choice you make here becomes the system default. Users that want a different choice may set an "elmrc" value.) Default character set which could be displayed? [iso-8859-1] mkdir() found Newmail (Elm's utility to check for incoming mail) can be configured to either run as a foreground process or as a process that automatically forks and runs in the background. Should newmail automatically run in the background? [y] Are you running a machine where you want to have a domain name appended to the hostname on outbound mail? Would you like the domain name appended? [n] Does your mailer add the From: header for you? [y] Some sites do not like to see the mail header "X-mailer:" in outgoing messages. If you choose, you may disable these headers. However, it is strongly urged to leave these headers in the mail to assist in tracking down problems. Would you like to disable the X-mailer: headers? [n] putenv() found The next pair of questions have to do with what to do when another program has locked a mailbox... First, how many times should the Elm check for the removal of the lock file before giving up? Number of lock attempts: [6] Should it REMOVE the lock file after 6 checks? [n] rename() found setegid() found sigset() found sigaction() found. sigprocmask() found. Some sites that install the Elm Mail System may not wish to enable the S)tatus Change function, which permits users to change the status of their messages arbitrarily from within Elm. If you choose, you can instead disable that function, with the program being slightly smaller and presenting an appropriate error message to users if they try to invoke S)tatus Change to alter the status of their messages. Would you like to enable the S)tatus Change function? [n] strspn() found strcspn() found strpbrk() found strerror() found strftime() found strstr() found strtok() found Some sites wish to disable the usage of the shell escape from Elm. If you choose, you can disallow subshells from within Elm. WARNING: This only controls Elm's usage of the ! command. Any pager or editor could still allow subshells. It is also trivial to get a subshell through manipulation of the pipe command or various option settings. DO NOT rely on this as a security measure. Would you like to allow the ! command (subshells)? [y] symlink() found tempnam() found tcsetattr() found You have POSIX termios.h... good! One of the more annoying quirks of the UUCP network and various other systems that interact with it are that everyone seems to have different ideas about how to do routing, etc. Therefore, a lot of times e-mail will arrive from off site with corrupt, unusable "Reply-To:" and "From:" fields. This next question relates to whether your site is liable to get mangled fields or not... Does your site receive e-mail with valid "Reply-To:" and "From:" fields? Use Reply-To: and From: addresses? [y] getdomainname() found The getdomainname system call was found. When running NIS, this usually returns the NIS domain and not the mail domain. If this is the case, it should not be used to obtain the domain name, and the domain name should be compiled into the code, and the global elm.rc file should be used to override the compiled in value. If the getdomainname call does return the correct mail domain, it can be used. Should getdomainname() be used to obtain the mail domain? [n] Testing to see if we should include , or both. I'm now running the test program... Trying -DI_TIME -DI_SYSTIME -DS_TIMEVAL Succeeded with -DI_TIME -DI_SYSTIME -DS_TIMEVAL Found vfork() found Found Found Found Found You have void (*signal())() instead of int. Elm will provide a default subject for mail messages that are sent in batch mode (redirected from a file.) Default batch subject: [no subject (file transmission)] Elm must be configured with a default editor. On most systems this may be 'vi'. If you prefer to use some other, easier editor enter it here. You will be given a change to provide command line options to this command in the next question. What is the default editor on your system? [/usr/bin/vi] If this editor requires any options for proper use, specify them here. To specify no options, enter the word "none". For example, 'pico' users will want to use the -t option. This is the proper place to specify that option. What options should Elm use with /usr/bin/vi: [] Where do you want to put the public executables? [/usr/bin] What path do you want to use to install the public executables? [/usr/bin] Elm needs a place to store its support files. This includes things such as configuration and help information. They are all readable text files, that may be shared across machines. Where do you want to put the support files? [/var/lib/elm] What path do you want to use to install the public files? [/var/lib/elm] Elm has an option to send messages to the printer. This question asks for the default spooler name. You can also specify options to the command by separating them from the command by at least one space. What print spooler do you prefer to use with Elm? [/usr/bin/lp] Where is yet-to-be-read mail spooled? [/var/spool/mail] Mail group is mail Elm needs to be installed and run as a setgid program only if the mail spool directory permissions do not allow world write access. If your mail spool directory has the permissions: drwxrwxr-x 3 root mail 512 Dec 24 17:20 /usr/mail then Elm must be setgid to the same group as the mail spool directory (in this case group mail). However, if the spool permissions look like: drwxrwsrwt 2 root staff 512 Dec 21 20:14 /usr/spool/mail then Elm should not be installed or run as a setgid program. Am I going to be running as a setgid program? [n] What pager do you prefer to use with elm2.5? [builtin+] Give the full path name of the shell most people like to use on your system: [/bin/bash] Checking how to generate random libraries on your machine... ar: Warning: '/dev/null' is not an ordinary file ar appears to generate random libraries itself. remote tape drive is unknown-remote-tape-unit Enter the name of the library that contains your termlib routines. Either "-lfoo" or "/lib/foo.a" format is OK. Enter "none" if no special library needs to be loaded. Where is the library with your termlib routines? [-lncurses] Temporary files will be put in the /tmp directory Figuring out how to get timezone names. Trying -DTZNAME_USE_TM_ZONE Alright! That seems to have worked. End of configuration questions. Creating config.sh... If you didn't make any mistakes, then just type a carriage return here. If you need to edit config.sh, do it as a shell escape here: Doing variable substitutions on .SH files... Extracting Make.defs (with variable substitutions) Extracting Makefile (with variable substitutions) Extracting config.h (with variable substitutions) Extracting doc/Makefile (with variable substitutions) Extracting sysdefs.h (with variable substitutions) Extracting lib/Makefile (with variable substitutions) Extracting src/Makefile (with variable substitutions) Extracting utils/Makefile (with variable substitutions) Extracting utils/checkalias (with variable substitutions) Extracting utils/listalias (with variable substitutions) Extracting utils/messages (with variable substitutions) Extracting utils/printmail (with variable substitutions) Now you must run a make.