]> granicus.if.org Git - sudo/commitdiff
Add signals section
authorTodd C. Miller <Todd.Miller@courtesan.com>
Sat, 15 Dec 2001 01:07:13 +0000 (01:07 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Sat, 15 Dec 2001 01:07:13 +0000 (01:07 +0000)
PORTING

diff --git a/PORTING b/PORTING
index 5c0427ce22a922f87634a2ca1a29948071a488d6..e69dd7560405be33575f8a9d326d1328c5d7e16a 100644 (file)
--- a/PORTING
+++ b/PORTING
@@ -4,8 +4,8 @@ Sudo porting hints
 Before trying to port sudo to a new architecture, please join the
 sudo-workers mailing list (see the README file) and ask if anyone
 has a port working or in-progress.  Sudo should be fairly easy to
-port.  Since it uses a configure script, most of the work should
-be done for you.
+port.  Since it uses a configure script, most of the work is often
+done for you.
 
 If your OS is an SVR4 derivative (or some approximation thereof), it may
 be sufficient to tell configure you are runnng SVR4, something like:
@@ -18,11 +18,12 @@ the POSIX sysconf(2) it will be used instead of getdtablesize(2).
 ulimit(2) or getrlimit(2) can also be used on some OS's.  If all
 else fails you can use the value of NOFILE in <sys/param.h>.
 
-Sudo tries to clear the environment of dangerous envariables like
-LD_* to prevent shared library spoofing.  If you are porting sudo
-to a new OS that has shared libraries you'll want to mask out the
-variables that allow one to change the shared library path.  See
-badenv_table() in sudo.c to see how this is done for various OS's.
+Sudo tries to clear the environment of dangerous environment variables
+such as LD_* to prevent shared library spoofing.  If you are porting
+sudo to a new OS that has shared libraries you'll want to mask out
+the variables that allow one to change the shared library path.
+See initial_badenv_table() in env.c to see how this is done for
+various operating systems.
 
 It is possible that on a really weird system, tgetpass() may not
 compile.  (The most common cause for this is that the "fd_set" type
@@ -38,11 +39,18 @@ will disable the use of select().
 
 If you are trying to port to a system without standard Berkeley
 networking you may find that interfaces.c will not compile.  This
-is most likely on OS's with STREAMS-based networking.  It should be
-possible to make it work by modifying the ISC streams support
+is most likely on OS's with STREAMS-based networking.  It should
+be possible to make it work by modifying the ISC streams support
 (see the _ISC #ifdef's).  However, if you don't care about ip address
 and network address support, you can just run configure with the
---without-interfaces flag to get a do-nothing load_interfaces() stub function.
+--without-interfaces flag to get a do-nothing load_interfaces()
+stub function.
+
+Sudo wants POSIX signals (sigaction and friends).  If your system
+lacks sigaction but has the 4.3BSD sigvec() function, sigvec() will
+be used instead via the wrapper functions in sigaction.c.  It is
+not currently possible to use the old SVR3 and 4.2BSD signals, but
+this is due more to my lack of a test machine than anything else.
 
 If you port sudo to a new architecture, please send the output of
 "configure", the config.log file and your changes to: