Re: svn commit: r885606 - /httpd/httpd/trunk/build/rpm/httpd.init

2009-12-04 Thread Graham Leggett
William A. Rowe Jr. wrote:

 The last I heard, the 'rpm' project is open source, free to be adopted by
 any platform.

Just because rpm is free to be adopted by any platform doesn't mean it
has been. Rpm contains features that allow the spec file to tailor
itself to its build environment, and I am confident those features would
kick in if someone was to try and create an rpm package tailored for an
environment other than a Redhat derivative.

 As for the rest of your comments, if we solve the general problem, I'm all
 for including it in the httpd tree.  If we are solving specific packagers
 problems, I'm ok with placing this in the httpd.a.o domain, but we should
 move this nonsense outside of the development tree into a packaging tree.

And in turn violate the principle of least surprise.

The point behind support for packaging formats is to make the end user's
life easier, not harder. Packagers that create weird, non standard, or
unexpectedly complex packaging are not doing their users any favours.

Regards,
Graham
--



Re: svn commit: r885606 - /httpd/httpd/trunk/build/rpm/httpd.init

2009-12-04 Thread Tom Evans
On Fri, Dec 4, 2009 at 12:59 AM, Graham Leggett minf...@sharp.fm wrote:
 William A. Rowe Jr. wrote:

 Ok, so they want to roll their own.  Sounds like a maintainer issue.  What
 does this say for using our httpd rpm for an Ubuntu or other distribution
 of linux?

 Ubuntu is Debian based, and uses the .deb packaging format, and startup
 scripts derived from the Debian layout. If someone was to donate debian
 packaging for httpd, I would expect one or two files to appear below
 build/deb, and that would be all that would be needed.

 IMHO, if it is fundamentally incompatible with apachectl and non-redhat
 distributions, let the the packagers tweak and take the zany customizations
 out from under our problem set.

 Apachectl is archaic and largely broken for most people - it made sense
 ten years ago, it makes a lot less sense today.

Really? It works perfectly on all boxes I use it on. What precisely
has changed about reading a pid from a file, sending signals to a
process, or spawning a process with specific arguments that has made
apachectl 'archaic and largely broken', I am intrigued.



 The pattern followed by most modern unix based packaging is for an
 application to drop a snippet of config contained in a discrete file in
 a directory ending in .d. So you have
 /etc/httpd/conf.d/snippet.conf, instead of a manual edit to
 /etc/httpd/conf/httpd.conf, and your httpd startup goes within an
 optional script called /etc/sysconfig/httpd instead of in a script file
 in a bin directory as apachectl wants. I understand Debian has different
 naming conventions, but otherwise the underlying principles are the same.

Did you mean to say 'most Linux' there? The OSes that I regularly use
do not display these redhatisms.


 In our case, we package up config files within standalone RPMs all of
 their own (suitably tagged and versioned), or we generate the config
 file using puppet. Editing a file in place is always painful and error
 prone, it is far less painful to provide a discrete file that can be
 dropped in and removed cleanly. Apachectl doesn't give us this - you
 need to edit apachectl directly to modify the command line parameters
 passed to httpd.

 As for the packagers tweaking and making zany customisations, that is
 exactly what they do now. For us it makes the their packaging unsuitable
 for our needs, simply because we tweak and make zany customisations for
 needs of our own. It is far less painful to take a vanilla RPM published
 by the ASF, and then tweak it for our needs, than it is to take a Fedora
 RPM, untweak all their customisations, and then retweak it with ours.


Ah so now the crux of your argument:

1) I use Fedora/RHEL
2) I want customized packages to install
3) Fedora/RHEL package their RPMs in such a way that it makes it
difficult for me to modify them.

It's much easier when you just say this up front.

Cheers

Tom


Re: svn commit: r885606 - /httpd/httpd/trunk/build/rpm/httpd.init

2009-12-04 Thread Graham Leggett
Tom Evans wrote:

 Really? It works perfectly on all boxes I use it on. What precisely
 has changed about reading a pid from a file, sending signals to a
 process, or spawning a process with specific arguments that has made
 apachectl 'archaic and largely broken', I am intrigued.

And if you have ten boxes? 50 boxes? A Google of boxes?

Editing a file in place has long been shown to be a maintenance
nightmare, which is why in addition to logrotate.conf you have
logrotate.d, in addition to modprobe.conf you have modprobe.d, and so
on. This is a pattern long since established in modern unix
distributions, to solve the problem of the need to edit files during a
software addition, and edit files again during software removal, all
without making mistakes.

