*BSD News Article 15809


Return to BSD News archive

Newsgroups: comp.os.386bsd.apps
Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!network.ucsd.edu!news.cerf.net!crash!tcd
From: tcd@crash.cts.com (Terry C. Dawson)
Subject: flexfax-2.1.0 patches for 386bsd
Organization: CTS Network Services (crash, ctsnet), El Cajon, CA
Date: 08 May 93 21:22:06 PDT
Message-ID: <1993May08.212206.22159@crash>
Summary: flexfax patches
Keyword: flexfax 386bsd g++-include
Lines: 254


   A few days ago Amancio Hasty Jr. (hasty@netcom.com) asked if anyone had
gotten flexfax (v2.1.0) working.  Well, After building gcc-2.3.3, libg++-2.3
and ghostscript-2.5.2 (with flexfax additions) I started on flexfax last
Saturday.  By Sunday evening it was mostly working, I could send and
receive.  I still have some occasional error messsages that seem to be
path related but they haven't caused a problem.  The only major problems
pertained to the g++ include files and the install shell script, faxaddmodem.
As can be seen from the following patches a few things caused a lot of error
messages.  Most of the patches in the flexfax tree are a result of my
configuration and a some quirks of my ZyXEL modem.
   I am running 386bsd 0.1 PL 0.2.1 plus patchkit84-110 plus a few odds and
ends such as Chris Demetriou's com.c (thanks Chris) with some patches to
/sys/kern/tty.c to make RTSCTS flow control work.
   I followed the flexfax configuration instructions and used GNU make 3.63.
Then I just worked the problems as they came up.

The diffs to the flexfax tree are gzip'ped (for size) and uuencoded.

Onward to NetBSD!

  Hope this helps someone.  Your mileage may vary.
=================================

diff to g++-include/signal.h

--------------- CUT HERE --------------------
*** signal.h.org	Sat May  8 19:15:53 1993
--- signal.h	Sat May  8 19:18:49 1993
***************
*** 45,51 ****
  extern SSignalHandler ssignal _G_ARGS((int sig, SSignalHandler action));
  extern int           gsignal  _G_ARGS((int sig));
  extern int           kill  _G_ARGS((_G_pid_t pid, int sig));
! extern int           killpg _G_ARGS((int, int));
  extern int           siginterrupt _G_ARGS((int, int));
  extern void	     psignal _G_ARGS((unsigned, const char*));
  
--- 45,51 ----
  extern SSignalHandler ssignal _G_ARGS((int sig, SSignalHandler action));
  extern int           gsignal  _G_ARGS((int sig));
  extern int           kill  _G_ARGS((_G_pid_t pid, int sig));
! extern int           killpg _G_ARGS((pid_t, int));
  extern int           siginterrupt _G_ARGS((int, int));
  extern void	     psignal _G_ARGS((unsigned, const char*));
--------------- AND HERE --------------------

diff to g++-include/unistd.h

--------------- CUT HERE --------------------
*** unistd.h.org	Sat May  8 19:18:31 1993
--- unistd.h	Sat May  8 19:19:37 1993
***************
*** 65,71 ****
  #endif
  
  extern unsigned alarm _G_ARGS((unsigned));
! extern int      brk _G_ARGS((void*));
  extern int      chdir _G_ARGS((const char*));
  extern int      chmod  _G_ARGS((const char*, _G_mode_t));
  extern int      chown (const char*, _G_uid_t, _G_gid_t);
--- 65,71 ----
  #endif
  
  extern unsigned alarm _G_ARGS((unsigned));
! extern char*      brk _G_ARGS((const char*));
  extern int      chdir _G_ARGS((const char*));
  extern int      chmod  _G_ARGS((const char*, _G_mode_t));
  extern int      chown (const char*, _G_uid_t, _G_gid_t);
***************
*** 73,87 ****
  extern char*    crypt _G_ARGS((const char*, const char*));
  extern int      dup _G_ARGS((int));
  extern int      dup2 _G_ARGS((int, int));
! extern void	encrypt _G_ARGS((char*, int));
  extern int      execl (const char*, const char *, ...);
  extern int      execle (const char*, const char *, ...);
  extern int      execlp (const char*, const char*, ...);
! extern int      exect _G_ARGS((const char*,  const char**,  char**));
! extern int      execv _G_ARGS((const char*,  const char * const *));
! extern int      execve _G_ARGS((const char*, const char * const *, const char * const *));
! extern int      execvp _G_ARGS((const char*,  const char * const *));
! extern int      fchown (int, _G_uid_t, _G_gid_t);
  extern _G_pid_t fork _G_ARGS((void));
  extern int      fsync _G_ARGS((int));
  extern int      ftruncate _G_ARGS((int, _G_off_t));
