From: crandall AT matchlogic DOT com (Charles Randall) Subject: [PATCH] b19.1: Apache 1.3.1 28 Jul 1998 14:45:52 -0700 Message-ID: <64003B21ECCAD11185C500805F31EC03A4269E.cygnus.gnu-win32@houston.matchlogic.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="---- =_NextPart_000_01BDB9DC.E023C068" To: "'gnu-win32 AT cygnus DOT com'" Cc: Charles Randall This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------ =_NextPart_000_01BDB9DC.E023C068 Content-Type: text/plain <> <> Here's a miminal patch for Apache 1.3.1 to build and run in the Cygnus b19.1 environment. It minimally works. CGI is untested. I haven't used it for any serious web serving. I just browsed the local copy of the Apache documentation. I was very conservative in my assumptions in ap_config.h. I'll look at these closer after I do some more testing. Feedback appreciated. -Charles Charles Randall crandall AT matchlogic DOT com ------ =_NextPart_000_01BDB9DC.E023C068 Content-Type: text/plain; name="about-apache-1.3.1-cygwin32.txt" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="about-apache-1.3.1-cygwin32.txt" Building Apache 1.3.1 with Cygwin32 b19.1 ----------------------------------------- (A 12 step plan...) July 27th, 1998 Charles F. Randall crandall AT matchlogic DOT com This patch kit allows Apache 1.3.1 to compile and run in the Cygwin = b19.1 development environment. This requires that you have the CDK (Cygwin Development Kit) installed. If you don't, get it and install it. This has only been tested on Windows NT 4.0 Server with Service Pack 3 applied. It will most likely work fine on NT 4.0 Workstation/sp3. I = don't know if it will work on Window95 or Windows98. Please don't ask me = about Windows95 or Windows98. I don't have access to machines running either = of them. ------------------------------------------------------------------------= -- WARNING: You should know how to build, configure, and use Apache on a = UNIX system before attempting this. I'm not going to answer questions like, "What's patch? How do I use it?". If you're that type of user, download IIS or PWS from Micro$oft and use it instead. This is intended for developers only. If it sets your machine on fire, I'm not responsible for it. ------------------------------------------------------------------------= -- Assuming that your Cygwin32 development environment is configured = properly, follow these steps to build Apache 1.3.1: 1. Create /tmp if you haven't already. 2. Symlink /bin to your Cygwin32 'bin' directory. This will make your = life easier. (so that #!/bin/sh, etc work as expected) 3. Get the Apache 1.3.1 distribution via anonymous ftp from ftp://ftp.apache.org/apache/dist/apache_1.3.1.tar.gz 4. Gunzip and un-tar in a temporary directory. 5. Change directory to apache_1.3.1/src 6. Copy patch file to apache_1.3.1/src 7. Patch source. E.g., $ patch -u -p0 < patch-apache-1.3.1-cygwin32.txt The output of that command should look like this: =20 patching file `helpers/GuessOS' patching file `Configure' patching file `Configuration' patching file `main/http_main.c' patching file `main/http_core.c' patching file `include/ap_config.h' =20 If it doesn't, either you've done something wrong or your Cygwin32 environment isn't installed or operating correctly. Do not continue. 8. Run Configure manually using bash (it core dumps with sh). Should take a minute or two (300 MHz P-II). E.g., $ bash ./Configure The output of that command should look like this: =20 Using config file: Configuration Creating Makefile + configured for Cygwin32 platform + setting C compiler to gcc + adding selected modules + checking for system header files + doing sanity check on compiler and options Creating Makefile in support Creating Makefile in main Creating Makefile in ap Creating Makefile in regex Creating Makefile in os/unix Creating Makefile in modules/standard =20 If it doesn't, either you've done something wrong or your Cygwin32 environment isn't installed or operating correctly. Do not continue. 9. Run 'make'. Should take another minute or two. 10. Verify that the executable minimally works by listing the = compiled-in modules. $ ./httpd.exe -l =20 Output should look like: =20 Compiled-in modules: http_core.c mod_env.c mod_log_config.c mod_mime.c mod_negotiation.c mod_include.c mod_autoindex.c mod_dir.c mod_cgi.c mod_asis.c mod_imap.c mod_actions.c mod_userdir.c mod_alias.c mod_access.c mod_setenvif.c =20 11. Edit httpd.conf, srm.conf, and access.conf as usual. (See hints = below). 12. Start the server. Hints ----- When editing httpd.conf, srm.conf, and access.conf, do the following: o Don't use the "*-win" conf files. They're for the native Win32 = release. o Don't use UNC-style names for drive access (e.g., //d/some/dir). = Instead, use 'mount' to mount them to a "normal" Unix-like path. o In httpd.conf, use these User and Group directives: User #500 Group #100 o In httpd.conf, use your IP address for the ServerName if you don't = have DNS configured properly (shame on you!). Known Problems -------------- o CGI is untested. -Charles crandall AT matchlogic DOT com ------ =_NextPart_000_01BDB9DC.E023C068 Content-Type: text/plain; name="patch-apache-1.3.1-cygwin32.txt" Content-Disposition: attachment; filename="patch-apache-1.3.1-cygwin32.txt" --- helpers/backup/GuessOS Sun Jul 26 20:43:29 1998 +++ helpers/GuessOS Sun Jul 26 20:42:09 1998 @@ -230,7 +230,8 @@ *:4.0:2:*) echo "whatever-unisys-sysv4"; exit 0; ;; - + CYGWIN32_*:*86) + echo "x86-gnu-cygwin32"; exit 0; esac # --- backup/Configure Sun Jul 26 20:47:31 1998 +++ Configure Sun Jul 26 20:54:17 1998 @@ -698,6 +698,11 @@ DEF_WANTHSREGEX=yes LIBS="$LIBS -lsocket -lnsl -lc -L/usr/ucblib -lucb" ;; + x86-gnu-cygwin32) + OS='Cygwin32' + CFLAGS="$CFLAGS -DCYGWIN32" + DEF_WANTHSREGEX=yes + ;; *) # default: Catch systems we don't know about OS='Unknown and unsupported OS' echo Sorry, but we cannot grok \"$PLAT\" --- backup/Configuration Mon Jul 27 20:59:05 1998 +++ Configuration Sat Jul 25 23:02:07 1998 @@ -304,7 +304,7 @@ ## Access control and authentication modules. ## AddModule modules/standard/mod_access.o -AddModule modules/standard/mod_auth.o +#AddModule modules/standard/mod_auth.o ## The anon_auth module allows for anonymous-FTP-style username/ ## password authentication. --- main/backup/http_main.c Sat Jul 25 22:09:51 1998 +++ main/http_main.c Sun Jul 26 20:55:49 1998 @@ -113,9 +113,9 @@ #include #include #endif -#ifdef WIN32 +#if defined(WIN32) #include "../os/win32/getopt.h" -#elif !defined(BEOS) +#elif !defined(BEOS) && !defined(CYGWIN32) #include #endif --- main/backup/http_core.c Sun Jul 26 22:22:31 1998 +++ main/http_core.c Sun Jul 26 22:21:49 1998 @@ -2588,7 +2588,7 @@ return METHOD_NOT_ALLOWED; } -#if defined(__EMX__) || defined(WIN32) +#if defined(__EMX__) || defined(WIN32) || defined(CYGWIN32) /* Need binary mode for OS/2 */ f = ap_pfopen(r->pool, r->filename, "rb"); #else --- include/backup/ap_config.h Sun Jul 26 21:50:25 1998 +++ include/ap_config.h Sun Jul 26 21:59:23 1998 @@ -753,6 +753,19 @@ /* All windows stuff is now in os/win32/os.h */ +#elif defined(CYGWIN32) +/* Cygnus Cygwin32 - http://www.cygnus.com/misc/gnu-win32/ */ +# define NO_SHMGET +# define NO_MMAP +# define NO_KILLPG +# define NO_SETSID +# define NO_USE_SIGACTION +# define NO_LINGCLOSE +# define NO_SLACK +# define NO_OTHER_CHILD +# define NO_RELIABLE_PIPED_LOGS +/* end CYGWIN32 */ + #else /* Unknown system - Edit these to match */ #ifdef BSD ------ =_NextPart_000_01BDB9DC.E023C068-- - For help on using this list (especially unsubscribing), send a message to "gnu-win32-request AT cygnus DOT com" with one line of text: "help".