Sure, if you are used to editing config files by hand on one or two
boxes, apachectl will meet your needs, but if you do anything that
requires a level of scale doing it this way won't.

Regards,
Graham
--


Re: svn commit: r885606 - /httpd/httpd/trunk/build/rpm/httpd.init

2009-12-04 Thread Tom Evans
On Fri, Dec 4, 2009 at 12:37 PM, Graham Leggett minf...@sharp.fm wrote:
 Tom Evans wrote:

 Really? It works perfectly on all boxes I use it on. What precisely
 has changed about reading a pid from a file, sending signals to a
 process, or spawning a process with specific arguments that has made
 apachectl 'archaic and largely broken', I am intrigued.

 And if you have ten boxes? 50 boxes? A Google of boxes?

 Editing a file in place has long been shown to be a maintenance
 nightmare, which is why in addition to logrotate.conf you have
 logrotate.d, in addition to modprobe.conf you have modprobe.d, and so
 on. This is a pattern long since established in modern unix
 distributions, to solve the problem of the need to edit files during a
 software addition, and edit files again during software removal, all
 without making mistakes.

 Sure, if you are used to editing config files by hand on one or two
 boxes, apachectl will meet your needs, but if you do anything that
 requires a level of scale doing it this way won't.

 Regards,
 Graham
 --


Sorry, what has apachectl got to do with editing files? What has using
apachectl to stop/start a service got to do with scalability? You've
completely lost me here.

At $JOB we have 200+ servers, all deployed and configured via
cfengine. apachectl is still used to stop/start the servers, via
cfengine and other CM tools.

Cheers

Tom


Re: svn commit: r885606 - /httpd/httpd/trunk/build/rpm/httpd.init

2009-12-04 Thread Eric Covener
On 12/4/09, Tom Evans tevans...@googlemail.com wrote:
 Sorry, what has apachectl got to do with editing files? What has using
  apachectl to stop/start a service got to do with scalability? You've
  completely lost me here.

The only practical thing i can think of is OS vendors providing
separate worker and prefork binaries. The standard apachectl has the
binary name embedded in it, although there are a host of ways to
accomodate that.

-- 
Eric Covener
cove...@gmail.com


Re: svn commit: r885606 - /httpd/httpd/trunk/build/rpm/httpd.init

2009-12-03 Thread William A. Rowe Jr.
Graham Leggett wrote:
 
 On a Redhat machine (Fedora/RHEL/Centos), search
 /etc/rc.d/init.d/functions for functions called daemon, status and
 killproc. These functions provide similar but incompatible
 functionality to that provided by apachectl, and only exist on Redhat
 derived machines.

Ok, so they want to roll their own.  Sounds like a maintainer issue.  What
does this say for using our httpd rpm for an Ubuntu or other distribution
of linux?

 The startup script is far too trivial to justify jumping through hoops
 to try and make apachectl work like Redhat's init. It's caused us enough
 grief already, thus the fix.

IMHO, if it is fundamentally incompatible with apachectl and non-redhat
distributions, let the the packagers tweak and take the zany customizations
out from under our problem set.


Re: svn commit: r885606 - /httpd/httpd/trunk/build/rpm/httpd.init

2009-12-03 Thread William A. Rowe Jr.
Gregg L. Smith wrote:
 Original Message ---
 Finally, I have yet to see any feedback on the pcre mandatory 
 dependency issue.  Comments?
 
 Personally, I thought your Monopoly metaphor was quite on target.
 
 libz, openssl, lua = batteries not included
 apr, apu, pcre = drive train not included.
 
 And what is passing for an excuse for a local PCRE install 
 these days probably doesn't look like 7.8 or later, with 
 various fixes we are vulnerable to.
 
 This does not leave me with a warm and fuzzy feeling. As a user, is the pcre 
 8.0 I've built going to expose me to risks that your maintained 7.8 does not? 
 If yes, then I'd prefer your maintained one. After all, who knows better than 
 you what will interact with your code to produce problems. Regardless of 
 merit, who will ultimately get blamed in the end? Could your reputation be 
 tarnished? Can you completely divorce yourself from something your software 
 requires to run?

