RE: mod_jk2 (native2) autoconf preliminary works

2002-05-13 Thread GOMEZ Henri

Back to earth 

 If that's provided with Apache 2.0... What if it's not 
provided with the
 web-server (AKA, apache 1.3?)

We either don't use APR, or use the APR that is included with 
Apache2.0.

Since the only available APR release are those from Apache 2.0 
release, my shared apr lib, is ALLWAYS the one from Apache 2.0.

For our purpose, that's the only 'stable' APR we can refer to, 
otherwise
we'll be in a maintainance nightmare where everyone will have his
own version/variation of APR.

Hum, I agree for with/without threads. But otherwise APR should
be a common piece of code ? ie: everything hidden behind apr_.
If you tell us that they could be custom APR version, you're signing
de facto the end of APR as an Apache Portable Runtime Library which
was planned to be used for projects others than just Apache 2.0.

But not using APR with Apache1.3 is another choice - using 'native'
apache1.3 pools for example instead of APR pools, native apache1.3
maps, etc will be even slightly better ( and using the same code
as jk1 will be good too )

Yep.

  APR libs should/could be installed in /usr/lib, /usr/include,
  and considered 'system' ( like glib, qt, nspr, etc ).
  If you build a non-threaded version, it shouldn't be
  called libapr.so in any case.
 
 I strongly disagree with that, considering the bazillion of 
options that you
 have in building APR, and the different features that the 
library _can_
 support (but doesn't all times)...
 
 Even when building Apache 2.0 the APR library is built 
differently depending
 on _how_ you build your Apache 2.0...

Yes - that's the main reason for using a single libapr.so. 

If you have 2 programs using different libapr.so, say with different
locking mechanisms - they'll not work togheter, each will use 
a different lock.

+1

 It has never been released indipendently because of the API 
changes that
 (are still) going on to some extent... Look at the 
APR_ATOMICS, or the
 locking which got completely rewritten few months ago...

The version that was shiped with Apache2.0 is stable and I think
that's what we should use with jk2. 

I use today the one from Apache 2.0.35 (2.0.36 as soon as I can
release a new rpm for 2.0.36)

We may have to change our code when Apache2.1 is released - 
but coding against one API in jk2 ( i.e. APR-head ) and using
it with Apache2 ( with another APR API ) is looking for trouble.

+1, and that's one of my major concern with mod_webapp.
Majority of people need to works against release, and don't
wan't (or can't) track HEAD projects (APR/APACHE2/)

The idea that you can release a product without some 
parts still changing is crazy. I understand Apache2's APR
is not called APR1.0 because people don't want to support
that particular API in future - but we can't ship 
jk2 with dependencies on APR-head ( whatever that is ).

Yes, jk2 will need a known APR (ie the one from Apache 2.0.36)
and if we want to have a jk2 for apache 1.3 with APR support,
we should include the APR source tarball next to jk sources,
(JF does like this for mod_webapp)

Even if APR1.0 is released, we should use it only when 
a stable release of Apache2.x with APR1.0 is made.

Any date ?

  Static apr may be a workaround, but I would avoid that if
  possible. libapr.so should be a 'deterministic' entity,
  if someone has a problem we should know he uses a certain
  version.
 
 I believe that the dynamic build of libapr is better if you 
have plugins
 that your code needs to read: when you compile those, you 
link them against
 a library, rather than to a binary (which you can't easily 
do anyway)...

I believe the main benefit of using shared libraries is not saving 
memory, but having consistency - the same code will be used in 
Apache2 and jk2. You can't get into a situation when Apache2 is 
locking in one way, and jk2 in another way.

Costin



--
To unsubscribe, e-mail:   
mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




RE: mod_jk2 (native2) autoconf preliminary works

2002-05-13 Thread GOMEZ Henri

 As a secondary note, if anyone has some time we should
 look at sourceforge's ant-contrib and their CC task and
 eventually merge jkant into it, we shouldn't duplicate
 the effort. 
 
 Hum, why didn't they include ant-contrib in ant cvs ?

I think it's sometimes easier to work on sourceforge. Without
Jon and politics. 

:) LOL

--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: mod_jk2 (native2) autoconf preliminary works

2002-05-13 Thread Pier Fumagalli

GOMEZ Henri [EMAIL PROTECTED] wrote:

 We may have to change our code when Apache2.1 is released -
 but coding against one API in jk2 ( i.e. APR-head ) and using
 it with Apache2 ( with another APR API ) is looking for trouble.
 
 +1, and that's one of my major concern with mod_webapp.
 Majority of people need to works against release, and don't
 wan't (or can't) track HEAD projects (APR/APACHE2/)

So far we haven't had one single problem with HEAD, also because we simply
don't use it for release balls

 Even if APR1.0 is released, we should use it only when
 a stable release of Apache2.x with APR1.0 is made.
 
 Any date ?

Maybe in the next couple of months...

Pier


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: mod_jk2 (native2) autoconf preliminary works

2002-05-07 Thread Pier Fumagalli

jean-frederic clere [EMAIL PROTECTED] wrote:
 GOMEZ Henri wrote:
 I started to works on adding autoconf stuff for
 mod_jk2 (native2) for Apache 1.3/2.0 and will need
 some help and advice since it's not fluent in this
 area (JF/Pier are jtc specialists).
 
 Initial works in on Makefile for apxs.
 
 1) What about moving scripts from jk/native to
just jk ? It avoid duplicate between native
and native2.
 
 That may bring problems: the configure.in normaly contains the files you want
 to generate.

Every autoconf M4 definition file (configure.in) is (should) be tied to
the bone of what it's trying to actually configure... If there's enough
stuff in common (like all you want is something like
--enable-native=[native/native2]) that could work, but otherwise, it's just
going to mess stuff around.

If you see (for example) what I did for WebApp, the whole configure.in has a
common part (top and bottom) but all decisional steps are dependant on the
APXS we find (and we're lucky since we only deal with APXS, not with all the
issues you might find when building stuff with a generic compiler and such).

 2) What should be done for APR in Apache 1.3 ?
Should we use external shared apr lib ?
 
 That is probably the best.

I disagree... APR is not a shared library like (for example) the C
library, or the ZLIB library. It's a runtime, therefore each time you
build it, you can have (or not) support for certain features and so on.

Linking dynamically to such a library is (IMO) wrong unless you do it in a
conservative way (like Apache 2.0 does, placing it in your Apache 2.0
distribution tree). I don't think we'll ever see a /usr/lib/libapr.so-x.x.x
(and _THAT_ would create some problems)

Should we use static build apr (like does webapp) ?
In all case should the apr for 1.3 must be with
or without pthread ?

Therefore, why linking it dynamically? Just to have the extra overhead of
referencing function pointers all the time? Do it static and compile it in,
rely on the dynamic one only if your web server provides it for you (in that
case it's because DSO modules are easier to link against a shared library
than against an executable binary)

 1.3 needs threads on win32 at least.

On Win32 and Netware (that's it)... But AFAIK those should be different
makefiles.

 4) What about jni support ?
 
 Costin is the one that knows.

Remember that on Darwin it's JNI_CreateJavaVM_Impl()... :)

Pier


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: mod_jk2 (native2) autoconf preliminary works

2002-05-07 Thread costinm

On Tue, 7 May 2002, jean-frederic clere wrote:

  1) What about moving scripts from jk/native to
 just jk ? It avoid duplicate between native
 and native2.
 
 That may bring problems: the configure.in normaly contains the files you want to 
 generate.

IMHO autoconf is justified only for jk2/apache1.3 ( eventually ).
But if we decide to use it for apache2 and jni - then probably
that may be a good idea. 


  2) What should be done for APR in Apache 1.3 ?
 Should we use external shared apr lib ?
 
 That is probably the best.

Building mod_jk without APR is another option here.
( i.e. only with socket and what was in jk1 ).

If we use apr, I think ( a bit strongly ) that 
we should use exactly the same library as apache2 does.

APR libs should/could be installed in /usr/lib, /usr/include,
and considered 'system' ( like glib, qt, nspr, etc ). 
If you build a non-threaded version, it shouldn't be 
called libapr.so in any case.

