You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Paul Sutton <pa...@ukweb.com> on 1997/07/26 23:44:09 UTC

Source re-org / Don't Panic

First: Don't Panic about recent commits to Configure etc. They are in a
separate source repository (apachen). 

Second: I've finally made a new repository (yes, apachen), which contains
Apache after the great source re-org. If you want to try it, simply
checkout apachen (cvs co apachen) then use it as normal - cp
Configuration.tmpl Configuration; ./Configure. Everything _should_ work
pretty much as before. 

Under the hood, all the source files have moved: all modules previously in
src are in modules/standard, other source files are in core, os specific
files are in os/{unix,nt,emx} (currently empty) and support is now under
src rather than the root.

Configure now does not know about the requirements of modules - modules
can supply information required at Configure time either within their
source or from a separate .module module definition file. See
mod_auth_dbm, mod_auth_db and mod_status for examples. This can make
distributing binary modules easier. 

Modules can exist in arbitary directories (typically, other directories
within src/modules), making adding third party modules easier. These
additional modules can come with very simply makefiles which just contain
dependencies - Configure will add all the other rules necessary to build
the modules (see src/modules/standard/Makefile.tmpl for an example).

The Configuration file "Module" lines have been replaced with "AddModule",
which does not need to be told the module's C structure name (which added
complexity and risk of typos when adding thirdy-party modules).

There are still some minor things which need fixing, and a few commits to
the apache repository from after I copied it which need moving across. Are
there are comments, questions, problems with this? If not, and people
think it is a good idea, we presumably just need to rename apachen to be
apache in the CVS repository to make these the live Apache source. 

Below is a list of files which have moved, relative to src (expect for
files in the support directory). Format is old-filename:new-filename. 

//pcs

alloc.c:core/alloc.c
alloc.h:core/alloc.h
buff.c:core/buff.c
buff.h:core/buff.h
conf.h:core/conf.h
dummy.c:core/dummy.c
explain.c:core/explain.c
explain.h:core/explain.h
http_bprintf.c:core/http_bprintf.c
http_conf_globals.h:core/http_conf_globals.h
http_config.c:core/http_config.c
http_config.h:core/http_config.h
http_core.c:core/http_core.c
http_core.h:core/http_core.h
http_log.c:core/http_log.c
http_log.h:core/http_log.h
http_main.c:core/http_main.c
http_main.h:core/http_main.h
http_protocol.c:core/http_protocol.c
http_protocol.h:core/http_protocol.h
http_request.c:core/http_request.c
http_request.h:core/http_request.h
httpd.h:core/httpd.h
md5.h:core/md5.h
md5c.c:core/md5c.c
mod_access.c:modules/standard/mod_access.c
mod_actions.c:modules/standard/mod_actions.c
mod_alias.c:modules/standard/mod_alias.c
mod_asis.c:modules/standard/mod_asis.c
mod_auth.c:modules/standard/mod_auth.c
mod_auth_anon.c:modules/standard/mod_auth_anon.c
mod_auth_db.c:modules/standard/mod_auth_db.c
mod_auth_dbm.c:modules/standard/mod_auth_dbm.c
mod_auth_msql.c:modules/standard/mod_auth_msql.c
mod_autoindex.c:modules/standard/mod_autoindex.c
mod_browser.c:modules/standard/mod_browser.c
mod_cern_meta.c:modules/standard/mod_cern_meta.c
mod_cgi.c:modules/standard/mod_cgi.c
mod_digest.c:modules/standard/mod_digest.c
mod_dir.c:modules/standard/mod_dir.c
mod_dld.c:modules/standard/mod_dld.c
mod_env.c:modules/standard/mod_env.c
mod_expires.c:modules/standard/mod_expires.c
mod_headers.c:modules/standard/mod_headers.c
mod_imap.c:modules/standard/mod_imap.c
mod_include.c:modules/standard/mod_include.c
mod_info.c:modules/standard/mod_info.c
mod_log_agent.c:modules/standard/mod_log_agent.c
mod_log_config.c:modules/standard/mod_log_config.c
mod_log_referer.c:modules/standard/mod_log_referer.c
mod_mime.c:modules/standard/mod_mime.c
mod_mime.h:modules/standard/mod_mime.h
mod_mime_magic.c:modules/standard/mod_mime_magic.c
mod_negotiation.c:modules/standard/mod_negotiation.c
mod_rewrite.c:modules/standard/mod_rewrite.c
mod_rewrite.h:modules/standard/mod_rewrite.h
mod_status.c:modules/standard/mod_status.c
mod_userdir.c:modules/standard/mod_userdir.c
mod_usertrack.c:modules/standard/mod_usertrack.c
multithread.h:core/multithread.h
rfc1413.c:core/rfc1413.c
rfc1413.h:core/rfc1413.h
scoreboard.h:core/scoreboard.h
util.c:core/util.c
util_date.c:core/util_date.c
util_date.h:core/util_date.h
util_md5.c:core/util_md5.c
util_md5.h:core/util_md5.h
util_script.c:core/util_script.c
util_script.h:core/util_script.h
util_snprintf.c:core/util_snprintf.c


