Re: apr/apr-util python dependence

2004-03-08 Thread Noah Misch
On Thu, Mar 04, 2004 at 04:03:29PM -0800, [EMAIL PROTECTED] wrote:
 
 I would double-check this personally.  I just recently finished a project that
 asked customers to build an Apache module that depended on autoconf, automake,
 and libtool.  Even though I ran the equivalent of buildconf, the users needed 
 to
 have all three tools.  That may have been because of automake, but I can't be
 sure and no longer have the project to double check it.
 
 Ryan

It sounds to me like automake is behind that.  An automake-generated Makefile.in
includes rules for rebuilding configure, Makefile.in, etc.  You can disable
those rules for casual users by adding AM_MAINTAINER_MODE to configure.in.  Of
course, if your timestamps line up correctly and users don't edit Makefile.am or
configure.in, it shouldn't matter.  Generating a distribution with `make dist'
has always produced for me a tarball independent of all autotools.

If any of the autotools generate build infrastructure that requires an
installation of the tool to do a plain build, that's a bug.  Each is designed to
generate shell scripts (autoconf, libtool) or simple, in terms of `make'
features used, Makefiles (automake) to do all dirty work on the target system.

-Noah


Re: apr/apr-util python dependence

2004-03-05 Thread rbb

I would double-check this personally.  I just recently finished a project that
asked customers to build an Apache module that depended on autoconf, automake,
and libtool.  Even though I ran the equivalent of buildconf, the users needed to
have all three tools.  That may have been because of automake, but I can't be
sure and no longer have the project to double check it.

Ryan

Quoting Justin Erenkrantz [EMAIL PROTECTED]:

 --On Thursday, March 4, 2004 10:58 AM -0800 Aaron Bannert [EMAIL PROTECTED] 
 wrote:
 
  On Fri, Feb 20, 2004 at 11:16:10AM -0800, Justin Erenkrantz wrote:
  It'd be trivial to have minotaur run ./buildconf before producing the
  snapshots.  This would lower the barrier of entry on the snapshots:
  you'd  no longer need autoconf, libtool, etc to use those.  -- justin
 
  Isn't libtool still needed for the build process? I don't see how running
  ./buildconf would eliminate the libtool dependency.
 
 Uh, no.  When you run buildconf, libtool copies all of its files into the 
 tree.  It's self-contained at that point.  -- justin
 





Re: apr/apr-util python dependence

2004-03-05 Thread Sander Striker
On Fri, 2004-03-05 at 01:03, [EMAIL PROTECTED] wrote:
 I would double-check this personally.  I just recently finished a project that
 asked customers to build an Apache module that depended on autoconf, automake,
 and libtool.  Even though I ran the equivalent of buildconf, the users needed 
 to
 have all three tools.  That may have been because of automake, but I can't be
 sure and no longer have the project to double check it.

When doing releases, we take care of the buildconf step, specifically to
make the tarball selfcontained.  It should be rare for tarball consumers
to have to re-run buildconf (happens when using a wonky libtool with
vendor patches...).  I would have expected more complaints if we
required auto* + libtool on our target platforms.

Sander


Re: apr/apr-util python dependence

2004-03-04 Thread Aaron Bannert
On Fri, Feb 20, 2004 at 11:16:10AM -0800, Justin Erenkrantz wrote:
 It'd be trivial to have minotaur run ./buildconf before producing the 
 snapshots.  This would lower the barrier of entry on the snapshots: you'd 
 no longer need autoconf, libtool, etc to use those.  -- justin

Isn't libtool still needed for the build process? I don't see how running
./buildconf would eliminate the libtool dependency.

-aaron



Re: apr/apr-util python dependence

2004-03-04 Thread Justin Erenkrantz
--On Thursday, March 4, 2004 10:58 AM -0800 Aaron Bannert [EMAIL PROTECTED] 
wrote:

On Fri, Feb 20, 2004 at 11:16:10AM -0800, Justin Erenkrantz wrote:
It'd be trivial to have minotaur run ./buildconf before producing the
snapshots.  This would lower the barrier of entry on the snapshots:
you'd  no longer need autoconf, libtool, etc to use those.  -- justin
Isn't libtool still needed for the build process? I don't see how running
./buildconf would eliminate the libtool dependency.
Uh, no.  When you run buildconf, libtool copies all of its files into the 
tree.  It's self-contained at that point.  -- justin


Re: apr/apr-util python dependence

2004-02-23 Thread Ben Laurie
Justin Erenkrantz wrote:
--On Friday, February 20, 2004 5:42 PM + Ben Laurie 
[EMAIL PROTECTED] wrote:

Or even platforms you have heard of: within hours of this change I had
complaints from people who couldn't build snapshots in order to try out
mod_log_forensic...

It'd be trivial to have minotaur run ./buildconf before producing the 
snapshots.  This would lower the barrier of entry on the snapshots: 
you'd no longer need autoconf, libtool, etc to use those.  -- justin

+1!!!



Re: apr/apr-util python dependence

2004-02-22 Thread Patrick Welche
On Sun, Feb 22, 2004 at 12:54:59AM +0100, Sander Striker wrote:
 On Sat, 2004-02-21 at 23:19, Brad Nicholes wrote:
I ran the gen-build.py script to try to understand what it is doing. 
  I don't see how it would fit into the NetWare build process.  The
  NetWare build is completely independant from anything that happens in
  mainstream build process.

Just wondering how ubiquitous mkdep is and whether that would help?

HISTORY
 The mkdep command appeared in 4.3BSD-Tahoe.

(I have a feeling this dependency tracking is an old problem which
must have already been solved, but presumably not in an agn-O.S.-tic way..)

Cheers,

Patrick


Re: apr/apr-util python dependence

2004-02-21 Thread Greg Stein
On Fri, Feb 20, 2004 at 01:12:59PM -0700, Brad Nicholes wrote:
 The way I suspect Greg is heading is that you get a
 ./gen-build.py netware, which can be run on any platform to
 produce the things you need to do the Netware build.  So
 this should be an improvement, since you don't have to move
 files, build a tool, move it back, then build.
 
 OK, now I understand it better.  So I guess it's back to the religious
 battle. ;-)  Python is just yet another build tool that we need to
 install.  But for NetWare, getting rid of the build, copy, run, copy,
 continue build headache is worth it.

I've checked in the modified gen-build.py, but I don't think that will
help you right now since you still have NetWare-specific makefiles and
other build bits.

I have also committed a fix to stop doing the gen-uri-delims stuff, which
I think was your real headache. We now just directly encode the tables in
apr_uri.c. Once the Windows build (any what others?) stop trying to build
gen_uri_delims.c/.dsp, then those files can be removed from apr-util/uri/.

The next step will be to determine how gen-build.py can build NetWare
build bits for you. I'm not familiar with the NetWare build system, but
will look at those custom Makefiles that you have checked in. We should be
able to do something.

Please let me know where your pain points are now.

Thanks,
-g

-- 
Greg Stein, http://www.lyra.org/


Re: apr/apr-util python dependence

2004-02-21 Thread Brad Nicholes
  I ran the gen-build.py script to try to understand what it is doing. 
I don't see how it would fit into the NetWare build process.  The
NetWare build is completely independant from anything that happens in
mainstream build process.  Now that you have converted the
gen-uri-delims into a static table, the only other build problems that
we have are in httpd with the chartables.c and test_chars.h.  Since
these files are also generated by utilities, we still have the
build,copy,run,copy,build problem.  

Brad

Brad Nicholes
Senior Software Engineer
Novell, Inc., the leading provider of Net business solutions
http://www.novell.com 

 Greg Stein [EMAIL PROTECTED] Friday, February 20, 2004 5:49:36 PM

On Fri, Feb 20, 2004 at 01:12:59PM -0700, Brad Nicholes wrote:
 The way I suspect Greg is heading is that you get a
 ./gen-build.py netware, which can be run on any platform to
 produce the things you need to do the Netware build.  So
 this should be an improvement, since you don't have to move
 files, build a tool, move it back, then build.
 
 OK, now I understand it better.  So I guess it's back to the
religious
 battle. ;-)  Python is just yet another build tool that we need to
 install.  But for NetWare, getting rid of the build, copy, run,
copy,
 continue build headache is worth it.

I've checked in the modified gen-build.py, but I don't think that will
help you right now since you still have NetWare-specific makefiles and
other build bits.

I have also committed a fix to stop doing the gen-uri-delims stuff,
which
I think was your real headache. We now just directly encode the tables
in
apr_uri.c. Once the Windows build (any what others?) stop trying to
build
gen_uri_delims.c/.dsp, then those files can be removed from
apr-util/uri/.

The next step will be to determine how gen-build.py can build NetWare
build bits for you. I'm not familiar with the NetWare build system,
but
will look at those custom Makefiles that you have checked in. We should
be
able to do something.

Please let me know where your pain points are now.

Thanks,
-g

-- 
Greg Stein, http://www.lyra.org/


Re: apr/apr-util python dependence

2004-02-21 Thread Sander Striker
On Sat, 2004-02-21 at 23:19, Brad Nicholes wrote:
   I ran the gen-build.py script to try to understand what it is doing. 
 I don't see how it would fit into the NetWare build process.  The
 NetWare build is completely independant from anything that happens in
 mainstream build process.

The idea is that these hand maintained files also go away and are
replaced with something autogenerenated, just like the windows
.dsp/.vcproj files.

 Now that you have converted the gen-uri-delims into a static table,
 the only other build problems that we have are in httpd with the
 chartables.c and test_chars.h.  Since
 these files are also generated by utilities, we still have the
 build,copy,run,copy,build problem.  

One step at a time.  Lets get APR sorted first, then look into
httpd ;).  Hopefully this last step can go away for you too.

Sander


Re: apr/apr-util python dependence

2004-02-20 Thread Roy T. Fielding
However I completely disagree that Python (or Perl or PHP) is
a good choice for use in build systems.
As part of the configure process, I would agree with you, but as part 
of
buildconf, I disagree--not everyone needs to run buildconf--only
developers, and if you're a developer, it's *really* not asking that
much to have Python on your dev box.
Sure it is.  If I wasn't so busy I would have vetoed the change on
the grounds that it causes httpd to no longer be buildable by developers
on the Cray MP.  And no, I don't care whether anyone else thinks that
is an important requirement.  Creating entry barriers is what prevents
development on new platforms that you haven't even heard of yet.
We haven't been using sh/sed/awk as our build platform because we
thought those were good languages.  I'm sorry, but being too busy to
maintain the existing scripts is no excuse for rewriting them in a
less portable language.  As soon as someone has the time to write
it in a portable language, the python should be removed.
So no... switching to a shell script would not be beneficial, as it 
would
cut off future capabilities.
I doubt that.  .dsp and .dsw files are just other text files
which can easily be created using sh, grep, sed, tr etc.
Ick. Ick ick ick ick ick.  Easily is obviously a subjective term.  
Who
wants to write (and, more importantly, *maintain*) hundreds (or
thousands) of lines of /bin/sh code?  Not to mention the fact that
Python can be much more compact than /bin/sh after you hit a certain
level of complexity.
Irrelevant to the task at hand.
Anyway, I suppose that agreeing to disagree may be for the best here.
Subversion has required python to run autogen.sh for years now, and 
it's
been great for us.
Subversion has zero deployment when compared to httpd.  It should
be learning lessons from httpd's history, not casting it aside.
Roy


Re: apr/apr-util python dependence

2004-02-20 Thread Joe Orton
On Thu, Feb 19, 2004 at 05:55:13PM -0800, Roy T. Fielding wrote:
 However I completely disagree that Python (or Perl or PHP) is
 a good choice for use in build systems.
 
 As part of the configure process, I would agree with you, but as part 
 of
 buildconf, I disagree--not everyone needs to run buildconf--only
 developers, and if you're a developer, it's *really* not asking that
 much to have Python on your dev box.
 
 Sure it is.  If I wasn't so busy I would have vetoed the change on
 the grounds that it causes httpd to no longer be buildable by developers
 on the Cray MP.  And no, I don't care whether anyone else thinks that
 is an important requirement.  Creating entry barriers is what prevents
 development on new platforms that you haven't even heard of yet.

httpd is still just as buildable on such platforms regardless of
gen-build.py: from the release tarballs.  Building from a CVS checkout
cannot be done without extra tools, but that has always been true in
2.0: you need libtool and autoconf (not to mention the CVS client). 
Hell, autoconf itself has required Perl and GNU m4 for the last
three-odd years.

joe


Re: apr/apr-util python dependence

2004-02-20 Thread Sascha Schumann
A shell script generating build-exports.mk is attached.

The implementation lacks cyclic reference detection (some
header files point to each other).  This can be resolved by
splitting the 2-3 header files though.

- Sascha



gen-build.sh
Description: Bourne shell script
  atomic/{platform}
  dso/{platform}
  file_io/{platform}
  locks/{platform}
  memory/{platform}
  misc/{platform}
  mmap/{platform}
  network_io/{platform}
  passwd
  poll/{platform}
  random/{platform}
  shmem/{platform}
  strings
  support/{platform}
  tables
  threadproc/{platform}
  time/{platform}
  user/{platform}

include/


Re: apr/apr-util python dependence

2004-02-20 Thread Sascha Schumann
Please get your facts straight.

  httpd is still just as buildable on such platforms regardless of
  gen-build.py: from the release tarballs.  Building from a CVS checkout
  cannot be done without extra tools, but that has always been true in
  2.0: you need libtool and autoconf (not to mention the CVS client).
  Hell, autoconf itself has required Perl and GNU m4 for the last
  three-odd years.

autoconf does not use perl.

You are probably thinking of automake which indeed depends on
perl.  automake has never been used in httpd.

(autoconf contains supplemental tools (autoscan.pl) for
upgrades between major autoconf releases.  These are not part
of the normal toolchain.)

 Then the decision is made right there. Apache requires libtool to build
 from CVS. Libtool Requires Perl.

libtool does not require perl.

- Sascha


Re: apr/apr-util python dependence

2004-02-20 Thread Joe Orton
On Fri, Feb 20, 2004 at 11:27:29AM +0100, Sascha Schumann wrote:
 Please get your facts straight.
 
   httpd is still just as buildable on such platforms regardless of
   gen-build.py: from the release tarballs.  Building from a CVS checkout
   cannot be done without extra tools, but that has always been true in
   2.0: you need libtool and autoconf (not to mention the CVS client).
   Hell, autoconf itself has required Perl and GNU m4 for the last
   three-odd years.
 
 autoconf does not use perl.

It has done since 2.50 AFAIK: from the README in 2.59:


Producing configuration scripts using Autoconf requires GNU M4 and
Perl.  You must install GNU M4 (version 1.4 or later) and Perl (5.005_03
or later) before configuring Autoconf, so that Autoconf's configure
script can find them.  The configuration scripts produced by Autoconf
are self-contained, so their users do not need to have Autoconf (or
GNU M4, Perl etc.).


joe


Re: apr/apr-util python dependence

2004-02-20 Thread Sascha Schumann
  autoconf does not use perl.

 It has done since 2.50 AFAIK: from the README in 2.59:

Fortunately, one can choose not to use the horrible autoconf
2.5x.  The sane versions up to 2.13 don't require perl for
buildconf'ing APR or httpd.

- Sascha


Re: apr/apr-util python dependence

2004-02-20 Thread Patrick Welche
On Fri, Feb 20, 2004 at 11:23:02AM +0100, Sascha Schumann wrote:
 A shell script generating build-exports.mk is attached.
 
 The implementation lacks cyclic reference detection (some
 header files point to each other).  This can be resolved by
 splitting the 2-3 header files though.

You beat me to it.. I was just wondering how to do the array of
include files which an include file includes, as per the python
original. I reached the conclusion that that is what make is for
isn't it? Is there a difference between

header.h:   head1.h head2.h

foo.c:  header.h

and

foo.c:  header.h head1.h head2.h

? I don't think so, and it removes the most fiddly bit of the
original.. (Also I ended up using awk which you managed to do
without ;) )

Cheers,

Patrick


Re: apr/apr-util python dependence

2004-02-20 Thread Bill Stoddard
Roy T. Fielding wrote:
However I completely disagree that Python (or Perl or PHP) is
a good choice for use in build systems.

As part of the configure process, I would agree with you, but as part of
buildconf, I disagree--not everyone needs to run buildconf--only
developers, and if you're a developer, it's *really* not asking that
much to have Python on your dev box.

Sure it is.  If I wasn't so busy I would have vetoed the change on
the grounds that it causes httpd to no longer be buildable by developers
on the Cray MP.  And no, I don't care whether anyone else thinks that
is an important requirement.  Creating entry barriers is what prevents
development on new platforms that you haven't even heard of yet.
Pay attention to keeping entry barriers low. This is a -really- important open source development principle 
that, by my observations, is under appreciated by most folks. That is my -single- biggest complaint about our 
use of libtool/autoconf.  Let's not further complicate things further by propagating the languages required to 
do a build.

We haven't been using sh/sed/awk as our build platform because we
thought those were good languages.  I'm sorry, but being too busy to
maintain the existing scripts is no excuse for rewriting them in a
less portable language.  As soon as someone has the time to write
it in a portable language, the python should be removed.
+1
Bill


Re: apr/apr-util python dependence

2004-02-20 Thread Sascha Schumann
On Fri, 20 Feb 2004, Patrick Welche wrote:

 On Fri, Feb 20, 2004 at 11:23:02AM +0100, Sascha Schumann wrote:
  A shell script generating build-exports.mk is attached.
 
  The implementation lacks cyclic reference detection (some
  header files point to each other).  This can be resolved by
  splitting the 2-3 header files though.

 You beat me to it.. I was just wondering how to do the array of
 include files which an include file includes, as per the python
 original. I reached the conclusion that that is what make is for
 isn't it? Is there a difference between

Nope.  I suppose the author of the python script 'flattened'
the dependency graph to avoid cyclic dependencies:

gen-build.py:

foo.c: bar.h baz.h

gen-build.sh:

foo.c: bar.h

bar.h: baz.h

baz.h: bar.h

GNU make notices this and produces a warning.

This problem can be either resolved by splitting the header
files (I can do that if noone objects) or adding logic to
gen-build.sh.

- Sascha


Re: apr/apr-util python dependence

2004-02-20 Thread Greg Stein
On Fri, Feb 20, 2004 at 02:17:32AM -0700, Paul Querna wrote:
 
  httpd is still just as buildable on such platforms regardless of
  gen-build.py: from the release tarballs.  Building from a CVS checkout
  cannot be done without extra tools, but that has always been true in
  2.0: you need libtool and autoconf (not to mention the CVS client). 
  Hell, autoconf itself has required Perl and GNU m4 for the last
  three-odd years.
 
 Then the decision is made right there. Apache requires libtool to build
 from CVS. Libtool Requires Perl.  Instead of writing it in Python, do it
 in Perl.

Because I think the people maintaining APR would prefer Python over Perl.

And the notion of well, now it doesn't build on my platform is quite
suspect. The output of the process (run at buildconf time) is
build-outputs.mk. Just copy that from *anywhere* to your target platform.

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/


RE: apr/apr-util python dependence

2004-02-20 Thread Sander Striker
 From: Greg Stein [mailto:[EMAIL PROTECTED]
 Sent: Friday, February 20, 2004 6:00 PM

 And the notion of well, now it doesn't build on my platform is quite
 suspect. The output of the process (run at buildconf time) is
 build-outputs.mk. Just copy that from *anywhere* to your target platform.

We could opt to put the output of the process under version control,
if that makes it easier?

Sander


Re: apr/apr-util python dependence

2004-02-20 Thread Ben Laurie
Roy T. Fielding wrote:
However I completely disagree that Python (or Perl or PHP) is
a good choice for use in build systems.

As part of the configure process, I would agree with you, but as part of
buildconf, I disagree--not everyone needs to run buildconf--only
developers, and if you're a developer, it's *really* not asking that
much to have Python on your dev box.

Sure it is.  If I wasn't so busy I would have vetoed the change on
the grounds that it causes httpd to no longer be buildable by developers
on the Cray MP.  And no, I don't care whether anyone else thinks that
is an important requirement.  Creating entry barriers is what prevents
development on new platforms that you haven't even heard of yet.
Or even platforms you have heard of: within hours of this change I had 
complaints from people who couldn't build snapshots in order to try out 
mod_log_forensic...

Cheers,
Ben.


Re: apr/apr-util python dependence

2004-02-20 Thread Jim Jagielski
Ben Laurie wrote:
 
 Or even platforms you have heard of: within hours of this change I had 
 complaints from people who couldn't build snapshots in order to try out 
 mod_log_forensic...
 

I hate to chime in here, but I must agree. Things have certainly
come a long way when the build/configure system tried to
be as LCD (lowest common denominator) as possible.

If we require all this extra stuff, then, at least to my
mind, it means that we need to rethink not just patch.

-- 
===
   Jim Jagielski   [|]   [EMAIL PROTECTED]   [|]   http://www.jaguNET.com/
  A society that will trade a little liberty for a little order
 will lose both and deserve neither - T.Jefferson


Re: apr/apr-util python dependence

2004-02-20 Thread Greg Stein
On Fri, Feb 20, 2004 at 01:10:06PM -0500, Jim Jagielski wrote:
 Ben Laurie wrote:
  
  Or even platforms you have heard of: within hours of this change I had 
  complaints from people who couldn't build snapshots in order to try out 
  mod_log_forensic...
 
 I hate to chime in here, but I must agree. Things have certainly
 come a long way when the build/configure system tried to
 be as LCD (lowest common denominator) as possible.

And it was a recursive make solution which we're trying to fix. If you can
come up with an LCD approach which has a single top-level Makefile, then
please feel free.

 If we require all this extra stuff, then, at least to my
 mind, it means that we need to rethink not just patch.

Oh, come on. For somebody building straight from CVS, to add a Python
dependence? Okay, so it caught a few people unawares. We make changes like
that all the time. But this one is not hard to solve.

In any case, this whole notion of rewrite as a shell script just isn't
going to fly. There is a lot more work that needs to happen, which I
really can't see a shell script handling. As Joe Orton rightly pointed
out, the build-outputs.mk output is *NOT* platform independent, yet it
needs to be. We create one tarball and it goes to everybody, so that
tarball (which includes build-outputs.mk) must be workable for everybody.
Today, it encodes the platform of the person who generated the file.

I just updated the script to generate output for all platforms (with the
intent of the main Makefile selecting the right platform), but it isn't
quite right. For example, it assumed that os2 wanted all the unix objects
(in addition to the os2-specific objects), but that isn't right: it only
wants SUBDIR/unix/ for when SUBDIR/os2/ is not specified. So I've got some
logic to rework.

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/


Re: apr/apr-util python dependence

2004-02-20 Thread Greg Stein
On Fri, Feb 20, 2004 at 06:12:07PM +0100, Sander Striker wrote:
  From: Greg Stein [mailto:[EMAIL PROTECTED]
  Sent: Friday, February 20, 2004 6:00 PM
 
  And the notion of well, now it doesn't build on my platform is quite
  suspect. The output of the process (run at buildconf time) is
  build-outputs.mk. Just copy that from *anywhere* to your target platform.
 
 We could opt to put the output of the process under version control,
 if that makes it easier?

We don't put generated files in source control. We simply specify the
toolchain that CVS developers need to have. That has always been a bit
higher than tarball developers/users need to have.

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/


Re: apr/apr-util python dependence

2004-02-20 Thread Brad Nicholes
   I am still confused as to what this all means.  What do you all mean
by Platform.  I keep reading these email messages and it sounds like
Platform == Linux.  NetWare doesn't use buildconf but yet we still
have to generate the files.  We also don't build directly on the NetWare
platform, we build on Windows and then copy to the the NLMs to NetWare. 
When we generate the files, we have to first build the utility, copy it
to NetWare, run it and then copy the results back to windows and
continue with the build.  With the way that it was done before python,
even though it was a pain, we could still build the utility and run it
on NetWare.  Python doesn't run on NetWare so we have no hope of ever
running the script to generate the file.  Our only option is to check
the file into CVS and go through more pain trying to manually keep the
file in sync.   Are you going to keep gen_uri_delims.c in sync with
gen-uri-delims.py so those of us that can't run python can still build? 
A shell script isn't possible either, since NetWare also doesn't have a
shell.  Our options are C, Perl or PHP.

Brad

Brad Nicholes
Senior Software Engineer
Novell, Inc., the leading provider of Net business solutions
http://www.novell.com 

 Greg Stein [EMAIL PROTECTED] Friday, February 20, 2004 11:38:46 AM

On Fri, Feb 20, 2004 at 06:12:07PM +0100, Sander Striker wrote:
  From: Greg Stein [mailto:[EMAIL PROTECTED] 
  Sent: Friday, February 20, 2004 6:00 PM
 
  And the notion of well, now it doesn't build on my platform is
quite
  suspect. The output of the process (run at buildconf time) is
  build-outputs.mk. Just copy that from *anywhere* to your target
platform.
 
 We could opt to put the output of the process under version control,
 if that makes it easier?

We don't put generated files in source control. We simply specify the
toolchain that CVS developers need to have. That has always been a bit
higher than tarball developers/users need to have.

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/


Re: apr/apr-util python dependence

2004-02-20 Thread Sander Striker
On Fri, 2004-02-20 at 19:59, Jim Jagielski wrote:
 Greg Stein wrote:
  
   I hate to chime in here, but I must agree. Things have certainly
   come a long way when the build/configure system tried to
   be as LCD (lowest common denominator) as possible.
  
  And it was a recursive make solution which we're trying to fix. If you can
  come up with an LCD approach which has a single top-level Makefile, then
  please feel free.
  
   If we require all this extra stuff, then, at least to my
   mind, it means that we need to rethink not just patch.
  
  Oh, come on. For somebody building straight from CVS, to add a Python
  dependence? Okay, so it caught a few people unawares. We make changes like
  that all the time. But this one is not hard to solve.
  
  In any case, this whole notion of rewrite as a shell script just isn't
  going to fly.
 
 :)
 
 No, I have no solutions, nor did I mean to imply that:
 
 o Such a solution is trivial
 o That the solution used was done with no
   thought of impact to developers.

Thanks Jim, for being explicit with that.

I think this thread needed some of that explicitness,
since it is beginning to show agitation across the board
with the participants.

I think there is a lot of potential to get religous
in this thread, and that is indeed not where we want
to go.

Now, if we were using Subversion I would suggest that
Greg create a branch, code the lot up, and then merge
the final build system back.  Heck, I'll even suggest
that while using CVS.

When a similar build system was introduced for Subversion,
it broke builds for at least some developers.  It took a
bit of effort to get the problems out, but it was worth
it.

If we are going in this direction, and I prefer we do,
(if only for the sake to see where this goes) I'd like
to see it happen on a branch, so that the migration can
be smooth instead of clunky accompagnied with lots of
chagrin.


Sander


Re: apr/apr-util python dependence

2004-02-20 Thread Justin Erenkrantz
--On Friday, February 20, 2004 5:42 PM + Ben Laurie [EMAIL PROTECTED] 
wrote:

Or even platforms you have heard of: within hours of this change I had
complaints from people who couldn't build snapshots in order to try out
mod_log_forensic...
It'd be trivial to have minotaur run ./buildconf before producing the 
snapshots.  This would lower the barrier of entry on the snapshots: you'd no 
longer need autoconf, libtool, etc to use those.  -- justin


Re: apr/apr-util python dependence

2004-02-20 Thread Greg Stein
On Fri, Feb 20, 2004 at 11:50:55AM -0700, Brad Nicholes wrote:
I am still confused as to what this all means.  What do you all mean
 by Platform.  I keep reading these email messages and it sounds like
 Platform == Linux.

The Platform will be NetWare. The gen-build script should be able to
generate the NetWare build items from any platform. Thus, you should be
able to run it on Windows, where you do the rest of your build.

...
 file in sync.   Are you going to keep gen_uri_delims.c in sync with
 gen-uri-delims.py so those of us that can't run python can still build?

I'm going to toss both generation scripts. The need to have a program at
build time was to pick up whether the platform was ASCII or EBCDIC, but we
can easily do that with a #ifdef at compilation time of apr_uri.c. When I
converted gen_uri_delims.c (to simplify the overall build process), I had
not thought about EBCDIC. Jeff reminded me, so my fix was to fix apr_uri
rather than poke at the gen-uri stuff.

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/


Re: apr/apr-util python dependence

2004-02-20 Thread Sander Striker
On Fri, 2004-02-20 at 19:50, Brad Nicholes wrote:
I am still confused as to what this all means.  What do you all mean
 by Platform.  I keep reading these email messages and it sounds like
 Platform == Linux.  NetWare doesn't use buildconf but yet we still
 have to generate the files.  We also don't build directly on the NetWare
 platform, we build on Windows and then copy to the the NLMs to NetWare. 
 When we generate the files, we have to first build the utility, copy it
 to NetWare, run it and then copy the results back to windows and
 continue with the build.  With the way that it was done before python,
 even though it was a pain, we could still build the utility and run it
 on NetWare.  Python doesn't run on NetWare so we have no hope of ever
 running the script to generate the file.  Our only option is to check
 the file into CVS and go through more pain trying to manually keep the
 file in sync.   Are you going to keep gen_uri_delims.c in sync with
 gen-uri-delims.py so those of us that can't run python can still build? 
 A shell script isn't possible either, since NetWare also doesn't have a
 shell.  Our options are C, Perl or PHP.

The way I suspect Greg is heading is that you get a
./gen-build.py netware, which can be run on any platform to
produce the things you need to do the Netware build.  So
this should be an improvement, since you don't have to move
files, build a tool, move it back, then build.

Sander


Re: apr/apr-util python dependence

2004-02-20 Thread Greg Stein
On Fri, Feb 20, 2004 at 01:59:28PM -0500, Jim Jagielski wrote:
...
 No, I have no solutions, nor did I mean to imply that:
 
 o Such a solution is trivial
 o That the solution used was done with no
   thought of impact to developers.

Well, thought *was* applied, but to be honest, I/we obviously we missed
some things. Like Joe's point about platform independence for the output
(my simplest answer is that I didn't run into that with svn since it is
built on top of APR, so there *were* no platform specifics other than the
type of output (e.g. makefile vs dsp)).

The gen-uri-delim was effectively a separate change, and that one forgot
about EBCDIC and also created a pain for Brad's NetWare build.

I'm working on a solution for the former, and have a solution
(to-be-coded) for the latter.

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/


Re: apr/apr-util python dependence

2004-02-20 Thread Paul Querna
On Fri, 2004-02-20 at 12:16, Justin Erenkrantz wrote:
 It'd be trivial to have minotaur run ./buildconf before producing the 
 snapshots.  This would lower the barrier of entry on the snapshots: you'd no 
 longer need autoconf, libtool, etc to use those.  -- justin

+1



Re: apr/apr-util python dependence

2004-02-20 Thread Sander Striker
On Fri, 2004-02-20 at 20:16, Justin Erenkrantz wrote:
 It'd be trivial to have minotaur run ./buildconf before producing the 
 snapshots.  This would lower the barrier of entry on the snapshots: you'd no 
 longer need autoconf, libtool, etc to use those.  -- justin

+1.

Sander



Re: apr/apr-util python dependence

2004-02-20 Thread Brad Nicholes
The way I suspect Greg is heading is that you get a
./gen-build.py netware, which can be run on any platform to
produce the things you need to do the Netware build.  So
this should be an improvement, since you don't have to move
files, build a tool, move it back, then build.

OK, now I understand it better.  So I guess it's back to the religious
battle. ;-)  Python is just yet another build tool that we need to
install.  But for NetWare, getting rid of the build, copy, run, copy,
continue build headache is worth it.

Brad




Brad Nicholes
Senior Software Engineer
Novell, Inc., the leading provider of Net business solutions
http://www.novell.com 


Re: apr/apr-util python dependence

2004-02-18 Thread Justin Erenkrantz
--On Sunday, February 15, 2004 1:06 PM -0500 Jeff Trawick 
[EMAIL PROTECTED] wrote:

I'd guess that a conversion to the less cool but more widely
ported/precompiled/preinstalled P* scripting language would be a rather
quick and would not suffer greatly from uncoolness and would pick up
additional people able and/or willing to maintain it ;)
If you did that, I bet we'd lose people willing to maintain it.  ;-)
And, yes, automake is a dirty word.  I want it very, very far away from any 
projects I work on...  -- justin


Re: apr/apr-util python dependence

2004-02-18 Thread Sascha Schumann
 requiring automake is not something I personally would be excited about...  
 I'd
 like to see how bad a conversion to ordinary sh would turn out..  also, I'd
 guess that a conversion to the less cool but more widely
 ported/precompiled/preinstalled P* scripting language would be a rather quick
 and would not suffer greatly from uncoolness and would pick up additional
 people able and/or willing to maintain it ;)


Remember that the primary focus of a build system is not ease
of maintenance or being written in your preferred scripting
language.

No - the primary focus is being portable.  That is why you
don't see build systems written in Perl, PHP or Python.

- Sascha


Re: apr/apr-util python dependence

2004-02-18 Thread Joe Orton
On Wed, Feb 18, 2004 at 08:22:56AM +0100, Sascha Schumann wrote:
  requiring automake is not something I personally would be excited about...  
  I'd
  like to see how bad a conversion to ordinary sh would turn out..  also, I'd
  guess that a conversion to the less cool but more widely
  ported/precompiled/preinstalled P* scripting language would be a rather 
  quick
  and would not suffer greatly from uncoolness and would pick up additional
  people able and/or willing to maintain it ;)
 
 
 Remember that the primary focus of a build system is not ease
 of maintenance or being written in your preferred scripting
 language.
 
 No - the primary focus is being portable.  That is why you
 don't see build systems written in Perl, PHP or Python.

The subject is whether Python can be required for running buildconf, not
for running configure  make.  I don't see a problem requiring Python
for buildconf.

joe


Re: apr/apr-util python dependence

2004-02-18 Thread Sascha Schumann
 The subject is whether Python can be required for running buildconf, not
 for running configure  make.  I don't see a problem requiring Python
 for buildconf.

The problem with python is that it is an exotic language and
hardly installed anywhere (not everyone runs Linux).  Just
requiring it for a buildconf run seems excessive to me.

Anyway, I have rewritten Perl scripts to reduce buildconf
requirements, doing the same with Python scripts should not
be any harder. :-)

- Sascha


Re: apr/apr-util python dependence

2004-02-18 Thread Greg Stein
On Wed, Feb 18, 2004 at 10:13:51AM +, Joe Orton wrote:
 On Wed, Feb 18, 2004 at 08:22:56AM +0100, Sascha Schumann wrote:
   requiring automake is not something I personally would be excited 
   about...  I'd

I'd -1 it right off the bat. No way on automake.

   like to see how bad a conversion to ordinary sh would turn out..  also, 
   I'd
   guess that a conversion to the less cool but more widely
   ported/precompiled/preinstalled P* scripting language would be a rather 
   quick
   and would not suffer greatly from uncoolness and would pick up additional
   people able and/or willing to maintain it ;)
  
  Remember that the primary focus of a build system is not ease
  of maintenance or being written in your preferred scripting
  language.
  
  No - the primary focus is being portable.  That is why you
  don't see build systems written in Perl, PHP or Python.
 
 The subject is whether Python can be required for running buildconf, not
 for running configure  make.  I don't see a problem requiring Python
 for buildconf.

Exactly. buildconf is used by *developers*, not users. Tarballs won't
require Python at all to config and build them.

It was also written in Python because it is *just* starting. That script
will also product .dsp and .dsw files in the future (the Subversion
project generates these files, so I intend to follow that model). For now,
it is just starting: it got rid of the recursive make crap. But there is a
lot more that it can do.

So no... switching to a shell script would not be beneficial, as it would
cut off future capabilities.

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/


Re: apr/apr-util python dependence

2004-02-18 Thread Brian W. Fitzpatrick
On Wed, 2004-02-18 at 05:13, Sascha Schumann wrote:
 Automake is clearly not a choice, nor has it ever been for a
 project of considerable size.  And recursive make clearly
 sucks -- the PHP project got rid of it 2 years ago.  We agree
 on these points.

+1

  It was also written in Python because it is *just* starting. That script
  will also product .dsp and .dsw files in the future (the Subversion
  project generates these files, so I intend to follow that model). For now,
  it is just starting: it got rid of the recursive make crap. But there is a
  lot more that it can do.
 
 However I completely disagree that Python (or Perl or PHP) is
 a good choice for use in build systems.

As part of the configure process, I would agree with you, but as part of
buildconf, I disagree--not everyone needs to run buildconf--only
developers, and if you're a developer, it's *really* not asking that
much to have Python on your dev box.

  So no... switching to a shell script would not be beneficial, as it would
  cut off future capabilities.
 
 I doubt that.  .dsp and .dsw files are just other text files
 which can easily be created using sh, grep, sed, tr etc.

Ick. Ick ick ick ick ick.  Easily is obviously a subjective term.  Who
wants to write (and, more importantly, *maintain*) hundreds (or
thousands) of lines of /bin/sh code?  Not to mention the fact that
Python can be much more compact than /bin/sh after you hit a certain
level of complexity.

Anyway, I suppose that agreeing to disagree may be for the best here. 
Subversion has required python to run autogen.sh for years now, and it's
been great for us.

-Fitz



Re: apr/apr-util python dependence

2004-02-18 Thread Sascha Schumann
 As part of the configure process, I would agree with you, but as part of
 buildconf, I disagree--not everyone needs to run buildconf--only
 developers, and if you're a developer, it's *really* not asking that
 much to have Python on your dev box.

That must be a wonderful world where you run buildconf only
on boxes which are under your control all the time.

In reality, build system debugging is often required on
awkward systems where even a pervasive language such as perl
is often unavailable.

 Ick. Ick ick ick ick ick.  Easily is obviously a subjective term.  Who
 wants to write (and, more importantly, *maintain*) hundreds (or
 thousands) of lines of /bin/sh code?

Many people do that all the time.

 Not to mention the fact that Python can be much more compact
 than /bin/sh after you hit a certain level of complexity.

Build systems don't reach that level.

 Anyway, I suppose that agreeing to disagree may be for the best here.

Agreed.  I'll rewrite the .py script on my way tonight and
submit it for review.

- Sascha


Re: apr/apr-util python dependence

2004-02-15 Thread Jeff Trawick
moving to [EMAIL PROTECTED]
Patrick Welche wrote:
I see that good work has been done to clean up the twisty building maze
in apr and apr-util. I suppose I want my cake and eat it - would you object
to a translation of the two python scripts into ordinary sh, avoiding the
need for those of us who haven't installed python to do so just for those
two files? If anything I would prefer a dependence on automake rather than
python.. that might make things even easier..
requiring automake is not something I personally would be excited about...  I'd 
like to see how bad a conversion to ordinary sh would turn out..  also, I'd 
guess that a conversion to the less cool but more widely 
ported/precompiled/preinstalled P* scripting language would be a rather quick 
and would not suffer greatly from uncoolness and would pick up additional 
people able and/or willing to maintain it ;)