--- 73,87 ----
  extern char*    crypt _G_ARGS((const char*, const char*));
  extern int      dup _G_ARGS((int));
  extern int      dup2 _G_ARGS((int, int));
! extern int		encrypt _G_ARGS((char*, int));
  extern int      execl (const char*, const char *, ...);
  extern int      execle (const char*, const char *, ...);
  extern int      execlp (const char*, const char*, ...);
! extern int      exect _G_ARGS((const char*,  char * const *,  char * const *));
! extern int      execv _G_ARGS((const char*,  char * const *));
! extern int      execve _G_ARGS((const char*, char * const *, char * const *));
! extern int      execvp _G_ARGS((const char*,  char * const *));
! extern int      fchown (int, int, int);
  extern _G_pid_t fork _G_ARGS((void));
  extern int      fsync _G_ARGS((int));
  extern int      ftruncate _G_ARGS((int, _G_off_t));
***************
*** 88,94 ****
  extern char*    getcwd _G_ARGS((char*, _G_size_t));
  extern int      getdomainname _G_ARGS((char*, int));
  extern int      getdtablesize _G_ARGS((void));
! extern int      getgroups _G_ARGS((int, _G_gid_t*));
  extern _G_uid_t geteuid _G_ARGS((void));
  extern _G_gid_t getegid _G_ARGS((void));
  extern _G_gid_t getgid _G_ARGS((void));
--- 88,94 ----
  extern char*    getcwd _G_ARGS((char*, _G_size_t));
  extern int      getdomainname _G_ARGS((char*, int));
  extern int      getdtablesize _G_ARGS((void));
! extern int      getgroups _G_ARGS((int, int*));
  extern _G_uid_t geteuid _G_ARGS((void));
  extern _G_gid_t getegid _G_ARGS((void));
  extern _G_gid_t getgid _G_ARGS((void));
***************
*** 114,120 ****
  #ifdef __OSF1__
  extern char*	sbrk _G_ARGS((int));
  #else
! extern void*    sbrk _G_ARGS((int));
  #endif
  extern int      syscall _G_ARGS((int, ...));
  extern int      setgid (_G_gid_t);
--- 114,120 ----
  #ifdef __OSF1__
  extern char*	sbrk _G_ARGS((int));
  #else
! extern char*    sbrk _G_ARGS((int));
  #endif
  extern int      syscall _G_ARGS((int, ...));
  extern int      setgid (_G_gid_t);
***************
*** 123,129 ****
  extern _G_pid_t setpgrp _G_ARGS((void));
  extern _G_pid_t setsid _G_ARGS((void));
  #else
! extern _G_pid_t setpgrp _G_ARGS((_G_pid_t, _G_pid_t));
  #endif
  extern int      setregid _G_ARGS((int, int));
  extern int      setreuid _G_ARGS((int, int));
--- 123,129 ----
  extern _G_pid_t setpgrp _G_ARGS((void));
  extern _G_pid_t setsid _G_ARGS((void));
  #else
! extern int		setpgrp _G_ARGS((_G_pid_t, _G_pid_t));
  #endif
  extern int      setregid _G_ARGS((int, int));
  extern int      setreuid _G_ARGS((int, int));
***************
*** 137,143 ****
  extern int      ttyslot _G_ARGS((void));
  //extern int   umask _G_ARGS((int)); /* commented out for now; wrong for SunOs4.1 */
  extern int      unlink _G_ARGS((const char*));
! extern _G_pid_t vfork _G_ARGS((void));
  extern int      vadvise _G_ARGS((int));
  extern int      vhangup _G_ARGS((void));
  extern _G_off_t lseek _G_ARGS((int, long, int));
--- 137,143 ----
  extern int      ttyslot _G_ARGS((void));
  //extern int   umask _G_ARGS((int)); /* commented out for now; wrong for SunOs4.1 */
  extern int      unlink _G_ARGS((const char*));
! extern int		vfork _G_ARGS((void));
  extern int      vadvise _G_ARGS((int));
  extern int      vhangup _G_ARGS((void));
  extern _G_off_t lseek _G_ARGS((int, long, int));
--------------- AND HERE --------------------

diff to flexfax tree gzipped and uuencoded

--------------- CUT HERE --------------------
begin 664 ff.dif.uu
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
2OK;VC%G"Y[/Y;^,:=,B%+0``
`
end
--------------- AND HERE --------------------
===
Terry Dawson	tcd@crash.cts.com			Home: (619)586-7105