home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #30 / NN_1992_30.iso / spool / comp / os / linux / 20118 < prev    next >
Encoding:
Text File  |  1992-12-12  |  14.0 KB  |  348 lines

  1. Newsgroups: comp.os.linux
  2. Path: sparky!uunet!zaphod.mps.ohio-state.edu!sdd.hp.com!spool.mu.edu!umn.edu!csus.edu!csusac!citrus!ianj
  3. From: ianj@citrus.SAC.CA.US ( Ian Justman )
  4. Subject: UUCP FIX!  PLEASE SAVE!!!!!
  5. Organization: Citrus Grove Public Access ( 916 ) 381-5822    Sacramento CA.  USA
  6. Date: Sat, 12 Dec 1992 02:19:07 GMT
  7. X-Newsreader: Tin 1.1 PL4
  8. Message-ID: <Bz4Jrx.Gy9@citrus.SAC.CA.US>
  9. Lines: 337
  10.  
  11. I finally got UUCP working!!!!!!!  YES, VIRGINIA, THERE IS A GOD!!!!!
  12. There are several things you want to look at before continuing; one
  13. is that you may want to put the -fwritable-strings in your Makefile
  14. under the CFLAGS definition.  Second of all, and this is VERY impor-
  15. tant, in the conf.h file, HAVE_SIGACTION, HAVE_SIGVEC, and HAVE_SIGSET
  16. _MUST_ BE DEFINED AS 0!!!!  For some strange reason, pl5's and pl6's
  17. reaction to sigaction() causes a segmentation fault and it MIGHT dump
  18. core on you.  Here is the conf.h I used to compile my copy of UUCP
  19. (mailpak-1.3 version):
  20.  
  21. ---begin---begin---begin---
  22.  
  23. /* conf.h */
  24. /* Configuration header file for Taylor UUCP.
  25.    Generated on Tue Apr  7 01:07:06 EDT 1992.  */
  26.  
  27. /* Set MAIL_PROGRAM to a program which takes a mail address as an argument
  28.    and accepts a mail message to send to that address on stdin.  */
  29. #define MAIL_PROGRAM "/usr/ucb/mail"
  30.  
  31. /* Set ECHO_PROGRAM to a program which echoes its arguments; if echo
  32.    is a shell builtin you can just use "echo".  */
  33. #define ECHO_PROGRAM "/bin/echo"
  34.  
  35. /* The following macros indicate what header files you have.  Set the
  36.    macro to 1 if you have the corresponding header file, or 0 if you
  37.    do not.  */
  38. #define HAVE_STRING_H 1       /* <string.h> */
  39. #define HAVE_STRINGS_H 1       /* <strings.h> */
  40. #define HAVE_UNISTD_H 1       /* <unistd.h> */
  41. #define HAVE_STDLIB_H 1       /* <stdlib.h> */
  42. #define HAVE_LIMITS_H 1       /* <limits.h> */
  43. #define HAVE_TIME_H 1       /* <time.h> */
  44. #define HAVE_SYS_WAIT_H 1       /* <sys/wait.h> */
  45. #define HAVE_SYS_IOCTL_H 1       /* <sys/ioctl.h> */
  46. #define HAVE_DIRENT_H 1       /* <dirent.h> */
  47. #define HAVE_MEMORY_H 1       /* <memory.h> */
  48. #define HAVE_SYS_PARAM_H 1       /* <sys/param.h> */
  49. #define HAVE_UTIME_H 1       /* <utime.h> */
  50. #define HAVE_FCNTL_H 1       /* <fcntl.h> */
  51. #define HAVE_SYS_FILE_H 1       /* <sys/file.h> */
  52. #define HAVE_LIBC_H 0       /* <libc.h> */
  53. #define HAVE_SYSEXITS_H 0       /* <sysexits.h> */
  54. #define HAVE_POLL_H 0       /* <poll.h> */
  55. #define HAVE_STROPTS_H 0       /* <stropts.h> */
  56.  
  57. /* Set SIGtype to the return type of a signal handler.  On newer systems
  58.    this will be void; some older systems use int.  */
  59. #define SIGtype void
  60.  
  61. /* Set HAVE_TIME_T to 1 if time_t is defined in <time.h>, as required by
  62.    the ANSI C standard.  */
  63. #define HAVE_TIME_T 1
  64.  
  65. /* Set HAVE_SYS_TIME_T to 1 if time_t is defined in <sys/types.h>;  this
  66.    is only checked if HAVE_TIME_T is 0.  */
  67. #define HAVE_SYS_TIME_T 1
  68.  
  69. /* Set HAVE_SYS_TIME_AND_TIME_H to 1 if <time.h> and <sys/time.h> can both
  70.    be included in a single source file; if you don't have either or both of
  71.    them, it doesn't matter what you set this to.  */
  72. #define HAVE_SYS_TIME_AND_TIME_H 1
  73.  
  74. /* Set HAVE_TERMIOS_AND_SYS_IOCTL_H to 1 if <termios.h> and <sys/ioctl.h>
  75.    can both be included in a single source file; if you don't have either
  76.    or both of them, it doesn't matter what you set this to.  */
  77. #define HAVE_TERMIOS_AND_SYS_IOCTL_H 1
  78.  
  79. /* If you are configuring by hand, you should set one of the terminal
  80.    driver options in policy.h.  If you are autoconfiguring, the script
  81.    will check whether your system defines CBREAK, which is a terminal
  82.    setting; if your system supports CBREAK, and you don't set a terminal
  83.    driver in policy.h, the code will assume that you have a BSD style
  84.    terminal driver.  */
  85. #define HAVE_CBREAK 1
  86.  
  87. /* The package needs several standard types.  If you are using the
  88.    configure script, it will look in standard places for these types,
  89.    and give default definitions for them here if it doesn't find them.
  90.    The default definitions should work on most systems, but you may
  91.    want to check them.  If you are configuring by hand, you will have
  92.    to figure out whether the types are defined on your system, and
  93.    what they should be defined to.
  94.  
  95.    Each of the types should be defined using #define.  For example,
  96.    #define pid_t int
  97.    */
  98.  
  99. /* The type pid_t is used to hold a process ID number.  It is normally
  100.    defined in <sys/types.h>.  This is the type returned by the
  101.    functions fork or getpid.  Usually int will work fine.  */
  102. /* A definition of pid_t was found on your system.  */
  103.  
  104. /* The type uid_t is used to hold a user ID number.  It is normally
  105.    defined in <sys/types.h>.  This is the type returned by the getuid
  106.    function.  Usually int will work fine.  */
  107. /* A definition of uid_t was found on your system.  */
  108.  
  109. /* The type gid_t is used to hold a group ID number.  It is sometimes
  110.    defined in <sys/types.h>.  This is the type returned by the getgid
  111.    function.  Usually int will work fine.  */
  112. /* A definition of gid_t was found on your system.  */
  113.  
  114. /* The type off_t is used to hold an offset in a file.  It is sometimes
  115.    defined in <sys/types.h>.  This is the type of the second argument to
  116.    the lseek function.  Usually long will work fine.  */
  117. /* A definition of off_t was found on your system.  */
  118.  
  119. /* Set HAVE_SIG_ATOMIC_T_IN_SIGNAL_H if the type sig_atomic_t is defined
  120.    in <signal.h> as required by ANSI C.  */
  121. #define HAVE_SIG_ATOMIC_T_IN_SIGNAL_H 1
  122.  
  123. /* Set HAVE_SIG_ATOMIC_T_IN_TYPES_H if the type sig_atomic_t is defined
  124.    in <sys/types.h>.  This is ignored if HAVE_SIG_ATOMIC_T_IN_SIGNAL_H is
  125.    set to 1.  */
  126. #define HAVE_SIG_ATOMIC_T_IN_TYPES_H 0
  127.  
  128. /* The type sig_atomic_t is used to hold a value which may be
  129.    referenced in a single atomic operation.  If it is not defined in
  130.    either <signal.h> or <sys/types.h>, you may want to give it a
  131.    definition here (if you don't, the code will use char).  If your
  132.    compiler does not support sig_atomic_t, there is no type which is
  133.    really correct; fortunately, for this package it does not really
  134.    matter very much.  */
  135.  
  136. /* When Taylor UUCP is talking to another instance of itself, it will
  137.    tell the other side the size of a file before it is transferred.
  138.    If the package can determine how much disk space is available, it
  139.    will use this information to avoid filling up the disk.  Define one
  140.    of the following macros to tell the code how to determine the
  141.    amount of available disk space.  It is possible that none of these
  142.    are appropriate; it will do no harm to use none of them, but, of
  143.    course, nothing will then prevent the package from filling up the
  144.    disk.  Note that this space check is only useful when talking to
  145.    another instance of Taylor UUCP.
  146.  
  147.    FS_STATVFS    the statvfs function
  148.    FS_USG_STATFS the four argument statfs function
  149.    FS_MNTENT     the two argument statfs function with the f_bsize field
  150.    FS_STATFS     the two argument statfs function with the f_fsize field
  151.    FS_GETMNT     the two argument statfs function with the fd_req field
  152.    FS_USTAT      the ustat function with 512 byte blocks.  */
  153. #define FS_USTAT
  154.  
  155. /* Set HAVE_VOID to 1 if the compiler supports declaring functions with
  156.    a return type of void and casting values to void.  */
  157. #define HAVE_VOID 1
  158.  
  159. /* Set HAVE_UNSIGNED_CHAR to 1 if the compiler supports the type unsigned
  160.    char.  */
  161. #define HAVE_UNSIGNED_CHAR 1
  162.  
  163. /* Set HAVE_ERRNO_DECLARATION to 1 if errno is declared in <errno.h>.  */
  164. #define HAVE_ERRNO_DECLARATION 1
  165.  
  166. /* Set COMBINED_UNBLOCK to 1 if the flags O_NONBLOCK and O_NDELAY can
  167.    both be specified at once on a file descriptor.  If your system
  168.    does not support both flags, it doesn't matter what you set this
  169.    to.  */
  170. #define COMBINED_UNBLOCK 1
  171.  
  172. /* There are now a number of functions to check for.  For each of these,
  173.    the macro HAVE_FUNC should be set to 1 if your system has FUNC.  For
  174.    example, HAVE_STRERROR should be set to 1 if your system has strerror,
  175.    0 otherwise.  */
  176.  
  177. /* Taylor UUCP provides its own versions of the following functions,
  178.    or knows how to work around their absence.  */
  179. #define HAVE_MEMSET 1
  180. #define HAVE_MEMCMP 1
  181. #define HAVE_MEMCHR 1
  182. #define HAVE_MEMCPY 1
  183. #define HAVE_BCOPY 1
  184. #define HAVE_BCMP 1
  185. #define HAVE_BZERO 1
  186. #define HAVE_MEMMOVE 1
  187. #define HAVE_STRCHR 1
  188. #define HAVE_STRRCHR 1
  189. #define HAVE_INDEX 1
  190. #define HAVE_RINDEX 1
  191. #define HAVE_STRERROR 1
  192. #define HAVE_STRTOL 1
  193. #define HAVE_STRSTR 1
  194. #define HAVE_STRDUP 0
  195. #define HAVE_STRCASECMP 1
  196. #define HAVE_STRICMP 0
  197. #define HAVE_STRLWR 0
  198. #define HAVE_BSEARCH 1
  199. #define HAVE_VFPRINTF 1
  200. #define HAVE_REMOVE 1
  201. #define HAVE_FTRUNCATE 1
  202. #define HAVE_LTRUNC 0
  203. #define HAVE_RENAME 1
  204. #define HAVE_OPENDIR 1
  205. #define HAVE_DUP2 1
  206. #define HAVE_WAITPID 1
  207. #define HAVE_WAIT4 0
  208.  
  209. /* If you have either sigsetjmp or setret, it will be used instead of
  210.    setjmp.  These functions will only be used if your system restarts
  211.    system calls after interrupts (see HAVE_RESTARTABLE_SYSCALLS,
  212.    below).  */
  213. #define HAVE_SIGSETJMP 1
  214. #define HAVE_SETRET 0
  215.  
  216. /* The code needs to know what function to use to set a signal
  217.    handler.  If will try to use each of the following functions in
  218.    turn.  If none are available, it will use signal, which is assumed
  219.    to always exist.  */
  220.  
  221. /* IMPORTANT NOTE FOR COMPILING UNDER LINUX 0.98PL5 OR 0.98PL6:
  222.    You MUST have all three of the following definitions set to
  223.    zero to use signal() which works properly under aforementioned
  224.    patchlevels of the kernel.  Those kernels' reactions to sigaction()
  225.    seems to be a bit on the allergic side.  You can use sigaction()
  226.    for patchlevels 4 and earlier.
  227.    -Ian Justman (ianj@citrus.SAC.CA.US, 12 December 1992  */
  228. #define HAVE_SIGACTION 0
  229. #define HAVE_SIGVEC 0
  230. #define HAVE_SIGSET 0
  231.  
  232. /* The code will try to use each of the following functions in turn
  233.    when blocking signals from delivery.  If none are available, a
  234.    relatively unimportant race condition will exist.  */
  235. #define HAVE_SIGPROCMASK 1
  236. #define HAVE_SIGBLOCK 1
  237. #define HAVE_SIGHOLD 0
  238.  
  239. /* If you have either of the following functions, it will be used to
  240.    determine the number of file descriptors which may be open.
  241.    Otherwise, the code will use OPEN_MAX if defined, then NOFILE if
  242.    defined, then 20.  */
  243. #define HAVE_GETDTABLESIZE 0
  244. #define HAVE_SYSCONF 0
  245.  
  246. /* The code will use one of the following functions when detaching
  247.    from a terminal.  One of these must exist.  */
  248. #define HAVE_SETPGRP 1
  249. #define HAVE_SETSID 1
  250.  
  251. /* If you do not specify the local node name in the main configuration
  252.    file, Taylor UUCP will try to use each of the following functions
  253.    in turn.  If neither is available, you must specify the local node
  254.    name in the configuration file.  */
  255. #define HAVE_GETHOSTNAME 1
  256. #define HAVE_UNAME 1
  257.  
  258. /* The code will try to use each of the following functions in turn to
  259.    determine the current time.  If none are available, it will use
  260.    time, which is assume to always exist.  */
  261. #define HAVE_GETTIMEOFDAY 1
  262. #define HAVE_FTIME 1
  263.  
  264. /* If neither gettimeofday nor ftime is available, the code will use
  265.    times (if available) to measure a span of time.  See also the
  266.    discussion of TIMES_TICK in policy.h.  */
  267. #define HAVE_TIMES 1
  268.  
  269. /* When a chat script requests a pause of less than a second with \p,
  270.    Taylor UUCP will try to use each of the following functions in
  271.    turn.  If none are available, it will sleep for a full second.
  272.    Also, the (non-portable) tstuu program requires either select or
  273.    poll.  */
  274. #define HAVE_NAPMS 0
  275. #define HAVE_NAP 0
  276. #define HAVE_USLEEP 0
  277. #define HAVE_POLL 0
  278. #define HAVE_SELECT 1
  279.  
  280. /* If the getgrent function is available, it will be used to determine
  281.    all the groups a user belongs to when checking file access
  282.    permissions.  */
  283. #define HAVE_GETGRENT 1
  284.  
  285. /* If the socket function is available, TCP support code will be
  286.    compiled in.  */
  287. #define HAVE_SOCKET 1
  288.  
  289. /* The code needs to know to how to get the name of the current
  290.    directory.  If getcwd is available it will be used, otherwise if
  291.    getwd is available it will be used.  Otherwise, set PWD_PROGRAM to
  292.    the name of the program which will print the name of the current
  293.    working directory.  */
  294. #define HAVE_GETCWD 1
  295. #define HAVE_GETWD 1
  296. #define PWD_PROGRAM unused
  297.  
  298. /* The code needs to know how to create directories.  If you have the
  299.    mkdir function, set HAVE_MKDIR to 1 and replace @UUDIR@ in
  300.    Makefile.in with '# ' (the configure script will set @UUDIR@
  301.    according to the variable UUDIR).  Otherwise, set HAVE_MKDIR to 0,
  302.    remove @UUDIR@ from Makefile.in, and set MKDIR_PROGRAM to the name
  303.    of the program which will create a directory named on the command
  304.    line.  */
  305. #define HAVE_MKDIR 1
  306. #define MKDIR_PROGRAM unused
  307.  
  308. /* That's the end of the list of the functions.  Now there are a few
  309.    last miscellaneous items.  */
  310.  
  311. /* On some systems times is declared in <sys/times.h> as returning
  312.    int, so the code cannot safely declare it as returning long.  On
  313.    the other hand, on some systems times will not work unless it is
  314.    declared as returning long.  Set TIMES_DECLARATION_OK to 1 if times
  315.    can be safely declared as returning long.  If you will not be using
  316.    times, it doesn't matter what you set this to.  */
  317. #define TIMES_DECLARATION_OK 0
  318.  
  319. /* Set HAVE_BSD_PGRP to 1 if your getpgrp call takes 1 argument and
  320.    your setpgrp calls takes 2 argument (on System V they generally
  321.    take no arguments).  You can safely set this to 1 on System V,
  322.    provided the call will compile without any errors.  */
  323. #define HAVE_BSD_PGRP 0
  324.  
  325. /* Set HAVE_UNION_WAIT to 1 if union wait is defined in the header
  326.    file <sys/wait.h>.  */
  327. #define HAVE_UNION_WAIT 0
  328.  
  329. /* Define UTIME_NULL_MISSING if utime with a NULL second argument does not
  330.    set the file times to the current time.  */
  331.  
  332. /* Set HAVE_LONG_NAMES to 1 if the system supports file names longer
  333.    than 14 characters.  */
  334. #define HAVE_LONG_NAMES 1
  335.  
  336. /* If slow system calls are restarted after interrupts, set
  337.    HAVE_RESTARTABLE_SYSCALLS to 1.  This is ignored if HAVE_SIGACTION
  338.    is 1 or if HAVE_SIGVEC is 1 and SV_INTERRUPT is defined in
  339.    <signal.h>.  In both of these cases system calls can be prevented
  340.    from restarting.  */
  341. #define HAVE_RESTARTABLE_SYSCALLS 1
  342.  
  343. ---end---end---end---end---
  344.  
  345. Good luck!  Feedback would be greatly appreciated!
  346. -- 
  347. Born to void warranties!    ianj@ijpc.UUCP
  348.