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:
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
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: