Hi Tomas,

Tomas wrote on Thu, Aug 24, 2006 at 09:18:26AM +0300:
> Han Boetes wrote:
>> Tomas wrote:

> Thank you very much, I think that's the way I will do it :)

Then do it very carefully!
I see at least one trap you might stumble into...

> It's quicker then compilling all the release...

Probably; but it is also less standard and you should understand
well what you are doing in order to be sure that the result is
actually correct.

>From your various posts, i suspect that you will be *much*
safer if you install comp39.tgz on your production server,
download the patch from the errate page and follow the
instructions contained inside on the production server itself.

>>> I was wondering is there any way to patch my httpd server
>>> without a compiller?  I don't want to add a compiller on
>>> my production web server, but I need to patch httpd (security
>>> fix 004).  I use OpenBSD 3.9.

>From this, i conclude you are running 3.9-release and intend to
upgrade to 3.9-release + errata.

>>   cd /usr/src/usr.sbin/httpd
>>   cvs up

AFAIK, Han is in the habit of running -current, even on production
servers (which can be done, but is different from what you do).
A bare `cvs update` will per default update to the HEAD revision,
which corresponds to -current.  When mixing -release and -current,
compiling will likely fail.  Even if, by some ill chance, compiling
happens to succeed, the resulting binaries might fail to run.

Besides, /usr/src/usr.sbin/httpd does not contain a CVS subdirectory
by default.  You might get a message like:

[EMAIL PROTECTED] $ cvs up     
cvs update: in directory .:
cvs [update aborted]: there is no version here; run 'cvs checkout' first

Thus, you might need the proper `cvs checkout` first - which is
probably easier and safer to get right if you do it for the whole
tree at once, see http://www.openbsd.org/anoncvs.html:

  cd /usr
  cvs checkout -P -rOPENBSD_3_9 src

Don't forget the -rOPENBSD_3_9 in any case.

>   make -f Makefile.bsd-wrapper obj cleandir all
>   sudo install -d fake/usr/{share/man/cat{1,8},lib/apache/modules}
>   sudo make -f  Makefile.bsd-wrapper install DESTDIR=$PWD/fake
>   cd fake
>   tar czvvf ../patched_apache.tgz *
>   cd ..
>   sudo rm -rf fake

You should probably postpone the last step until you are reasonably
sure that your new httpd is actually working reliably.  You might
also want to add something like "2>&1 | tee make.log" etc. after
the make statements in order to be able to look into any problems
that you might run into.

>   Now distribute the patched_apache.tgz tarball to all clients and
>   install it with:
>   
>   sudo tar xzpf patched_apache.tgz -C /

Note that after this, there is no way back unless you took
additional steps to prepare a backup - or unless you construct
another tarball containing the release versions of the same
files as patched_apache.tgz by hand, starting from the
release sets base??.tgz etc. on your CD.

When leaving standard procedures, taking some additional
precautions is generally a good idea unless you are *very*
experienced (like Han, for example ;-).

Yours,
  Ingo

Reply via email to