Script started on Fri Sep 2 23:39:12 1994 fuzzy:~/cnews/conf# build This interactive command will build shell files named doit.root, doit.bin, doit.news, and again.root to do all the work. It will not actually do anything itself, so feel free to abort and start again. You probably need your system manuals handy. When a question is asked in the form `How are you [okay]? ', the answer in brackets is what you will get if you just hit RETURN. (If you want give an empty string as the answer, type a single `-' instead.) Do you want to use your previous answers as defaults [no]? yes Picking up defaults, from last run... done C News wants to keep most of its files under a uid which preferably should be all its own. Its programs, however, can and probably should be owned by another user, typically the same one who owns most of the rest of the system. (Note that on a system running NFS, any program not owned by "root" is a gaping security hole.) What user id should be used for news files [news]? What group id should be used for news files [news]? What user id should be used for news programs [root]? What group id should be used for news programs [bin]? Do the C News sources belong to root [yes]? It would appear that your system is among the victims of the 4.4BSD / SVR4 directory reorganization, with (e.g.) shared data in /usr/share. Is this correct [no]? C News lives primarily under three directories: one for articles (and incoming and outgoing spooling), one for control files, and one for programs. Where should articles live [/var/spool/news]? Where should control files live [/var/lib/news]? Where should programs live [/usr/lib/newsbin]? Is /bin:/usr/bin:/sbin:/usr/sbin the correct path to follow to find standard programs on your system [yes]? C News normally uses a umask of 002, turning off only the others-write bit in the permissions of files used. (The correspondence between bits and number is: rwx = 421, so turning off group-write bits and all others-access bits would be a mask of 027, for example.) Usually a umask of 002 or 022 is appropriate. What umask should C News use [002]? C News wants to mail some forms of trouble reports to an administrator. You probably want to make this a system mailbox, rather than that of a specific user, so you won't have to change the software when you get a new administrator. Where should C News mail trouble reports [news]? The shell files that are everywhere in C News want to pick up their configuration parameters (mostly, the last few questions you have answered) from a file at a known location; this is very hard to avoid unless you play tricks with environment variables (see documentation). Where should the shell configuration file be located [/var/lib/news/bin/config]? What is the full pathname of the chown command [/bin/chown]? Can I say `/bin/chown news.news file' to change both the user id and group id of a file [yes]? building doit.root... done C News has libraries for several kinds of Unix: bsd42 4.2BSD and successors usg AT&T System V v7 Version 7 (4.1BSD is pretty close, ditto Xenix) v8 Version 8, aka Eighth Edition Which best describes your system [usg]? C News has libraries for small address spaces (16 bits) and big ones (preferably 32 bits, but anything rather bigger than 16). Which best describes your system [big]? Systems vary in whether certain library functions and system calls are present. C News contains reasonably-portable versions of the possibly-missing library functions, and fake versions of the possibly-missing system calls, but it needs to know which are missing. Does your system have fsync() [yes]? Does your system have getopt() [yes]? Does your system have memcpy() [yes]? Does your system have memcmp() [yes]? Does your system have memchr() [yes]? Does your system have memset() [yes]? Does your system have mkdir() [yes]? Does your system have putenv() [yes]? Does your system have strchr() [yes]? Does your system have strrchr() [yes]? Does your system have strpbrk() [yes]? Does your system have strspn() [yes]? Does your system have strcspn() [yes]? Does your system have strtok() [yes]? Does your system have symlink() [yes]? Does your system have strerror() [yes]? The news system uses a database package, typically the old "dbm" library from Version 7 or a lookalike, as an indexing system. We supply a version of the "dbz" library, which is faster than "dbm", uses much less disk space, and is program-compatible (although it is *not* file-compatible, so anything else using the database [notably NNTP, if applicable] has to be relinked with it). Dbz is usually preferable to dbm, barring major backward-compatibility problems. Do you want to use our "dbz" library [no]? Presumably you want to use the dbm library or some local equivalent, then. What is the compile option, or filename, needed to get it [-ldbm]? Does your dbm/dbz have a dbmclose() function [no]? Does the store() function in your dbm/dbz return a value (some old dbms did not) [yes]? Many systems, notably older ones, have implementations of the Standard I/O library ("stdio") in which fgets, fputs, fread, and fwrite are quite slow. We supply versions of these functions which are faster than those in any stdio we know; they are compatible with most old AT&T-derived stdios. (They tend not to work on modern System V, but the modern System V stdio is respectably fast.) They can be a major performance win for C News. There is a fairly thorough compatibility check run after the library is built; as far as we know, if the test works, the functions do (even on SunOS 4.0). Do you want to use our fast stdio library [no]? The strchr() function is usually slower than in-line C code when small strings are involved, unless your compiler is very clever and can generate in-line code for strchr(). Is your compiler that good (okay to guess) [yes]? Modern Unixes can generally use the setuid() system call to set the real and effective user ids to the current effective user id. In old Unixes, only "root" can change the real user id. This causes various problems for C News. C News provides a small program named "setnewsids" to run setuserid-root; all it does is change user and group ids and then execute C News "relaynews". It is needed only on uncooperative systems. Relaynews invokes it automatically if needed (and it then invokes relaynews in return). Can this system do setuid(geteuid()) to change the real uid/gid [yes]? Some systems have header files that others lack, and C News is prepared to fake missing ones. Does your system have an ANSI-C-conforming [yes]? Does your system have an ANSI-C-conforming [yes]? Does your system have an ANSI-C-conforming [yes]? Does your system have [yes]? Very old Unix systems needed the order of object modules in a library chosen very carefully. V7 introduced "ranlib" which removes the need for this. Recent System Vs have had the same facility built into "ar" (look for the "symdef" feature in the "ar" manual page) so "ranlib" is not needed. Does your system use ranlib [yes]? Historically the C compiler is named "cc", but this is not true on some systems, and on others there are several different C compilers. What is the name of the C compiler to be used [gcc]? Historically the only normal compilation option needed for most programs is -O, but again compilers, especially newer ones, differ. What options should be given to the compiler [-O2]? The final linking ("ld") step of compiling might need an option, such as -n or -i, to produce the preferred form of executable file. On most modern systems the default is right. What options, if any, should be given for linking [-s]? On unusual systems it may be necessary to link C News programs with libraries other than the usual C library. These can be specified as either full pathnames or -l... options. What libraries, in addition to the one(s) picked up automatically by the compiler, should be used when linking C News []? Does your system have a "hostname" command [yes]? C News tries to limit the backlog of news batches spooled up for transmission to a site, to control use of disk space. To do this, it needs to be able to determine the length of the queue of news batches for a particular site. This is UUCP-version-dependent. There is a good chance that you will have to customize the "queuelen" program. C News knows about several versions: hdb Honey DanBer, aka Basic Networking Utilities sub old uucp with subdirectories (e.g. /usr/spool/uucp/C.) old very old uucp, no subdirectories pre prehistoric uucp, no subdirectories, no -g option on uux null don't run uucp or don't care about queue lengths Which one is most appropriate [hdb]? C News often wants to ask how much disk space is available. The format of output from the "df" command unfortunately varies a lot, as does the availability of a system call to get the same information. C News knows about several different versions (the first three are preferred): statfs system with standard statfs() (SunOS, 4.4BSD, not System V) ustat system with ustat() (most System Vs) ultrix DEC Ultrix with DEC's own bizarre statfs() bsd 4.2/4.3BSD sysv old System Vs xenix some (all?) Xenixes; some System Vs, e.g. Microport, HP? sgi Silicon Graphics Iris systems v7 plain old style: no headers or fluff, just name and number null don't know or don't care how much space is available Which one is most appropriate [statfs]? Some "df" commands, especially on old systems, must be given the name of a device. Modern ones can be given any directory name and the system handles the details of figuring out what device is meant. A few will take a directory only if it is the "top" of a filesystem. Will "df" accept any directory name as an argument [yes]? Are you planning to use expire to archive news on disk [no]? Are you particularly short of disk space [no]? You may want to inspect "spacefor" to make sure its defaults for things like desired free space are appropriate for your system, although the defaults are fairly conservative. It is very difficult to do anything useful with incoming news when there is no space for it. Normally, C News simply discards it and mails a trouble report. On a single-user system, it may be better to just have the news reception stall until more space becomes available. Warning: this may stall processing of other incoming traffic, e.g. mail, as well, and the queue of unprocessed traffic may well grow until your disk fills up. Should news reception stall if space gets short [no]? News processing is much more efficient when done in bulk, so C News normally just saves incoming news and processes it once an hour. If you have ample resources and are wildly impatient to make news available the instant it arrives, that is expensive but possible. Do you want immediate processing [no]? Are you running C News on a group of machines hooked together with NFS, run essentially as a single system with a single administration, with articles filed on one "server" machine [no]? Several programs need to know an overall name for the system news is being run on, where "system" may include multiple machines if they share a common set of control files and articles; this is used in article headers and related places. For uucp sites, this usually should be the uucp name. It is VITAL that you and your neighboring sites agree on this name -- if their news systems know you by a different name, or even a slightly-different variation of the same overall name, there will be trouble. What is the name of the overall system for news purposes [nowhere]? The "From:" lines of news postings, on the other hand, should carry a mailing address, which in particular should be a domain address for sites that have one. What is the mailing-address name of this system, preferably a domain address [nowhere.uucp]? What is the name of the organization, for insertion into articles posted from here [Godcorp]? Manual pages are normally stored in a tree structure under /usr/man. Local practices vary a great deal, however, and System V has also introduced some bizarre distortions into this once-simple structure. What is the top-level manual-page directory [/usr/man]? C News adds manual pages to chapters 1 (programs), 5 (files), and 8 (administrative programs). These chapter numbers have changed in some variants of Unix. Also, originally pages from chapter 5 (for example) were stored in /usr/man/man5. This has also changed in some variants. Has your system made such changes [no]? The "rnews" and "cunbatch" commands (which are identical, the latter being purely for backward compatibility with seriously-old systems) have to be installed somewhere where uucp can find them to execute them. It is not normally necessary for users to be able to run them, so they need not go in the directories searched for normal commands... although uucp often searches only those directories. What directory should "rnews" and "cunbatch" go in [/usr/bin]? Our "postnews", "readnews", and "checknews" are included mostly for completeness. They are very simple and crude compared to the user interface many users are accustomed to. As far as we know, B News (or other) versions should run fine with C News. If you are already running such user-interface software, you may not want to change. Do you want to install our user-interface programs [no]? The "inews" command(s) should go in one of the directories searched for normal commands, so users can run them without special arrangements. What directory should these commands go in [/usr/bin]? For replies to control messages, C News invokes "mail" (typically /bin/mail unless you make special arrangements) with either an Internet-style "@" address or a uucp-style "!" address. Internet style is probably better... if your mailer supports it at all. Will "mail" handle "@" addresses [yes]? The ihave/sendme protocol, although marginally useful in some cases, is a security hole -- it lets another site ask for any article by Message-ID, and if your Message-IDs are predictable enough (which C News's generally are not, mind you), that site can get any article currently on your system. Do you have any newsgroups containing confidential or proprietary material [no]? building doit.bin... done building doit.news... done building again.root... done saving defaults... done You should now run doit.root as root, doit.bin as root, doit.news as news, and again.root as root, in that order. (This assumes that the source directories are owned by root. If you need to do installation work by hand, run 'doit.bin -i' as the owner; this will create the programs but won't install them.) (It is not necessary to log in as these users; use of 'su' suffices.) Finally, you will want to add the contents of 'cron', or something similar, to your cron's work-to-be-done file(s), and the contents of 'rc', or something similar, to /etc/rc or whatever your system executes when booting. "make gclean" will clean up everything afterwards. "make lclean" does a less drastic cleanup affecting only the library directories. "make spotless" does "make gclean" and also removes the doit files. Good luck and happy news reading. fuzzy:~/cnews/conf# exit exit Script done on Fri Sep 2 23:42:01 1994