Subject: | Makefile.PL fails with no '.' in @INC |
A recent security patch to Perl itself removed '.', the current working
directory, from \@INC, the default search path for 'use', 'do', and
'require'. This fix for CVE-2016-1238 will be part of Perl 5.26.0, due
to be released this April, 2017. CPAN clients will *temporarily*
provide backwards compatibility during the module build/test process
by setting the environment variable PERL_USE_UNSAFE_INC=1 during build,
test, and install. HOWEVER:
1) This environment variable is a temporary fix only for compatibility,
due to be removed for Perl 5.30.0.
2) This may mask errors in your module itself, by testing your module
under different conditions than those that it will actually be run
under.
To read more about this, you may find the following links helpful:
* http://blogs.perl.org/users/todd_rinaldo/2016/11/how-removing-from-inc-is-about-to-break-cpan.html
* https://www.perlmonks.org/?node_id=1186105
* http://www.nntp.perl.org/group/perl.perl5.porters/2017/03/msg243722.html
During a smoke-test of all of cpan, your distribution was found to be unable
to configure, build, test, or install without adding '.' to @INC. This means
that your distribution *will* stop building properly for all users when the
CPAN clients remove this temporary compatibility fix, and that it *may*
already have problems when `use`d, problems which are being masked by this
temporary compatibility fix.
A full error log follows:
----
Output from '/home/cpan4/install/bin/perl Makefile.PL':
# The following modules are not available.
# `/home/cpan4/install/bin/perl Makefile.PL | cpanm` will install them:
inc::Module::Install
Module::Install::AuthorTests
Module::Install::ReadmeFromPod
Module::Install::Repository
------------------------------
PREREQUISITES
------------------------------
Prerequisite modules loaded:
configure_requires:
Module Need Have
------------------- ---- ----
ExtUtils::MakeMaker 6.36 7.24
------------------------------
ENVIRONMENT AND OTHER CONTEXT
------------------------------
Environment variables:
AUTOMATED_TESTING = 1
HARNESS_OPTIONS = j3
LANG = en_US.UTF-8
PATH = /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
PERL = /home/cpan4/install/bin/perl
PERL5LIB =
PERL5OPT = -I/tmp/CPAN-Reporter-lib-9hlj -MDevel::Autoflush
PERL5_CPANPLUS_IS_RUNNING = 377
PERL5_CPAN_IS_EXECUTING = /home/cpan4/.cpan/build/JSON-Types-0.05-0/Makefile.PL
PERL5_CPAN_IS_RUNNING = 377
PERL5_CPAN_IS_RUNNING_IN_RECURSION = 13578,377
PERL_AUTOINSTALL = --defaultdeps
PERL_CR_SMOKER_CURRENT = JSON-Types-Flexible-0.03
PERL_CR_SMOKER_RUNONCE = 1
PERL_EXTUTILS_AUTOINSTALL = --defaultdeps
PERL_MM_USE_DEFAULT = 1
PERL_USE_UNSAFE_INC = 0
SHELL = /bin/bash
TERM = putty-256color
Perl special variables (and OS-specific diagnostics, for MSWin32):
$^X = /home/cpan4/install/bin/perl
$UID/$EUID = 1005 / 1005
$GID = 1005 1005
$EGID = 1005 1005
Perl module toolchain versions installed:
Module Have
------------------- ----------
CPAN 2.17
CPAN::Meta 2.150010
Cwd 3.67
ExtUtils::CBuilder 0.280225
ExtUtils::Command 7.24
ExtUtils::Install 2.04
ExtUtils::MakeMaker 7.24
ExtUtils::Manifest 1.70
ExtUtils::ParseXS 3.34
File::Spec 3.67
JSON 2.90
JSON::PP 2.27400_02
Module::Build 0.4222
Module::Signature n/a
Parse::CPAN::Meta 2.150010
Test::Harness 3.38
Test::More 1.302079
YAML n/a
YAML::Syck 1.29
version 0.9917
--
Summary of my perl5 (revision 5 version 26 subversion 0) configuration:
Commit id: 5fc389563644287b3e5f448616ce62dd0ce4e7a6
Platform:
osname=linux
osvers=3.16.0-4-amd64
archname=x86_64-linux-thread-multi
uname='linux digitalis 3.16.0-4-amd64 #1 smp debian 3.16.36-1+deb8u2 (2016-10-19) x86_64 gnulinux '
config_args='-Dusedevel -DDEBUGGING -Dusethreads -Dprefix=/home/cpan4/install -Uversiononly -des'
hint=recommended
useposix=true
d_sigaction=define
useithreads=define
usemultiplicity=define
use64bitint=define
use64bitall=define
uselongdouble=undef
usemymalloc=n
default_inc_excludes_dot=define
bincompat5005=undef
Compiler:
cc='cc'
ccflags ='-D_REENTRANT -D_GNU_SOURCE -fwrapv -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2'
optimize='-O2 -g'
cppflags='-D_REENTRANT -D_GNU_SOURCE -fwrapv -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
ccversion=''
gccversion='4.9.2'
gccosandvers=''
intsize=4
longsize=8
ptrsize=8
doublesize=8
byteorder=12345678
doublekind=3
d_longlong=define
longlongsize=8
d_longdbl=define
longdblsize=16
longdblkind=3
ivtype='long'
ivsize=8
nvtype='double'
nvsize=8
Off_t='off_t'
lseeksize=8
alignbytes=8
prototype=define
Linker and Libraries:
ld='cc'
ldflags =' -fstack-protector-strong -L/usr/local/lib'
libpth=/usr/local/lib /usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed /usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib /lib64 /usr/lib64
libs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
libc=libc-2.19.so
so=so
useshrplib=false
libperl=libperl.a
gnulibc_version='2.19'
Dynamic Linking:
dlsrc=dl_dlopen.xs
dlext=so
d_dlsymun=undef
ccdlflags='-Wl,-E'
cccdlflags='-fPIC'
lddlflags='-shared -O2 -g -L/usr/local/lib -fstack-protector-strong'
Characteristics of this binary (from libperl):
Compile-time options:
DEBUGGING
HAS_TIMES
MULTIPLICITY
PERLIO_LAYERS
PERL_COPY_ON_WRITE
PERL_DONT_CREATE_GVSV
PERL_IMPLICIT_CONTEXT
PERL_MALLOC_WRAP
PERL_OP_PARENT
PERL_PRESERVE_IVUV
PERL_TRACK_MEMPOOL
PERL_USE_DEVEL
USE_64_BIT_ALL
USE_64_BIT_INT
USE_ITHREADS
USE_LARGE_FILES
USE_LOCALE
USE_LOCALE_COLLATE
USE_LOCALE_CTYPE
USE_LOCALE_NUMERIC
USE_LOCALE_TIME
USE_PERLIO
USE_PERL_ATOF
USE_REENTRANT_API
Built under linux
Compiled at Apr 4 2017 17:17:49
%ENV:
PERL="/home/cpan4/install/bin/perl"
PERL5LIB=""
PERL5OPT=""
PERL5_CPANPLUS_IS_RUNNING="377"
PERL5_CPAN_IS_EXECUTING="/home/cpan4/.cpan/build/JSON-Types-0.05-0/Makefile.PL"
PERL5_CPAN_IS_RUNNING="377"
PERL5_CPAN_IS_RUNNING_IN_RECURSION="13578,377"
PERL_AUTOINSTALL="--defaultdeps"
PERL_CR_SMOKER_CURRENT="JSON-Types-Flexible-0.03"
PERL_CR_SMOKER_RUNONCE="1"
PERL_EXTUTILS_AUTOINSTALL="--defaultdeps"
PERL_MM_USE_DEFAULT="1"
PERL_USE_UNSAFE_INC="0"
@INC:
/home/cpan4/install/lib/perl5/site_perl/5.26.0/x86_64-linux-thread-multi
/home/cpan4/install/lib/perl5/site_perl/5.26.0
/home/cpan4/install/lib/perl5/5.26.0/x86_64-linux-thread-multi
/home/cpan4/install/lib/perl5/5.26.0