[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
user/973: httpd's configure assumes some files are executable
>Number: 973
>Category: user
>Synopsis: httpd's configure assumes some files are executable
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: bugs
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sun Nov 14 18:00:02 MST 1999
>Last-Modified:
>Originator: David Leonard
>Organization:
net
>Release: 2.6
>Environment:
System : OpenBSD 2.6
Architecture: OpenBSD.i386
Machine : i386
>Description:
make prereq in usr.sbin/httpd runs configure which assumes lots of
files are executable, but cvs-checked-out trees don't carry permisions
i know this is a painful assumption made in many configure files...
>How-To-Repeat:
get a freshly checked out tree
$ cd /usr/src && make build SUDO=sudo
...
preparing in /u1/openbsd/src/include/../usr.sbin/httpd
/usr/bin/lndir -s -e obj -e obj.i386 -e Makefile.bsd-wrapper /u1/openbsd/src/usr.sbin/httpd
cd /u1/openbsd/src/usr.sbin/httpd/obj && sh configure --with-layout=OpenBSD --enable-module=ssl --enable-suexec --enable-module=ssl --suexec-caller=www --suexec-docroot=/var/www/htdocs --suexec-logfile=/var/log/suexec_log --suexec-userdir=public_html --suexec-uidmin=1000 --suexec-gidmin=1000 --suexec-safepath=/usr/bin:/bin:/usr/local/bin --enable-module=so --enable-shared=auth_anon --enable-shared=auth_db --enable-shared=auth_dbm --enable-shared=auth_digest --enable-shared=cern_meta --enable-shared=define --enable-shared=digest --enable-shared=info --enable-shared=log_agent --enable-shared=log_referer --enable-shared=mime_magic --enable-shared=mmap_static --enable-shared=proxy --enable-shared=rewrite --enable-shared=speling --enable-shared=unique_id --enable-shared=usertrack --enable-shared=vhost_alias --enable-module=auth_anon --enable-module=auth_db --enable-module=auth_dbm --enable-module=auth_digest --enable-module=cern_meta --enable-module=define --enable-m!
!
!
!
odule=digest --enable-module=info --enable-module=log_agent --enable-module=log_referer --enable-module=mime_magic --enable-module=mmap_static --enable-module=proxy --enable-module=rewrite --enable-module=speling --enable-module=unique_id --enable-module=usertrack --enable-module=vhost_alias
configure[117]: src/helpers/GuessOS: cannot execute - Permission denied
Configuring for Apache, Version 1.3.9
configure[144]: src/helpers/PrintPath: cannot execute - Permission denied
configure[177]: src/helpers/PrintPath: cannot execute - Permission denied
configure[188]: src/helpers/PrintPath: cannot execute - Permission denied
+ using installation path layout: OpenBSD (config.layout)
configure[1016]: src/helpers/getuid.sh: cannot execute - Permission denied
+ Warning: You have enabled the suEXEC feature. Be aware that you need
+ root privileges to complete the final installation step.
+ Warning: no Perl interpreter detected for support scripts.
+ Perhaps you need to specify one with --with-perl=FILE.
configure[1127]: src/helpers/getuid.sh: cannot execute - Permission denied
configure[1127]: src/helpers/buildinfo.sh: cannot execute - Permission denied
configure[1127]: src/helpers/buildinfo.sh: cannot execute - Permission denied
Creating Makefile
Creating Configuration.apaci in src
configure[1500]: ./Configure: cannot execute - Permission denied
>Fix:
well, either
* cvs could preserve permissions
* the Makefile's prereq could chmod +x the files (bad for a ro fs)
* the configure script shouldn't make the executable assumption
Index: configure
===================================================================
RCS file: /occult/openbsd/cvs/src/usr.sbin/httpd/configure,v
retrieving revision 1.4
diff -u -r1.4 configure
--- configure 1999/09/29 06:42:44 1.4
+++ configure 1999/11/14 23:56:11
@@ -114,7 +114,7 @@
##
## determine platform id
##
-PLATFORM="`$aux/GuessOS`"
+PLATFORM="`sh $aux/GuessOS`"
##
## display version information
@@ -141,7 +141,7 @@
## determine path to (optional) Perl interpreter
##
PERL=no-perl-on-this-system
-perlpath="`$aux/PrintPath perl5 perl miniperl`"
+perlpath="`sh $aux/PrintPath perl5 perl miniperl`"
if [ "x$perlpath" != "x" ]; then
PERL="$perlpath"
fi
@@ -174,7 +174,7 @@
## problems for our scripts under some platforms.
##
AWK=awk
-awkpath="`$aux/PrintPath nawk gawk awk`"
+awkpath="`sh $aux/PrintPath nawk gawk awk`"
if [ "x$awkpath" != "x" ]; then
AWK="$awkpath"
fi
@@ -185,7 +185,7 @@
## the actual data) option.
##
TAR=tar
-tarpath="`$aux/PrintPath gtar gnutar tar`"
+tarpath="`sh $aux/PrintPath gtar gnutar tar`"
if [ "x$tarpath" != "x" ]; then
TAR="$tarpath"
fi
@@ -205,7 +205,7 @@
##
SHELL=/bin/sh
if [ ! -f "$SHELL" ]; then
- SHELL="`$aux/PrintPath sh`"
+ SHELL="`sh $aux/PrintPath sh`"
if [ "x$SHELL" = "x" ]; then
echo "configure:Error: Cannot determine path to Bourne-Shell" 1>&2
exit 1
@@ -985,7 +985,7 @@
-e 's:$:" \\:' >>$configstatus
fi
done
-echo $SEO "./configure \\" >>$configstatus
+echo $SEO "${SHELL} ./configure \\" >>$configstatus
for arg
do
echo "$arg" |\
@@ -1009,7 +1009,7 @@
echo " and htdocs/manual/suexec.html documents first."
exit 1
fi
- if [ "x`$aux/getuid.sh`" != "x0" ]; then
+ if [ "x`${SHELL} $aux/getuid.sh`" != "x0" ]; then
echo " + Warning: You have enabled the suEXEC feature. Be aware that you need" 1>&2
echo " + root privileges to complete the final installation step." 1>&2
fi
@@ -1118,12 +1118,12 @@
fi
done
fi
- if [ "x`$aux/getuid.sh`" != "x0" ]; then
+ if [ "x`${SHELL} $aux/getuid.sh`" != "x0" ]; then
conf_port="8080"
conf_port_ssl="8443"
fi
- conf_serveradmin="`$aux/buildinfo.sh -n %u@%h%d`"
- conf_servername="`$aux/buildinfo.sh -n %h%d`"
+ conf_serveradmin="`${SHELL} $aux/buildinfo.sh -n %u@%h%d`"
+ conf_servername="`${SHELL} $aux/buildinfo.sh -n %h%d`"
fi
##
@@ -1491,9 +1491,9 @@
## $src/Configure script with our custom Configuration.apaci file
##
if [ "x$quiet" = "xyes" ]; then
- (cd $src; ./Configure -file Configuration.apaci >/dev/null);
+ (cd $src; ${SHELL} ./Configure -file Configuration.apaci >/dev/null);
else
- (cd $src; ./Configure -file Configuration.apaci |\
+ (cd $src; ${SHELL} ./Configure -file Configuration.apaci |\
sed -e '/^Using config file:.*/d' \
-e "s:Makefile in :Makefile in $src\\/:" \
-e "s:Makefile\$:Makefile in $src:")
>Audit-Trail:
>Unformatted: