[BACK]Return to PORTING CVS log [TXT][DIR] Up to [local] / src / usr.bin / sudo

Annotation of src/usr.bin/sudo/PORTING, Revision 1.1

1.1     ! millert     1: Sudo porting hints
        !             2: ==================
        !             3:
        !             4: Before trying to port sudo to a new architecture, please join the
        !             5: sudo-workers mailing list (see the README file) and ask if anyone
        !             6: has a port working or in-progress.  Sudo should be fairly easy to
        !             7: port.  Since it uses a configure script, most of the work should
        !             8: be done for you.
        !             9:
        !            10: If your OS is an SVR4 derivative (or some approximation thereof), it may
        !            11: be sufficient to tell configure you are runnng SVR4, something like:
        !            12:     configure foo-bar-sysv4
        !            13: where foo is the hardware architecture and bar is the vendor.
        !            14:
        !            15: A possible pitfall is getdtablesize(2) which is used to get the
        !            16: maximum number of open files the process can have.  If an OS has
        !            17: the POSIX sysconf(2) it will be used instead of getdtablesize(2).
        !            18: ulimit(2) or getrlimit(2) can also be used on some OS's.  If all
        !            19: else fails you can use the value of NOFILE in <sys/param.h>.
        !            20:
        !            21: Sudo tries to clear the environment of dangerous envariables like
        !            22: LD_* to prevent shared library spoofing.  If you are porting sudo
        !            23: to a new OS that has shared libraries you'll want to mask out the
        !            24: variables that allow one to change the shared library path.  See
        !            25: badenv_table() in sudo.c to see how this is done for various OS's.
        !            26:
        !            27: It is possible that on a really weird system, tgetpass() may not
        !            28: compile.  (The most common cause for this is that the "fd_set" type
        !            29: is not defined in a place that sudo expects it to be.  If you can
        !            30: find the header file where "fd_set" is typedef'd, have tgetpass.c
        !            31: include it and send in a bug report.)
        !            32: Alternately, tgetpass.c may compile but not work (nothing happens
        !            33: at the Password: prompt).  It is possible that your C library
        !            34: contains a broken or unusable crypt() function--try linking with
        !            35: -lcrypt if that exists.  Another possibility is that select() is
        !            36: not fully functional; running configure with --with-password-timeout=0
        !            37: will disable the use of select().
        !            38:
        !            39: If you are trying to port to a system without standard Berkeley
        !            40: networking you may find that interfaces.c will not compile.  This
        !            41: is most likely on OS's with STREAMS-based networking.  It should be
        !            42: possible to make it work by modifying the ISC streams support
        !            43: (see the _ISC #ifdef's).  However, if you don't care about ip address
        !            44: and network address support, you can just run configure with the
        !            45: --without-interfaces flag to get a do-nothing load_interfaces() stub function.
        !            46:
        !            47: If you port sudo to a new architecture, please send the output of
        !            48: "configure", the config.log file and your changes to:
        !            49:     sudo@courtesan.com
        !            50:
        !            51: If you are unable to get sudo working, and you are willing to
        !            52: give me an account on a machine, send mail to sudo@courtesan.com.
        !            53: Note, however, that I can't make any promises.