Re: Source re-org / Don't Panic

Posted by Ben Laurie <be...@algroup.co.uk>.
Paul Sutton wrote:
> Incidently I see that there is no project file (.dsp) for regex. Is that
> deliberate or an accidental omission?

Accidental.

Cheers,

Ben.

-- 
Ben Laurie                Phone: +44 (181) 994 6435  Email:
ben@algroup.co.uk
Freelance Consultant and  Fax:   +44 (181) 994 6472
Technical Director        URL: http://www.algroup.co.uk/Apache-SSL
A.L. Digital Ltd,         Apache Group member (http://www.apache.org)
London, England.          Apache-SSL author

Re: Source re-org / Don't Panic

Posted by Paul Sutton <pa...@ukweb.com>.
On Sun, 27 Jul 1997, Ben Laurie wrote:
> Paul Sutton wrote:
> > Under the hood, all the source files have moved: all modules previously in
> > src are in modules/standard, other source files are in core, os specific
> > files are in os/{unix,nt,emx} (currently empty) and support is now under
> > src rather than the root.
> 
> Sounds very cool. Have you given any thought to how this will work with
> NT?

With a bit of tweaking it works fine with NT. I didn't commit it, but here
is how to get it to work under NT:

 - move src/nt to src/os/win32
 - update the Apache and ApacheCore projects with new file locations
 - update these project to add core as an include directory
 - update the projects in src/os/win32 to new source locations
 - update these projects to include from ../../core
 - remove relative paths on #includes in mod_dll, mod_isapi and modules.c
 - replace things lime #include "nt/readdir.h" with "../os/win32/readdir.h"

I'll commit these changes so everything carries on working in the NT world
if we decide to move to the new repository....

Incidently I see that there is no project file (.dsp) for regex. Is that
deliberate or an accidental omission? 

//pcs


Re: Source re-org / Don't Panic

Posted by Ben Laurie <be...@algroup.co.uk>.
Paul Sutton wrote:
> 
> First: Don't Panic about recent commits to Configure etc. They are in a
> separate source repository (apachen).
> 
> Second: I've finally made a new repository (yes, apachen), which contains
> Apache after the great source re-org. If you want to try it, simply
> checkout apachen (cvs co apachen) then use it as normal - cp
> Configuration.tmpl Configuration; ./Configure. Everything _should_ work
> pretty much as before.
> 
> Under the hood, all the source files have moved: all modules previously in
> src are in modules/standard, other source files are in core, os specific
> files are in os/{unix,nt,emx} (currently empty) and support is now under
> src rather than the root.
> 
> Configure now does not know about the requirements of modules - modules
> can supply information required at Configure time either within their
> source or from a separate .module module definition file. See
> mod_auth_dbm, mod_auth_db and mod_status for examples. This can make
> distributing binary modules easier.
> 
> Modules can exist in arbitary directories (typically, other directories
> within src/modules), making adding third party modules easier. These
> additional modules can come with very simply makefiles which just contain
> dependencies - Configure will add all the other rules necessary to build
> the modules (see src/modules/standard/Makefile.tmpl for an example).
> 
> The Configuration file "Module" lines have been replaced with "AddModule",
> which does not need to be told the module's C structure name (which added
> complexity and risk of typos when adding thirdy-party modules).