Also I think the version that comes with Apache2's
binary is to be considered the 'reference' - since Apr
was not released independently, the apache2 package can
be considered as the 'dependency'.


 Should we use static build apr (like does webapp) ?
 In all case should the apr for 1.3 must be with
 or without pthread ?

Static apr may be a workaround, but I would avoid that if 
possible. libapr.so should be a 'deterministic' entity, 
if someone has a problem we should know he uses a certain
version.

  4) What about jni support ? 
 
 
 Costin is the one that knows.

It should use libapr.so, the one from Apache2 preferably.
libjkjni.so should be generated - it won't be used from
apache, but from java, and the same version of libjkjni 
can be used with any server ( apacheX, iis, etc ).

In other words - you only compile libjkjni with Apache2
and APR, that's what java will use in all cases. 

Costin


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: mod_jk2 (native2) autoconf preliminary works

2002-05-07 Thread Pier Fumagalli

[EMAIL PROTECTED] [EMAIL PROTECTED] wrote:

 If we use apr, I think ( a bit strongly ) that
 we should use exactly the same library as apache2 does.

If that's provided with Apache 2.0... What if it's not provided with the
web-server (AKA, apache 1.3?)

 APR libs should/could be installed in /usr/lib, /usr/include,
 and considered 'system' ( like glib, qt, nspr, etc ).
 If you build a non-threaded version, it shouldn't be
 called libapr.so in any case.

I strongly disagree with that, considering the bazillion of options that you
have in building APR, and the different features that the library _can_
support (but doesn't all times)...

Even when building Apache 2.0 the APR library is built differently depending
on _how_ you build your Apache 2.0...

Consider that all other projects using them are building APR in their
sources as Apache 2.0 and WebApp does (namely, SubVersion and in the future
PostGreSQL)...

 Also I think the version that comes with Apache2's
 binary is to be considered the 'reference' - since Apr
 was not released independently, the apache2 package can
 be considered as the 'dependency'.

It has never been released indipendently because of the API changes that
(are still) going on to some extent... Look at the APR_ATOMICS, or the
locking which got completely rewritten few months ago...

Should we use static build apr (like does webapp) ?
In all case should the apr for 1.3 must be with
or without pthread ?
 
 Static apr may be a workaround, but I would avoid that if
 possible. libapr.so should be a 'deterministic' entity,
 if someone has a problem we should know he uses a certain
 version.

I believe that the dynamic build of libapr is better if you have plugins
that your code needs to read: when you compile those, you link them against
a library, rather than to a binary (which you can't easily do anyway)...

Pier


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: mod_jk2 (native2) autoconf preliminary works

2002-05-07 Thread jean-frederic clere

[EMAIL PROTECTED] wrote:
 On Tue, 7 May 2002, jean-frederic clere wrote:
 
 
1) What about moving scripts from jk/native to
   just jk ? It avoid duplicate between native
   and native2.

That may bring problems: the configure.in normaly contains the files you want to 
generate.
 
 
 IMHO autoconf is justified only for jk2/apache1.3 ( eventually ).
 But if we decide to use it for apache2 and jni - then probably
 that may be a good idea. 
 
 
 
2) What should be done for APR in Apache 1.3 ?
   Should we use external shared apr lib ?

That is probably the best.
 
 
 Building mod_jk without APR is another option here.
 ( i.e. only with socket and what was in jk1 ).
 
 If we use apr, I think ( a bit strongly ) that 
 we should use exactly the same library as apache2 does.
 
 APR libs should/could be installed in /usr/lib, /usr/include,
 and considered 'system' ( like glib, qt, nspr, etc ). 
 If you build a non-threaded version, it shouldn't be 
 called libapr.so in any case.

But we have to deliver the apr.so corresponding to mod_jk.so.

Pier is right... That is more easy to link apr staticly to mod_jk. Having to 
deliver 2 files instead 1 will only bring more problems.

 
 Also I think the version that comes with Apache2's
 binary is to be considered the 'reference' - since Apr
 was not released independently, the apache2 package can
 be considered as the 'dependency'.

We need one mod_jk.so for each version of apache2.

 
 
 
   Should we use static build apr (like does webapp) ?
   In all case should the apr for 1.3 must be with
   or without pthread ?

 
 Static apr may be a workaround, but I would avoid that if 
 possible. libapr.so should be a 'deterministic' entity, 
 if someone has a problem we should know he uses a certain
 version.
 
 
4) What about jni support ? 
   

Costin is the one that knows.
 
 
 It should use libapr.so, the one from Apache2 preferably.
 libjkjni.so should be generated - it won't be used from
 apache, but from java, and the same version of libjkjni 
 can be used with any server ( apacheX, iis, etc ).
 
 In other words - you only compile libjkjni with Apache2
 and APR, that's what java will use in all cases. 
 
 Costin
 
 
 --
 To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
 For additional commands, e-mail: mailto:[EMAIL PROTECTED]
 
 
 




--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




RE: mod_jk2 (native2) autoconf preliminary works

2002-05-07 Thread GOMEZ Henri

 
 1) What about moving scripts from jk/native to
just jk ? It avoid duplicate between native
and native2.

That may bring problems: the configure.in normaly contains the 
files you want to 
generate.

Ok, I keep 2 set of files.

 2) What should be done for APR in Apache 1.3 ?
Should we use external shared apr lib ?

That is probably the best.

Good, it's allready available as shared lib 
with pthread support ;)

Apache 1.3 on Linux will need to have LoadLibrary added,
to avoid core dump (damn't ld loader)

Should we use static build apr (like does webapp) ?
In all case should the apr for 1.3 must be with
or without pthread ?

1.3 needs threads on win32 at least.

 3) Who could take a look at Makefile I'll commit for 
static mod_jk2 built ?

I will try.

I hope to be able to commit it today, it's mainly
your own from native


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




RE: mod_jk2 (native2) autoconf preliminary works

2002-05-07 Thread GOMEZ Henri

I must say I don't like autoconf too much :-)

Ditto, ant is better than m4 but we couldn't ask
people to have a jvm+ant+... to build native code ;(

But I know many people find it easier, so I won't opose
this.

Thanks and JF is a great specialist of autoconf

At the moment the compilation of jk2 is controlled by 
4-5 'defines', easy to include in a build.properties
( which is used by both Ant-based and Makefile-based
builds ). In addition, for Apache2's mod_jk2 we don't
need autoconf - in fact I'm pretty convinced we shouldn't
use it.

autoconf chould just detect apxs location and grab java 
include (jni)

Assume you install an apache2 binary, compiled with a certain
type of locking, shm, etc ( the stuff that is detected/selected
 at compile time on the build machine ). It can be very bad
if mod_jk2 detects/selects different options, strange bugs 
will happen. And it's a waste of time, the information is 
already available in the build/ dir of apache2.

Please try first the Makefile in jk/native2. If it doesn't
fit your needs, I'm ok with an autoconf.

makefile.apxs allready works on native2 for apache 2.0
and apache 1.3 and configure just detect if APR should be
used for apache 1.3.

Also, for building jni you can use the Makefile in jni/,
it requires an apache2 binary to be installed ( or built )
before - to get the libapr.so and includes. 

And it works when apache 2 / apr includes are in /usr/include/apache2
and libapr in /usr/lib

IMHO apr should be used for all system-dependent stuff, 
we shouldn't have to autoconf. 

exact, just have to set apxs location for apache module.
apxs know what to do to build a module, I submitted a 
patch some times ago to make apxs for Apache 2.0 
build modules with many dependants sources file, from
Ralf code in apache 1.3 apxs.
 
As a secondary note, if anyone has some time we should
look at sourceforge's ant-contrib and their CC task and
eventually merge jkant into it, we shouldn't duplicate
the effort. 

Hum, why didn't they include ant-contrib in ant cvs ?

--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




RE: mod_jk2 (native2) autoconf preliminary works

2002-05-07 Thread GOMEZ Henri

But we have to deliver the apr.so corresponding to mod_jk.so.

Exact and and it's not a big problem, if you use packaging
tools like rpm/deb. 

mod_jk will depend on libapr rpm or /usr/lib/libapr.so
I could produce and place both of them in download dir

Pier is right... That is more easy to link apr staticly to 
mod_jk. Having to 
deliver 2 files instead 1 will only bring more problems.

Are you sure ? If there is bug fix in apr, you'll have
to rebuild mod_jk. if you like apr and want it more
widely used, you should consider it like zlib.

 Also I think the version that comes with Apache2's
 binary is to be considered the 'reference' - since Apr
 was not released independently, the apache2 package can
 be considered as the 'dependency'.

We need one mod_jk.so for each version of apache2.

Yep, I'll stick with Apache 2.0 release (alpha/beta/GA).


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: mod_jk2 (native2) autoconf preliminary works

2002-05-07 Thread costinm

On Tue, 7 May 2002, Pier Fumagalli wrote:

 [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:
 
  If we use apr, I think ( a bit strongly ) that
  we should use exactly the same library as apache2 does.
 
 If that's provided with Apache 2.0... What if it's not provided with the
 web-server (AKA, apache 1.3?)

We either don't use APR, or use the APR that is included with Apache2.0.

For our purpose, that's the only 'stable' APR we can refer to, otherwise
we'll be in a maintainance nightmare where everyone will have his
own version/variation of APR.

But not using APR with Apache1.3 is another choice - using 'native'
apache1.3 pools for example instead of APR pools, native apache1.3
maps, etc will be even slightly better ( and using the same code
as jk1 will be good too )


  APR libs should/could be installed in /usr/lib, /usr/include,
  and considered 'system' ( like glib, qt, nspr, etc ).
  If you build a non-threaded version, it shouldn't be
  called libapr.so in any case.
 
 I strongly disagree with that, considering the bazillion of options that you
 have in building APR, and the different features that the library _can_
 support (but doesn't all times)...
 
 Even when building Apache 2.0 the APR library is built differently depending
 on _how_ you build your Apache 2.0...

Yes - that's the main reason for using a single libapr.so. 

If you have 2 programs using different libapr.so, say with different
locking mechanisms - they'll not work togheter, each will use 
a different lock.


 It has never been released indipendently because of the API changes that
 (are still) going on to some extent... Look at the APR_ATOMICS, or the
 locking which got completely rewritten few months ago...

The version that was shiped with Apache2.0 is stable and I think
that's what we should use with jk2. 

We may have to change our code when Apache2.1 is released - 
but coding against one API in jk2 ( i.e. APR-head ) and using
it with Apache2 ( with another APR API ) is looking for trouble.

The idea that you can release a product without some 
parts still changing is crazy. I understand Apache2's APR
is not called APR1.0 because people don't want to support
that particular API in future - but we can't ship 
jk2 with dependencies on APR-head ( whatever that is ).

Even if APR1.0 is released, we should use it only when 
a stable release of Apache2.x with APR1.0 is made.

  Static apr may be a workaround, but I would avoid that if
  possible. libapr.so should be a 'deterministic' entity,
  if someone has a problem we should know he uses a certain
  version.
 
 I believe that the dynamic build of libapr is better if you have plugins
 that your code needs to read: when you compile those, you link them against
 a library, rather than to a binary (which you can't easily do anyway)...

I believe the main benefit of using shared libraries is not saving 
memory, but having consistency - the same code will be used in 
Apache2 and jk2. You can't get into a situation when Apache2 is 
locking in one way, and jk2 in another way.

Costin



--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: mod_jk2 (native2) autoconf preliminary works

2002-05-07 Thread costinm

On Tue, 7 May 2002, jean-frederic clere wrote:

  APR libs should/could be installed in /usr/lib, /usr/include,
  and considered 'system' ( like glib, qt, nspr, etc ). 
  If you build a non-threaded version, it shouldn't be 
  called libapr.so in any case.
 
 But we have to deliver the apr.so corresponding to mod_jk.so.
 
 Pier is right... That is more easy to link apr staticly to mod_jk. Having to 
 deliver 2 files instead 1 will only bring more problems.

If you use Apache2 with mod_jk.so, then you _have_ a version of 
libapr.so. Having 2 variations of the apr code will bring more problems.

If you don't use Apache2, jk2 will require you install a
libapr.so - the same version that is shiped/taged with Apache2.
First, you may install apache2 later :-)
And second, that's the only stable/tested/deterministic
 version of APR that exist. If APR1.0 is released in the meantime,
we'll have to decide what to do, but I hope an Apache2.1 will
be released at that time too.

If we would use Glib/Qt/NSPR - we would use the same mechanism,
you would install one of those libarary ( each having one common
goal with APR - of shielding you against OS-specific code ).


  Also I think the version that comes with Apache2's
  binary is to be considered the 'reference' - since Apr
  was not released independently, the apache2 package can
  be considered as the 'dependency'.
 
 We need one mod_jk.so for each version of apache2.

Of course. But mod_jk for Apache1.3 should use the same 
version of APR as mod_jk for Apache2.

And preferably the same binary. Apache1.3 doesn't include
apr, so we can treat libapr as any other external library
that a module depends on.

Same for IIS - apr.dll from Apache2 is the stable/tested
version, that's the API we use in jk2 until another stable
release of apr is available. 

It may be tough to require IIS users to install Apache2,
since apr.dll is not distributed separately ( but I can live
with that :-). So we may have to include apr.dll and the
headers in the jk distribution for IIS.


That's my opinion at least - I don't see myself using/supporting
a system where diferent components use different variation of
a library. Autoconf is not a deterministic process - especially
if you use a binary distribution, where the binaries may have been
built on different machine. 

Costin



--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




RE: mod_jk2 (native2) autoconf preliminary works

2002-05-07 Thread costinm

On Tue, 7 May 2002, GOMEZ Henri wrote:

 I must say I don't like autoconf too much :-)
 
 Ditto, ant is better than m4 but we couldn't ask
 people to have a jvm+ant+... to build native code ;(

I agree - but doing autoconf twice ( once in APR, once
for jk ) is _bad_. Not only because it's double-ugly, but
because it can result in inconsistencies.

If you have APR built once, all you need is a Makefile.
I already added Makefiles for JNI and Apache2, for
IIS we can use the DSP. Apache13 is the only open issue,
and I think a Makefile using APXS will be the best solution,
plus using the APR detection results.

As I said, I'm happy with any other tool that simplifies the
life of other people.

 autoconf chould just detect apxs location and grab java 
 include (jni)

JAVA_HOME is what's typically used to locate java.

And setting one env variable ( or editing build.properties-like
file ) is trivial and common practice for jakarta projects.
( curently you have to pass options or edit Makefile, but the
settings can easily go in a build.properties include ).


 makefile.apxs allready works on native2 for apache 2.0
 and apache 1.3 and configure just detect if APR should be
 used for apache 1.3.

That's perfect. Just make sure it sets the defines that we
need ( that select what we want ).


 And it works when apache 2 / apr includes are in /usr/include/apache2
 and libapr in /usr/lib

Perfect.


 As a secondary note, if anyone has some time we should
 look at sourceforge's ant-contrib and their CC task and
 eventually merge jkant into it, we shouldn't duplicate
 the effort. 
 
 Hum, why didn't they include ant-contrib in ant cvs ?

I think it's sometimes easier to work on sourceforge. Without
Jon and politics. 


Costin


--
To unsubscribe, e-mail:   mailto:[EMAIL PROTECTED]
For additional commands, e-mail: mailto:[EMAIL PROTECTED]




Re: mod_jk2 (native2) autoconf preliminary works

2002-05-07 Thread Pier Fumagalli

[EMAIL PROTECTED] [EMAIL PROTECTED] wrote:
 On Tue, 7 May 2002, Pier Fumagalli wrote:
 
 [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:
 
 If we use apr, I think ( a bit strongly ) that
 we should use exactly the same library as apache2 does.
 
 If that's provided with Apache 2.0... What if it's not provided with the
 web-server (AKA, apache 1.3?)
 
 We either don't use APR, or use the APR that is included with Apache2.0.

So, you'd better not going to use APR at all, because if you're building a
module for Apache 1.3, and you link against an APR who has been compiled for
an Apache 2.0 server with the Worker MPM, you're down in troubles...

 For our purpose, that's the only 'stable' APR we can refer to, otherwise
 we'll be in a maintainance nightmare where everyone will have his
 own version/variation of APR.

The stable version of APR are _there_... The stable version of APR are
all in CVS, and all carry a tag... Simply because noone ever rolled a source
tarball, that doesn't mean that you can't identify what's stable or not...

 But not using APR with Apache1.3 is another choice - using 'native'
 apache1.3 pools for example instead of APR pools, native apache1.3
 maps, etc will be even slightly better ( and using the same code
 as jk1 will be good too )

That's a choice I can't make, but as I don't consider myself as a JK
committer, I'm not going to comment...

I'm just pointing out that if you want to use APR, there is one easy way
to do it (probably the right way to do it), and several other more
difficult (and probably some even wrong)... Just consider the fact that
it's more than 1 year that I'm using that code, and I know every single line
of C code that is in that repository

 APR libs should/could be installed in /usr/lib, /usr/include,
 and considered 'system' ( like glib, qt, nspr, etc ).
 If you build a non-threaded version, it shouldn't be
 called libapr.so in any case.
 
 I strongly disagree with that, considering the bazillion of options that you
 have in building APR, and the different features that the library _can_
 support (but doesn't all times)...
 
 Even when building Apache 2.0 the APR library is built differently depending
 on _how_ you build your Apache 2.0...
 
 Yes - that's the main reason for using a single libapr.so.
 
 If you have 2 programs using different libapr.so, say with different
 locking mechanisms - they'll not work togheter, each will use
 a different lock.

Do _you_ know how DYLD loading works? You can have 2 same exact libraries
called libapr.so and (if your ld.so is not broken) have them to coexist
easily on the same system. That's WHY you don't want to have libapr.so in
/usr/lib, but rather bundled with your application, because if you put it as
a shared library inside some standard OS-location directory, and that's not
the right one you want, you're screwed...

Why do you think all those suckers using APR are embedding it into their
distros? Just because there's not an official tarball that will install
itself in /usr/lib? NO, because _THAT_ is the _WRONG_ approach

 It has never been released indipendently because of the API changes that
 (are still) going on to some extent... Look at the APR_ATOMICS, or the
 locking which got completely rewritten few months ago...
 
 The version that was shiped with Apache2.0 is stable and I think
 that's what we should use with jk2.

You talking about binaries or sources? On sources I agree, on binaries,
well, it depends on _what_ you're building...

 We may have to change our code when Apache2.1 is released -
 but coding against one API in jk2 ( i.e. APR-head ) and using
 it with Apache2 ( with another APR API ) is looking for trouble.

Err, ehemm... That clearly _shows_ that you don't know what's going on in
APR land :) APIs are changing, right, but don't worry because some of the
APIs that were shipped with the current 2.0.35 won't even be there in 2.0.40
or something like that...

There are stuff which are being deprecated and everyone who has a clue
knows they shouldn't be using them... They're there just because of some
legacy code that hasn't been backported yet... An APR 1.0 is close, but if
you want to be so rigid about what the runtime provides you well, then
just go off and don't even think about using it until it's not 1.0 final and
out-of-the-friggin' door... :)

 The idea that you can release a product without some
 parts still changing is crazy. I understand Apache2's APR
 is not called APR1.0 because people don't want to support
 that particular API in future - but we can't ship
 jk2 with dependencies on APR-head ( whatever that is ).

Apache 2.0.36 is shipped in GA on a library which is still changing (and
look, it's approximately 50% of its code)... But goddamit that's the best
web server I've seen so far...

 Even if APR1.0 is released, we should use it only when
 a stable release of Apache2.x with APR1.0 is made.

Ok, I'd give it another 6 months... Why then did you kids just included it
in JK? You