You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Martin Kraemer <Ma...@mch.sni.de> on 2000/01/07 16:16:34 UTC
Trouble with --shadow=
I tried the --shadow=<dir> feature and am having difficulties
understanding the philosophy behind it.
a) why is there a two-step shadow tree in the first place?
One copy of the tree ("external" shadow) plus one platform specific
copy ("internal" shadow). IMO it would have been sufficient to have
only one (the "internal") copy.
b) *If* there is an external shadow, then there must be a way to use it
for multiple architectures. In this case, it should *NOT* have
another src/ directory which leads to the incorrect assumption that
files in src/ may be used for compilation (and only their object
files are stored in platform specific directories).
And of course, there must be a way to create a shadow tree for more
than one architecture. That however DOES NOT WORK at all, because an
attempt to create a shadow tree for architecture B into an existing
tree for architecture A will first erase everything in the common
( ;-) shadow directory, before installing a B-only shadow tree. The
only workaround I see for this is:
mkdir -p /nfs/apa/shadow/A
mkdir /nfs/apa/shadow/B
rsh A 'cd apache_x.y.z/; ./configure --shadow=/nfs/apa/shadow/A'
rsh B 'cd apache_x.y.z/; ./configure --shadow=/nfs/apa/shadow/B'
mv /nfs/apa/shadow/A/* /nfs/apa/shadow/
mv /nfs/apa/shadow/B/*.B /nfs/apa/shadow/
rm -fr /nfs/apa/shadow/A /nfs/apa/shadow/B /nfs/apa/shadow/src
But that's not something I would like to do manually.
IMO, it's configure's job.
c) config.status was intended as a way to re-configure apache with the
same settings as before. There is a "config.status" generated into
the external shadow; however, when you call it, it only produces
errors because it immediately removes the old external shadow copy:
Configuring for Apache, Version 1.3.9
+ using installation path layout: Apache (config.layout)
+ creating external package shadow tree (/tmp/apa)
./configure: src/helpers/mkshadow.sh: nicht gefunden
+ switching to external package shadow tree (/tmp/apa)
./configure: src/helpers/GuessOS: nicht gefunden
+ creating Makefile (shadow wrapper)
+ creating internal platform shadow tree (src.)
./configure: src/helpers/mkshadow.sh: nicht gefunden
./configure: src./helpers/getuid.sh: nicht gefunden
./configure: src./helpers/buildinfo.sh: nicht gefunden
./configure: src./helpers/buildinfo.sh: nicht gefunden
Creating Makefile.
./configure: Makefile.tmpl: kann nicht eroeffnet werden
./configure: src./apaci: kann nicht erzeugt werden
Exit 1
The correct way to re-run the configuration should be described
(currently, there doesn't seem to be any, as re-running
"configure --shadow=..." deletes not the platform specific directory
only, but *ALL* directories.
d) configure should make sure that no more than the original apache
files are copied into the shadow tree. If you decide to put the
shadow within the apache_x.y.z/ tree, then this is not guaranteed:
you will get another copy of your external and internal shadow trees
into your shadow trees. :-(
OTOH, mkshadow takes great pains to detect relative paths (which in
most cases are used within the source tree).
Martin
--
<Ma...@MchP.Siemens.De> | Fujitsu Siemens
<ma...@apache.org> | 81730 Munich, Germany
Re: Trouble with --shadow=
Posted by Martin Kraemer <Ma...@Mch.SNI.De>.
On Fri, Jan 07, 2000 at 04:16:34PM +0100, Martin Kraemer wrote:
> I tried the --shadow=<dir> feature and am having difficulties
> understanding the philosophy behind it.
e) ...and when building the patform specific shadow tree, mkshadow
should also make sure that none of the generated header files or
compiled helper tools remain in the symlinked shadow tree. Things
like ap_config_auto.h and uri_delims.h are platform specific and must
be deleted in the generated shadow tree. In a virgin apache tree,
they don't exist. But nowhere does README.config say that you must
use a virgin tree.
Martin
--
<Ma...@MchP.Siemens.De> | Fujitsu Siemens
<ma...@apache.org> | 81730 Munich, Germany