Sounds very cool. Have you given any thought to how this will work with
NT?

Cheers,

Ben.

-- 
Ben Laurie                Phone: +44 (181) 994 6435  Email:
ben@algroup.co.uk
Freelance Consultant and  Fax:   +44 (181) 994 6472
Technical Director        URL: http://www.algroup.co.uk/Apache-SSL
A.L. Digital Ltd,         Apache Group member (http://www.apache.org)
London, England.          Apache-SSL author

Re: Source re-org / Don't Panic

Posted by Brian Behlendorf <br...@organic.com>.
At 08:08 PM 7/26/97 -0600, you wrote:
>On Sat, 26 Jul 1997, Dean Gaudet wrote:
>
>> We need to pick a flag day when everyone switches to apachen and no more
>> commits are done on HEAD of apache.  Any day is fine with me.
>
>While I like the reorganization, I will once again bring up my concern
>that perhaps this is not the time for it.  Is it really the best thing to
>be doing for 1.3?

Proposal: 

  a) integrate source code re-org & apache-coding-style into HEAD (1.3)
  b) start a new CVS module, say "apache2", which contains everything in HEAD
  c) feature freeze on 1.3
  d) take 1.3 through beta cycle; start work on 2.0 in "apache2".

That way the work we're doing now isn't wasted.  Unless anyone anticipated
starting from a vastly different code base for 2.0?

	Brian


--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--
"Why not?" - TL           brian@organic.com - hyperreal.org - apache.org

Re: Source re-org / Don't Panic

Posted by Dean Gaudet <dg...@arctic.org>.
Why put it off ... i.e. what's to be gained by not doing it now? 

Dean

On Sat, 26 Jul 1997, Marc Slemko wrote:

> On Sat, 26 Jul 1997, Dean Gaudet wrote:
> 
> > We need to pick a flag day when everyone switches to apachen and no more
> > commits are done on HEAD of apache.  Any day is fine with me.
> 
> While I like the reorganization, I will once again bring up my concern
> that perhaps this is not the time for it.  Is it really the best thing to
> be doing for 1.3?
> 
> 


Re: Source re-org / Don't Panic

Posted by Marc Slemko <ma...@worldgate.com>.
On Sat, 26 Jul 1997, Dean Gaudet wrote:

> We need to pick a flag day when everyone switches to apachen and no more
> commits are done on HEAD of apache.  Any day is fine with me.

While I like the reorganization, I will once again bring up my concern
that perhaps this is not the time for it.  Is it really the best thing to
be doing for 1.3?


Re: Source re-org / Don't Panic

Posted by Dean Gaudet <dg...@arctic.org>.
We need to pick a flag day when everyone switches to apachen and no more
commits are done on HEAD of apache.  Any day is fine with me.

Converting existing work-in-progress is easy.  It goes something like this:

    - save the list of filenames at the bottom as 'file-mappings'

    cd apache/src
    cvs diff -u >../../my-work.patch
    cd ../..
    perl -ne 'chomp; ($old,$new) = split(/:/); print "s#^Index: $old\$#Index: $new#\n";' file-mapping | sed -f - my-work.patch > new-work.patch
    # take a look, see if it messed up
    diff -u my-work.patch new-work.patch
    cvs checkout apachen
    cd apachen/src
    patch <../../new-work.patch

Perl purists might shudder at my use of both perl and sed.

Converting non-cvs derrived patches is slightly more work.  And it depends
on the diff format used ... but it's similar to the above.  Or you can just
force patch to ask you the filename of each file (usually by trying to apply
it somewhere that the files it's looking for don't exist).

Dean