Author: wrowe Date: Thu Oct 21 14:19:47 2004 New Revision: 55266 Added: incubator/httpd/cli/trunk/mod_aspdotnet/Apache.Web/Apache.Web.Version.h (contents, props changed) incubator/httpd/cli/trunk/mod_aspdotnet/Apache.Web/Apache.Web.rc (contents, props changed) incubator/httpd/cli/trunk/mod_aspdotnet/mod/mod_aspdotnet.rc (contents, props changed) Modified: incubator/httpd/cli/trunk/mod_aspdotnet/ (props changed) incubator/httpd/cli/trunk/mod_aspdotnet/Apache.Web/Apache.Web.h incubator/httpd/cli/trunk/mod_aspdotnet/Apache.Web/Apache.Web.vcproj incubator/httpd/cli/trunk/mod_aspdotnet/Apache.Web/AssemblyInfo.cpp incubator/httpd/cli/trunk/mod_aspdotnet/README.txt incubator/httpd/cli/trunk/mod_aspdotnet/mod/mod_aspdotnet.cpp incubator/httpd/cli/trunk/mod_aspdotnet/mod/mod_aspdotnet.vcproj Log: Split Apache.Web.Version.h out of Apache.Web.h, add resource version tags (.rc files) and update the readme.
Added: incubator/httpd/cli/trunk/mod_aspdotnet/Apache.Web/Apache.Web.Version.h ============================================================================== --- (empty file) +++ incubator/httpd/cli/trunk/mod_aspdotnet/Apache.Web/Apache.Web.Version.h Thu Oct 21 14:19:47 2004 @@ -0,0 +1,60 @@ +/* Copyright 2002-2004 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Apache.Web.Version.h Version declaration macros + +#ifndef APACHE_WEB_VERSION + +// The MAJOR.MINOR revision should reflect the Apache release this module +// is built for. The httpd release guidelines from version 4.0.43 onwards +// assure us that the binaries remain backwards compatibile, within each +// major.minor httpd release. +// +#define APACHE_WEB_VER_MAJOR 2 +#define APACHE_WEB_VER_MINOR 0 + +// The n.n.SUBVS should reflect each mod_aspdotnet/Apache.Web release +// +#define APACHE_WEB_VER_SUBVS 0 + +// The n.n.n.BUILD must be bumped every time Apache.Web class interfaces change. +// This ensures that a specific build of mod_aspdotnet loads it's correponding +// build of Apache.Web, and that multiple builds of Apache.Web coexist in the GAC. +// +#define APACHE_WEB_VER_BUILD 2000 + +// Define APACHE_WEB_VER_RELEASE as 1 for a non-dev, release build, when rolling +// the distribution .zip sources or binary release. +// +#define APACHE_WEB_VER_RELEASE 0 + +#define APACHE_WEB_VERSION_CSV \ + APACHE_WEB_VER_MAJOR,\ + APACHE_WEB_VER_MINOR,\ + APACHE_WEB_VER_SUBVS,\ + APACHE_WEB_VER_BUILD + +// Properly quote a value as a string in the C preprocessor +#define APW_STRINGIFY(n) APW_STRINGIFY_HELPER(n) +// Helper macro for APR_STRINGIFY +#define APW_STRINGIFY_HELPER(n) #n + +#define APACHE_WEB_VERSION \ + APW_STRINGIFY(APACHE_WEB_VER_MAJOR ##. \ + ##APACHE_WEB_VER_MINOR ##. \ + ##APACHE_WEB_VER_SUBVS ##. \ + ##APACHE_WEB_VER_BUILD) + +#endif // APACHE_WEB_VERSION Modified: incubator/httpd/cli/trunk/mod_aspdotnet/Apache.Web/Apache.Web.h ============================================================================== --- incubator/httpd/cli/trunk/mod_aspdotnet/Apache.Web/Apache.Web.h (original) +++ incubator/httpd/cli/trunk/mod_aspdotnet/Apache.Web/Apache.Web.h Thu Oct 21 14:19:47 2004 @@ -15,13 +15,10 @@ // Apache.Web.h base COM interop interfaces for Apache 2.0 - -#ifndef APACHE_WEB_VERSION -#define APACHE_WEB_VERSION "2.0.0.2000" -#endif - #ifndef APACHE_WEB_H #define APACHE_WEB_H + +#include "Apache.Web.Version.h" // We don't care about unused arguments, // or conditional expression constant evaluation Added: incubator/httpd/cli/trunk/mod_aspdotnet/Apache.Web/Apache.Web.rc ============================================================================== --- (empty file) +++ incubator/httpd/cli/trunk/mod_aspdotnet/Apache.Web/Apache.Web.rc Thu Oct 21 14:19:47 2004 @@ -0,0 +1,39 @@ +#include "Apache.Web.Version.h" + +1 VERSIONINFO + FILEVERSION APACHE_WEB_VERSION_CSV + PRODUCTVERSION APACHE_WEB_VERSION_CSV + FILEFLAGSMASK 0x3fL +#if defined(_DEBUG) + FILEFLAGS 0x03L +#else +#if !APACHE_WEB_VER_RELEASE + FILEFLAGS 0x02L +#else + FILEFLAGS 0x0L +#endif +#endif + FILEOS 0x40004L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "Comments", "All rights reserved. The license is available at <http://www.apache.org/licenses/LICENSE-2.0.txt>. The Apache HTTP Server cli-dev subproject pages are at <http://httpd.apache.org/cli-dev/>.\0" + VALUE "CompanyName", "Apache Software Foundation\0" + VALUE "FileDescription", "Apache.Web connector to the mod_aspdotnet module for the Apache HTTP Web Server\0" + VALUE "FileVersion", APACHE_WEB_VERSION "\0" + VALUE "InternalName", "Apache.Web.dll\0" + VALUE "LegalCopyright", "Copyright © 2004 The Apache Software Foundation.\0" + VALUE "OriginalFilename", "Apache.Web.dll\0" + VALUE "ProductName", "mod_aspdotnet/Apache.Web host module for Microsoft ASP.NET within the Apache HTTP Server\0" + VALUE "ProductVersion", APACHE_WEB_VERSION "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END Modified: incubator/httpd/cli/trunk/mod_aspdotnet/Apache.Web/Apache.Web.vcproj ============================================================================== --- incubator/httpd/cli/trunk/mod_aspdotnet/Apache.Web/Apache.Web.vcproj (original) +++ incubator/httpd/cli/trunk/mod_aspdotnet/Apache.Web/Apache.Web.vcproj Thu Oct 21 14:19:47 2004 @@ -152,6 +152,9 @@ Name="Header Files" Filter="h;hpp;hxx;hm;inl;inc"> <File + RelativePath="Apache.Web.Version.h"> + </File> + <File RelativePath="Apache.Web.h"> </File> <File @@ -170,6 +173,9 @@ <Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;r"> + <File + RelativePath="Apache.Web.rc"> + </File> </Filter> <File RelativePath="ReadMe.txt"> Modified: incubator/httpd/cli/trunk/mod_aspdotnet/Apache.Web/AssemblyInfo.cpp ============================================================================== --- incubator/httpd/cli/trunk/mod_aspdotnet/Apache.Web/AssemblyInfo.cpp (original) +++ incubator/httpd/cli/trunk/mod_aspdotnet/Apache.Web/AssemblyInfo.cpp Thu Oct 21 14:19:47 2004 @@ -15,11 +15,7 @@ // AssemblyInfo.cpp support for Apache.Web Assembly - -// We aren't looking for much beyond the version, -// so lie that this header was previously loaded -#define APACHE_WEB_H -#include "Apache.Web.h" +#include "Apache.Web.Version.h" #using <mscorlib.dll> Modified: incubator/httpd/cli/trunk/mod_aspdotnet/README.txt ============================================================================== --- incubator/httpd/cli/trunk/mod_aspdotnet/README.txt (original) +++ incubator/httpd/cli/trunk/mod_aspdotnet/README.txt Thu Oct 21 14:19:47 2004 @@ -34,12 +34,19 @@ Alternate Build Notes --------------------- -You may build the module with the free Microsoft Visual C++ Toolkit and -the .NET Framework, instead of the full Developer Studio. However, it's -not possible to create the full installer with this method, and some -registration by-hand is required. - - [NEW batch file and documentation needed] +We have attempted to build the modules with the free Microsoft Visual C++ +Toolkit, Microsoft's .NET Framework SDK and Windows Platform SDK. Sadly, +this combination is not a complete replacement for the Developer Studio, +and is insufficient to build the mod_aspdotnet and Apache.Web.dll modules. + +Notably, none of these packages includes the DelayImp.lib which is +required to link libhttpd, libaprutil and libapr .dll files to the +Apache.Web.dll module. This allows the regasm and gacutil utilities, +amoung others, to load and process the Apache.Web.dll, without loading +the actual Apache .dll files. Without this feature it's impossible to +place Apache.Web.dll in the GAC (required for loading inside Microsoft's +System.Web.Hosting framework), while the Apache .dll files remain in the +Apache bin directory. Deployment Notes @@ -50,7 +57,7 @@ two releases, and Exceptions, destruction, construction and failure cases will manifest differently between the two variants. -Asp.Net requires the Apache::Web::Request object to be registered in +ASP.NET requires the Apache::Web::Request object to be registered in the Global Assembly Cache in order to instantiate it's host container. The Debug build will do so automatically, copying mod_aspdotnet.so + .pdb @@ -69,6 +76,8 @@ This will *NOT* work on an end-user's machine without the .Net SDK. Those tools [regasm/gacutil] aren't installed with the retail .Net-redist install. +Instead, the .msi installer package, with the details for registering the +Apache.Web assembly into the Global Assembly Cache, is used for end-users. TODO @@ -87,34 +96,6 @@ a much more efficient method. Note that the .msi package searches for apache/bin/apache.exe up to 3 levels -deep from the local hard drives, in sequence. It aught to further test for -version 2.0.43.0 or later. - -The installer cannot be configured correctly from the MS Visual Studio -environment; the follow changes should be programmed to automatically -occur after building installer.msi; - -Modify the following records; - - Table Property Value - Property FolderForm_AllUsers s/ME/ALL/ - -Insert the follow records; - - Table Action Type Source Target - CustomAction DIRCH_TARGETDIR 307 TARGETDIR [HTTPSDPATH]\.. - - Table Action Condition Seq - InstallUISequence DIRCH_TARGETDIR HTTPSDPATH<>"" 725 - InstallExecuteSequence DIRCH_TARGETDIR HTTPSDPATH<>"" 725 - -This sequence uses the HTTPSDPATH search already built into the -installer.msi project, and sets that default as the targetdir for -the installation. - -It is entirely possible for the project to also create a .bat file -build script using the http://msdn.microsoft.com/visualc/vctoolkit2003/ -Visual C++ Toolkit for .NET (a free download.) Of course, it would not -be possible to create the .msi installer using that file. It would be -possible to use the free XML-based .msi packaging techology, however. +deep from the local hard drives, in sequence. It aught to test further, as +necessary, or allow explicitly long paths. Modified: incubator/httpd/cli/trunk/mod_aspdotnet/mod/mod_aspdotnet.cpp ============================================================================== --- incubator/httpd/cli/trunk/mod_aspdotnet/mod/mod_aspdotnet.cpp (original) +++ incubator/httpd/cli/trunk/mod_aspdotnet/mod/mod_aspdotnet.cpp Thu Oct 21 14:19:47 2004 @@ -43,10 +43,7 @@ #include "util_filter.h" #include "util_script.h" -// We aren't looking for much beyond the version, -// so lie that this header was previously loaded -#define APACHE_WEB_H -#include "Apache.Web.h" +#include "Apache.Web.Version.h" #include <mscoree.h> #import <mscorlib.tlb> raw_interfaces_only \ Added: incubator/httpd/cli/trunk/mod_aspdotnet/mod/mod_aspdotnet.rc ============================================================================== --- (empty file) +++ incubator/httpd/cli/trunk/mod_aspdotnet/mod/mod_aspdotnet.rc Thu Oct 21 14:19:47 2004 @@ -0,0 +1,40 @@ +#include "..\Apache.Web\Apache.Web.Version.h" + +1 VERSIONINFO + FILEVERSION APACHE_WEB_VERSION_CSV + PRODUCTVERSION APACHE_WEB_VERSION_CSV + FILEFLAGSMASK 0x3fL +#if defined(_DEBUG) + FILEFLAGS 0x03L +#else +#if !APACHE_WEB_VER_RELEASE + FILEFLAGS 0x02L +#else + FILEFLAGS 0x0L +#endif +#endif + FILEOS 0x40004L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "Comments", "All rights reserved. The license is available at <http://www.apache.org/licenses/LICENSE-2.0.txt>. The Apache HTTP Server cli-dev subproject pages are at <http://httpd.apache.org/cli-dev/>.\0" + VALUE "CompanyName", "Apache Software Foundation\0" + VALUE "FileDescription", "Apache.Web connector to mod_aspdotnet for Apache HTTP Server\0" + VALUE "FileDescription", "aspdotnet_module connector module to Apache.Web for the Apache HTTP Web Server\0" + VALUE "FileVersion", APACHE_WEB_VERSION "\0" + VALUE "InternalName", "mod_aspdotnet.so\0" + VALUE "LegalCopyright", "Copyright © 2004 The Apache Software Foundation.\0" + VALUE "OriginalFilename", "mod_aspdotnet.so\0" + VALUE "ProductName", "mod_aspdotnet/Apache.Web host module for Microsoft ASP.NET within the Apache HTTP Server\0" + VALUE "ProductVersion", APACHE_WEB_VERSION "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END Modified: incubator/httpd/cli/trunk/mod_aspdotnet/mod/mod_aspdotnet.vcproj ============================================================================== --- incubator/httpd/cli/trunk/mod_aspdotnet/mod/mod_aspdotnet.vcproj (original) +++ incubator/httpd/cli/trunk/mod_aspdotnet/mod/mod_aspdotnet.vcproj Thu Oct 21 14:19:47 2004 @@ -139,6 +139,9 @@ <Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;r"> + <File + RelativePath="mod_aspdotnet.rc"> + </File> </Filter> </Files> <Globals>