perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas M. Payerle" <>
Subject bug report: Perl variable expansion in build directory path (very minor)
Date Fri, 13 Sep 2013 21:05:37 GMT

-------------8<---------- Start Bug Report ------------8<----------
1. Problem Description:

Perl variable expansion in build directory path (very minor)

In t/conf/, lines 115-138, there are three places where
$PerlConfig or @PerlConfig is being set to values containing
@DocumentRoot@ from autoconf.  Currently, the text being set to is
enclosed in double quotes.  I believe this is incorrect (albeit a very
minor issue) and single quotes should be used.

Because of my directory naming conventions, I am having the lines show up 
in extra.last.conf as
#Single-line $PerlConfig
if (Apache::Test::have_module('mod_alias.c')) {
   $PerlConfig = "Alias /perl_sections_perlconfig_scalar /afs/";

Note the @sys in the build directory name (I am building in AFS, with
build-foo-bar being a symlink to .build-foo-bar-@sys, and via AFS magic
this becomes a platform specific build directory, i.e. 
.build-foo-bar-amd64_rel60).  Due to the double quotes, I am getting a warning
about possible unintended variable expansion, and $PerlConfig becomes
   "Alias /perl_sections_perlconfig_scalar /afs/";
(Note the null string where @sys was), which is an invalid path and causes
other things to fail.

Since the path is being expanded from the working directory, I cannot see a
situation wherein you would _want_ perl variable expansion here, so it should
be using single quotes.

Again, minor issue in exceptional situation, but I think is an easy fix.

If I am mistaken and there is a valid reason to allow perl variable expansion
here, AFS users can easily work around by either fixing it locally or
creating symlinks 
ln -s .build-foo-bar-@sys .build-foo-bar-


2. Used Components and their Configuration:

*** mod_perl version 2.000008

*** using /usr/local/mod_perl/2.0.8/apache-2.2.24/perl-5.16.3/perl/lib/site_perl/5.16.3/x86_64-linux/Apache2/

*** Makefile.PL options:
   MP_APR_LIB     => aprext
   MP_APXS        => /usr/local/apache2/2.2.24/bin/apxs
   MP_AP_DESTDIR  => /usr/local/mod_perl/2.0.8/apache-2.2.24/perl-5.16.3
   MP_COMPAT_1X   => 1
   MP_LIBNAME     => mod_perl
   MP_USE_DSO     => 1

*** The httpd binary was not found

*** (apr|apu)-config linking info

  -L/usr/local/apache2/2.2.24/lib -laprutil-1     -lexpat
  -L/usr/local/apache2/2.2.24/lib -lapr-1 -luuid -lrt -lcrypt

*** /usr/local/perl/5.16.3/bin/perl -V
Summary of my perl5 (revision 5 version 16 subversion 3) configuration:

     osname=linux, osvers=2.6.32-279.14.1.el6.x86_64, archname=x86_64-linux
     uname='linux 2.6.32-279.14.1.el6.x86_64 #1 smp mon oct 15 13:44:51 edt
2012 x86_64 x86_64 x86_64 gnulinux '
     config_args='-de -Dprefix=/usr/local/perl/5.16.3 -Dldflags=  -L/usr/local/BerkeleyDB/lib
-Wl,-rpath,/usr/local/BerkeleyDB/lib -Dccflags=-fPIC   -I/usr/local/BerkeleyDB/include -Dscriptdir=/usr/local/perl/5.16.3/scripts
-Accflags='-fPIC' -Dlibpth=/usr/local/BerkeleyDB/lib /usr/lib64 /usr/lib'
     hint=recommended, useposix=true, d_sigaction=define
     useithreads=undef, usemultiplicity=undef
     useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
     use64bitint=define, use64bitall=define, uselongdouble=undef
     usemymalloc=n, bincompat5005=undef
     cc='cc', ccflags ='-fPIC -I/usr/local/BerkeleyDB/include -fPIC -fno-strict-aliasing -pipe
-fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
     cppflags='-fPIC -I/usr/local/BerkeleyDB/include -fPIC -fno-strict-aliasing -pipe -fstack-protector
     ccversion='', gccversion='4.4.6 20120305 (Red Hat 4.4.6-4)', gccosandvers=''
     intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
     d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
     ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
     alignbytes=8, prototype=define
   Linker and Libraries:
     ld='cc', ldflags =' -L/usr/local/BerkeleyDB/lib -Wl,-rpath,/usr/local/BerkeleyDB/lib
     libpth=/usr/local/BerkeleyDB/lib /usr/lib64 /usr/lib
     libs=-lnsl -ldb -ldl -lm -lcrypt -lutil -lc
     perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
     libc=/lib/, so=so, useshrplib=false, libperl=libperl.a
   Dynamic Linking:
     dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
     cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/BerkeleyDB/lib -fstack-protector'

Characteristics of this binary (from libperl):
                         USE_64_BIT_INT USE_LARGE_FILES USE_LOCALE
                         USE_LOCALE_COLLATE USE_LOCALE_CTYPE
   Built under linux
   Compiled at Mar 15 2013 10:13:50

*** Packages of interest status:

Apache2            : -
Apache2::Request   : -
CGI                : 3.63
ExtUtils::MakeMaker: 6.63_02
LWP                : 6.05
mod_perl           : -
mod_perl2          : 2.000008

3. This is the core dump trace: (if you get a core dump):

This report was generated by /usr/local/mod_perl/2.0.8/apache-2.2.24/perl-5.16.3/perl/bin/mp2bug
on Fri Sep 13 18:33:47 2013 GMT.

-------------8<---------- End Bug Report --------------8<----------

Tom Payerle
University of Maryland			(301) 405-6135
College Park, MD 20742-4111

View raw message