I'm referring to pre v7 chaos.  And mostly not referring to modern
linux distros.

 The 'Jump Ship' factor;
 
 To me, and I'm probably wrong, it sounds like Mr. Felt's comment was an 
 ultimatum of sorts as 'indefinitely' is a pretty strong word. With this issue 
 you have created a deal with it or jump ship ultimatum which could very well 
 leave some people scrambling to get off. Each person is going to inevitably 
 weigh the pain factor, the pain of dealing with it over the pain of jumping 
 ship. I consider myself lucky that my second attempt to deal with it was 
 successful, or so it seems so far anyway, but I never know from day to day.

Agreed that ease-of-adoption is going to be the usual, first barrier to
anyone jumping aboard 2.4 from 2.2, 2.0, or even still from 1.3.

 I may be wrong but as an outsider looking in, I see you wanting to stop 
 maintaining/including the gear box and are instead spending the time on 
 adding more optional gadgets to choose from (some of the third party modules 
 you've taken over). In the end, I'd prefer having a reverse gear over the 
 rear window defogger. You are also loosing all control of a required piece of 
 equipment, this has got to make some of you at least cringe a little.

I'm not 100% sure I understand what you are saying here.  Drop the
gearbox and let them assemble their own transmission?  Or distribute
a most modern transmission that the user can ignore or swap out if they
want to install their own?

 Sorry for the outburst, but you opened the door for, and I've said what I've 
 wanted to for some time now, thanks for listening. Corrections and daggers 
 welcomed.

No problems, thanks for chiming in.


Re: svn commit: r885606 - /httpd/httpd/trunk/build/rpm/httpd.init

2009-12-03 Thread Graham Leggett
William A. Rowe Jr. wrote:

 Ok, so they want to roll their own.  Sounds like a maintainer issue.  What
 does this say for using our httpd rpm for an Ubuntu or other distribution
 of linux?

Ubuntu is Debian based, and uses the .deb packaging format, and startup
scripts derived from the Debian layout. If someone was to donate debian
packaging for httpd, I would expect one or two files to appear below
build/deb, and that would be all that would be needed.

 IMHO, if it is fundamentally incompatible with apachectl and non-redhat
 distributions, let the the packagers tweak and take the zany customizations
 out from under our problem set.

Apachectl is archaic and largely broken for most people - it made sense
ten years ago, it makes a lot less sense today.

The pattern followed by most modern unix based packaging is for an
application to drop a snippet of config contained in a discrete file in
a directory ending in .d. So you have
/etc/httpd/conf.d/snippet.conf, instead of a manual edit to
/etc/httpd/conf/httpd.conf, and your httpd startup goes within an
optional script called /etc/sysconfig/httpd instead of in a script file
in a bin directory as apachectl wants. I understand Debian has different
naming conventions, but otherwise the underlying principles are the same.

In our case, we package up config files within standalone RPMs all of
their own (suitably tagged and versioned), or we generate the config
file using puppet. Editing a file in place is always painful and error
prone, it is far less painful to provide a discrete file that can be
dropped in and removed cleanly. Apachectl doesn't give us this - you
need to edit apachectl directly to modify the command line parameters
passed to httpd.

As for the packagers tweaking and making zany customisations, that is
exactly what they do now. For us it makes the their packaging unsuitable
for our needs, simply because we tweak and make zany customisations for
needs of our own. It is far less painful to take a vanilla RPM published
by the ASF, and then tweak it for our needs, than it is to take a Fedora
RPM, untweak all their customisations, and then retweak it with ours.

Regards,
Graham
--


Re: svn commit: r885606 - /httpd/httpd/trunk/build/rpm/httpd.init

2009-12-03 Thread Gregg L. Smith

William A. Rowe Jr. wrote:

I may be wrong but as an outsider looking in, I see you wanting to stop 
maintaining/including the gear box and are instead spending the time on adding 
more optional gadgets to choose from (some of the third party modules you've 
taken over). In the end, I'd prefer having a reverse gear over the rear window 
defogger. You are also loosing all control of a required piece of equipment, 
this has got to make some of you at least cringe a little.


I'm not 100% sure I understand what you are saying here.  Drop the
gearbox and let them assemble their own transmission?  Or distribute
a most modern transmission that the user can ignore or swap out if they
want to install their own?



Bill,

The latter in your statement, distribute the most modern transmission 
that the user can ignore or if they wish or swap out with something they 
prefer.


Basically it's easy. If it must be there to build the darn thing, pass 
GO and collect the $$$, then it should be there. If not, then it becomes 
an option and that is left up to the user/builder ergo openssl zlib and 
lua.


so +1 to including pcre in -deps (or srclib/pcre), basically as it is 
now in the other branches.


In reality I probably shouldn't say anything anymore as I adapted and 
overcame, begrudgingly. It sure was a sore subject back between 2.3.1 
and 2.3.2 and I guess it just held on and I could not resist making noise.


Sorry this got into the wrong thread, I blame my webmail :)

