Files
sudo/PORTING
1994-02-28 04:19:47 +00:00

26 lines
1.2 KiB
Plaintext

sudo porting hints:
Sudo should be fairly easy to port. The most problematic part is how
set*uid() functions. If you have no seteuid() but do have setreuid()
you can emulate seteuid() with a macro like the following:
#define seteuid(__EUID) (setreuid((uid_t)-1, __EUID))
Another possible pitfall is getdtablesize() which is used to get the maximum
number of open files the process can have. For systems that have the
Posix(?) sysconf() but no getdtablesize(), use the following macro:
#define getdtablesize() (sysconf(_SC_OPEN_MAX))
If all else fails you can use the value of NOFILE in <sys/param.h>.
If you are porting to a SysV-based OS, you should link in with a library
that has BSD signals if possible, if not sudo will probably still work,
but no promises.
One other thing is that sudo expects to be able to use the uid_t and mode_t
type definitions. Chances are you have uid_t, if not it is just what
getuid(2) returns, you can add it in to sudo.h. If you have an older
libc, you probably don't have mode_t. You can just compile with -DNO_MODE_T
if umask(2) takes an int, if not, fix the definition in sudo.h.
If you port sudo to a new architecture, please send your changes to
sudo-bugs@cs.colorado.edu