Mailing List Archive

SCO port of 8.0.11
Hi there,

Just porting Apache 0.8.11 to SCO, and here's the things I had to do to get it
to compile (nearly) cleanly:

1. in src/Configure, on SCO at least:

egrep -v -s '^Module[ ]+[A-Za-z0-9_]+[ ]+[^ ]+$'

should read:

egrep -v '^Module[ ]+[A-Za-z0-9_]+[ ]+[^ ]+$'

I don't know what the -s is supposed to do, tho...

2. in src/alloc.c

struct process_chain {
int pid;
enum kill_conditions kill_how;
struct process_chain *next;
};

becomes:

struct process_chain {
pid_t pid;
enum kill_conditions kill_how;
struct process_chain *next;
};

3. in src/conf.h

#elif defined(SCO)
#undef BSD
#undef NO_KILLPG
#undef NO_SETSID
#define NEED_INITGROUPS

#elif defined(CONVEXOS)

becomes:

#elif defined(SCO)
#undef BSD
#undef NO_KILLPG
#undef NO_SETSID
#define NEED_INITGROUPS
#define JMP_BUF jmp_buf
#define SIGURG SIGUSR1
#define getwd(d) getcwd(d,MAX_STRING_LEN)

#elif defined(CONVEXOS)

Note that (according to the docs) an ioctl() is required to make SIGUSR1
(SIGURG) happen on sockets. Apache doesn't seem to do one.

4. In src/httpd.h

struct server_rec {

server_rec *next;

/* Full locations of server config info */

char *srm_confname;
char *access_confname;

/* Contact information */

char *server_admin;
char *server_hostname;

/* Log files --- note that transfer log is now in the modules... */

char *error_fname;
FILE *error_log;

/* Module-specific configuration for server, and defaults... */

void *module_config; /* Config vector containing pointers to
* modules' per-server config structures.
*/
void *lookup_defaults; /* MIME type info, etc., before we start
* checking per-directory info.
*/
/* Transaction handling */

int port;
struct in_addr host_addr; /* Specific address, if "virtual" server */
int timeout; /* Timeout, in seconds, before we give up */
int do_rfc931; /* See if client is advertising a username? */

};

becomes:

struct server_rec {

server_rec *next;

/* Full locations of server config info */

char *srm_confname;
char *access_confname;

/* Contact information */

char *server_admin;
char *server_hostname;

/* Log files --- note that transfer log is now in the modules... */

char *error_fname;
FILE *error_log;

/* Module-specific configuration for server, and defaults... */

void *module_config; /* Config vector containing pointers to
* modules' per-server config structures.
*/
void *lookup_defaults; /* MIME type info, etc., before we start
* checking per-directory info.
*/
/* Transaction handling */

short port;
struct in_addr host_addr; /* Specific address, if "virtual" server */
int timeout; /* Timeout, in seconds, before we give up */
int do_rfc931; /* See if client is advertising a username? */

};

(Just port has changed from int to short).

4. In src/rfc931.c

extern char *inet_ntoa();

becomes:

#ifndef SCO
extern char *inet_ntoa();
#endif

Or, perhaps, it should go altogether

5. In src/http_request.c

int check_symlinks (char *d, char opts)

becomes:

int check_symlinks (char *d, int opts)

Or, fix all the calls which pass an int...


-------

What I need to do to make it _run_ I don't know (yet) ;-)
That's tomorrow's task.

I notice reference to SSL and HTTPS ... how's that coming along? Need any
help?

How does one become part of the Apache Team?

Cheers,

Ben.

--
Ben Laurie Phone: +44 (181) 994 6435
Freelance Consultant Fax: +44 (181) 994 6472
and Technical Director Email: ben@algroup.co.uk (preferred)
A.L. Digital Ltd, benl@fear.demon.co.uk (backup)
London, England.

[.Note for the paranoid: "fear" as in "Fear and Loathing
in Las Vegas", "demon" as in Demon Internet Services, a
commercial Internet access provider.]