Gregg







Re: svn commit: r885606 - /httpd/httpd/trunk/build/rpm/httpd.init

2009-12-03 Thread William A. Rowe Jr.
Graham Leggett wrote:
 William A. Rowe Jr. wrote:
 
 Ok, so they want to roll their own.  Sounds like a maintainer issue.  What
 does this say for using our httpd rpm for an Ubuntu or other distribution
 of linux?
 
 Ubuntu is Debian based, and uses the .deb packaging format, and startup
 scripts derived from the Debian layout.

The last I heard, the 'rpm' project is open source, free to be adopted by
any platform.

As for the rest of your comments, if we solve the general problem, I'm all
for including it in the httpd tree.  If we are solving specific packagers
problems, I'm ok with placing this in the httpd.a.o domain, but we should
move this nonsense outside of the development tree into a packaging tree.


Re: svn commit: r885606 - /httpd/httpd/trunk/build/rpm/httpd.init

2009-12-01 Thread Dan Poirier
minf...@apache.org writes:

 Author: minfrin
 Date: Mon Nov 30 22:53:43 2009
 New Revision: 885606

 URL: http://svn.apache.org/viewvc?rev=885606view=rev
 Log:
...
 Remove the use of the apachectl script, as a script calling
 another script makes no sense. 

I wonder if this is a good idea?

apachectl does some things that httpd.init does not.  For example, an
admin might reasonably expect to be able to control Apache's environment
by editing bin/envvars, but this will now silently fail when Apache is
installed using RPM.

Of course httpd.init could also source bin/envvars, but then we start
down the road of having to keep httpd.init in sync with apachectl.

I think we should just use the documented, recommended way of
controlling apache.  The extra cost seems minimal, especially compared
to the long-term maintenance costs of not doing so.

Dan



Re: svn commit: r885606 - /httpd/httpd/trunk/build/rpm/httpd.init

2009-12-01 Thread William A. Rowe Jr.
Dan Poirier wrote:
 minf...@apache.org writes:
 
 Author: minfrin
 Date: Mon Nov 30 22:53:43 2009
 New Revision: 885606

 URL: http://svn.apache.org/viewvc?rev=885606view=rev
 Log:
 ...
 Remove the use of the apachectl script, as a script calling
 another script makes no sense. 
 
 I wonder if this is a good idea?
 
 apachectl does some things that httpd.init does not.  For example, an
 admin might reasonably expect to be able to control Apache's environment
 by editing bin/envvars, but this will now silently fail when Apache is
 installed using RPM.
 
 Of course httpd.init could also source bin/envvars, but then we start
 down the road of having to keep httpd.init in sync with apachectl.
 
 I think we should just use the documented, recommended way of
 controlling apache.  The extra cost seems minimal, especially compared
 to the long-term maintenance costs of not doing so.

Is it reasonable to simply provision apachectl as httpd.init, perhaps even
as a symlink?


Re: svn commit: r885606 - /httpd/httpd/trunk/build/rpm/httpd.init

2009-12-01 Thread Graham Leggett
Dan Poirier wrote:

 Remove the use of the apachectl script, as a script calling
 another script makes no sense. 
 
 I wonder if this is a good idea?
 
 apachectl does some things that httpd.init does not.  For example, an
 admin might reasonably expect to be able to control Apache's environment
 by editing bin/envvars, but this will now silently fail when Apache is
 installed using RPM.
 
 Of course httpd.init could also source bin/envvars, but then we start
 down the road of having to keep httpd.init in sync with apachectl.
 
 I think we should just use the documented, recommended way of
 controlling apache.  The extra cost seems minimal, especially compared
 to the long-term maintenance costs of not doing so.

Redhat's init scripts don't work anything like the apachectl script, and
trying to call one from the other causes the exact problem you mention -
loss of environment variables, and all round weirdness.

Apachectl is simply a way of starting httpd, it is certainly not the
only way, and is definitely not the way you start if if you're on a
Redhat derived platform.

Regards,
Graham
--


Re: svn commit: r885606 - /httpd/httpd/trunk/build/rpm/httpd.init

2009-12-01 Thread Graham Leggett
William A. Rowe Jr. wrote:

 Is it reasonable to simply provision apachectl as httpd.init, perhaps even
 as a symlink?

Unfortunately not, no.

Redhat provides a library of functions to be used by startup scripts
that daemonise processes, keep track of pids, and do all the cute
displaying of OK or Failed, and make the service command work
properly.

Apachectl, while similar to Redhat's init script, has different
semantics when faced with restart, and the standard Redhat setup
doesn't work at all.

We would either need to change apachectl to work like Redhat (triggering
a storm of protest from people who do use apachectl and would ask if it
wasn't broken why did you fix it), or change Redhat to work like
apachectl (not worth the effort).

Regards,
Graham
--


Re: svn commit: r885606 - /httpd/httpd/trunk/build/rpm/httpd.init

2009-12-01 Thread William A. Rowe Jr.
Graham Leggett wrote:
 
 We would either need to change apachectl to work like Redhat (triggering
 a storm of protest from people who do use apachectl and would ask if it
 wasn't broken why did you fix it), or change Redhat to work like
 apachectl (not worth the effort).

Or change apachectl to act silently to assist httpd.init.

In fact, a silent mode makes a lot of sense, httpd.init wouldn't be the
only consumer.

apachectl should be called-not-exec'ed, IMHO (just as apachectl calls
envvars).



Re: svn commit: r885606 - /httpd/httpd/trunk/build/rpm/httpd.init

2009-12-01 Thread Gregg L. Smith
Original Message ---
 Finally, I have yet to see any feedback on the pcre mandatory
 dependency issue.  Comments?

Personally, I thought your Monopoly metaphor was quite on target.

libz, openssl, lua = batteries not included
apr, apu, pcre = drive train not included.

 And what is passing for an excuse for a local PCRE install
 these days probably doesn't look like 7.8 or later, with
 various fixes we are vulnerable to.

This does not leave me with a warm and fuzzy feeling. As a user, is the pcre 
8.0 I've built going to expose me to risks that your maintained 7.8 does not? 
If yes, then I'd prefer your maintained one. After all, who knows better than 
you what will interact with your code to produce problems. Regardless of merit, 
who will ultimately get blamed in the end? Could your reputation be tarnished? 
Can you completely divorce yourself from something your software requires to 
run?

The 'Jump Ship' factor;

To me, and I'm probably wrong, it sounds like Mr. Felt's comment was an 
ultimatum of sorts as 'indefinitely' is a pretty strong word. With this issue 
you have created a deal with it or jump ship ultimatum which could very well 
leave some people scrambling to get off. Each person is going to inevitably 
weigh the pain factor, the pain of dealing with it over the pain of jumping 
ship. I consider myself lucky that my second attempt to deal with it was 
successful, or so it seems so far anyway, but I never know from day to day.

I may be wrong but as an outsider looking in, I see you wanting to stop 
maintaining/including the gear box and are instead spending the time on adding 
more optional gadgets to choose from (some of the third party modules you've 
taken over). In the end, I'd prefer having a reverse gear over the rear window 
defogger. You are also loosing all control of a required piece of equipment, 
this has got to make some of you at least cringe a little.

Sorry for the outburst, but you opened the door for, and I've said what I've 
wanted to for some time now, thanks for listening. Corrections and daggers 
welcomed.

Gregg



Re: svn commit: r885606 - /httpd/httpd/trunk/build/rpm/httpd.init

2009-12-01 Thread Olaf van der Spek
On Tue, Dec 1, 2009 at 9:03 PM, Gregg L. Smith li...@glewis.com wrote:
 And what is passing for an excuse for a local PCRE install
 these days probably doesn't look like 7.8 or later, with
 various fixes we are vulnerable to.

Isn't that the responsibility of the distributor?

 This does not leave me with a warm and fuzzy feeling. As a user, is the pcre 
 8.0 I've built going to expose me to risks that your maintained 7.8 does not? 
 If yes, then I'd prefer your maintained one. After all, who knows better than 
 you what will interact with your code to produce problems. Regardless of 
 merit, who will ultimately get blamed in the end? Could your reputation be 
 tarnished? Can you completely divorce yourself from something your software 
 requires to run?

The opposite might be true too, what about risks that have been
patched in the distribution but not in the one shipped by Apache?
IMO library duplication should be avoided as much as possible.

Olaf


Re: svn commit: r885606 - /httpd/httpd/trunk/build/rpm/httpd.init

2009-12-01 Thread Dan Poirier
Graham Leggett minf...@sharp.fm writes:

 Redhat's init scripts don't work anything like the apachectl script, and
 trying to call one from the other causes the exact problem you mention -
 loss of environment variables, and all round weirdness.

Maybe I'm just slow getting back up to speed after the holiday, but I'm
not seeing how it would cause a problem.  Could you please expand on
that?

-- 
Dan Poirier poir...@pobox.com


Re: svn commit: r885606 - /httpd/httpd/trunk/build/rpm/httpd.init

2009-12-01 Thread Graham Leggett
Dan Poirier wrote:

 Redhat's init scripts don't work anything like the apachectl script, and
 trying to call one from the other causes the exact problem you mention -
 loss of environment variables, and all round weirdness.
 
 Maybe I'm just slow getting back up to speed after the holiday, but I'm
 not seeing how it would cause a problem.  Could you please expand on
 that?

On a Redhat machine (Fedora/RHEL/Centos), search
/etc/rc.d/init.d/functions for functions called daemon, status and
killproc. These functions provide similar but incompatible
functionality to that provided by apachectl, and only exist on Redhat
derived machines.

The startup script is far too trivial to justify jumping through hoops
to try and make apachectl work like Redhat's init. It's caused us enough
grief already, thus the fix.

Regards,
Graham
--


Re: svn commit: r885606 - /httpd/httpd/trunk/build/rpm/httpd.init

2009-12-01 Thread Dan Poirier
Graham Leggett minf...@sharp.fm writes:

 Dan Poirier wrote:

 Redhat's init scripts don't work anything like the apachectl script, and
 trying to call one from the other causes the exact problem you mention -
 loss of environment variables, and all round weirdness.
 
 Maybe I'm just slow getting back up to speed after the holiday, but I'm
 not seeing how it would cause a problem.  Could you please expand on
 that?

 On a Redhat machine (Fedora/RHEL/Centos), search
 /etc/rc.d/init.d/functions for functions called daemon, status and
 killproc. These functions provide similar but incompatible
 functionality to that provided by apachectl, and only exist on Redhat
 derived machines.

Well, apachectl doesn't provide any of that functionality.  About all it
does is source bin/envvars, if it exists, and then call httpd and pass
along any command line arguments.  httpd does all the start/stop/restart
etc. logic internally.  

So I'm still not seeing the problem with setting httpd=apachectl in
httpd.init, which would make bin/envvars apply, and not really change
the behavior otherwise.

 The startup script is far too trivial to justify jumping through hoops
 to try and make apachectl work like Redhat's init.

That's not what I was suggesting, and I don't think it would be
necessary.

 It's caused us enough grief already, thus the fix.

What grief is that?  I don't actually know what problem we're trying to
fix here.

Dan


Re: svn commit: r885606 - /httpd/httpd/trunk/build/rpm/httpd.init

2009-12-01 Thread Graham Leggett
Dan Poirier wrote:

 Well, apachectl doesn't provide any of that functionality.  About all it
 does is source bin/envvars, if it exists, and then call httpd and pass
 along any command line arguments.  httpd does all the start/stop/restart
 etc. logic internally.  
 
 So I'm still not seeing the problem with setting httpd=apachectl in
 httpd.init, which would make bin/envvars apply, and not really change
 the behavior otherwise.

You've said it yourself, apachectl doesn't provide that functionality.

In the Redhat world, environment vars are set in the file
/etc/sysconfig/httpd, not /usr/bin/envvars. Redhat's service httpd
restart works differently to apachectl's apachectl restart.

 It's caused us enough grief already, thus the fix.
 
 What grief is that?  I don't actually know what problem we're trying to
 fix here.

Look in the original init script before the fix - start, stop and
restart were done using Redhat's functions and the settings in
/etc/sysconfig/httpd. graceful and status used apachectl and the (non
existent) /usr/sbin/envvars file.

That meant for us that the server's config behaved differently if the
admin did service httpd graceful and service httpd restart, and was
very broken.

Regards,
Graham
--