Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Added some of the problems of hongxu encountered

...

Panel
Tabs Container
idbuild-tabs
directionhorizontal
Tabs Page
idmacos
titleMacOS (10.10+)

Install dependencies on MAC (with xcode installed)

Make sure you have done: xcode-select --install to install developer tools

Code Block
languagebash
brew install protobuf protobuf-c Gsasl openssl boost thrift json-c ccache snappy libyaml libevent python cmake lcov

brew tap brona/iproute2mac
brew install iproute2mac
 
brew cask install java
brew install maven
 
sudo easy_install pip
sudo pip install pycrypto

brew install cpanm
sudo cpanm install JSON

#get libesmtp from http://linuxfromscratch.org/blfs/view/svn/general/libesmtp.html
tar jxvf libesmtp-1.0.6.tar.bz2
cd libesmtp-1.0.6
./configure && make
sudo make install

Please refer to section below titled Running catalog tidycat perl modules for installing perl-JSON module on MAC/

Info
titleNote for Installing Dependencies

OS requirement

Use a text editor to edit the /etc/sysctl.conf file. Add or edit each of the following parameter definitions to set the required value. 

       kern.sysv.shmmax=2147483648

       kern.sysv.shmmin=1

        kern.sysv.shmmni=64

        kern.sysv.shmseg=16

        kern.sysv.shmall=524288

        kern.maxfiles=65535

        kern.maxfilesperproc=65536

  • Reboot to apply the change.

Install Xcode and command line tools

After install/update xcode, please run ‘xcode-select --install’ to install command line tools, and then open xcode to make sure you have already installed it. 

MUST: Turning Off Rootless System Integrity Protection in OS X El Capitan 10.11+

If not do this, you may encounter some tricky LIBRARY_PATH problems. e.g. HAWQ-513

Following below instructions: ( refer to http://osxdaily.com/2015/10/05/disable-rootless-system-integrity-protection-mac-os-x )

  1. Reboot the Mac and hold down Command + R keys simultaneously after you hear the startup chime, this will boot OS X into Recovery Mode
  2. When the “OS X Utilities” screen appears, pull down the ‘Utilities’ menu at the top of the screen instead, and choose “Terminal”
  3. Type the following command into the terminal then hit return: csrutil disable; reboot
Tabs Page
idtab-yum
titleRed Hat/CentOS 7.X

Install dependencies on CentOS 7.X

Dependencies

(CentOS 7 users can follow easy steps provided by Zhanwei Wang)

 

Code Block
languagebash
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm
yum makecache
yum install -y man passwd sudo tar which git mlocate links make bzip2 net-tools \
  autoconf automake libtool m4 gcc gcc-c++ gdb bison flex gperf maven indent \
  libuuid-devel krb5-devel libgsasl-devel expat-devel libxml2-devel \
  perl-ExtUtils-Embed pam-devel python-devel libcurl-devel snappy-devel \
  thrift-devel libyaml-devel libevent-devel bzip2-devel openssl-devel \
  openldap-devel protobuf-devel readline-devel net-snmp-devel apr-devel \
  libesmtp-devel xerces-c-devel python-pip json-c-devel libhdfs3-devel \
  apache-ivy java-1.7.0-openjdk-devel \
  openssh-clients openssh-server perl-JSON

pip --retries=50 --timeout=300 install pycrypto
yum install lcov
 
You need to install cmake >=3.0 also. (Download from https://cmake.org/files/)

 

OS requirement

  • use a text editor to edit the /etc/sysctl.conf file. Add or edit each of the following parameter definitions to set the required value. 

     kernel.shmmax = 1000000000
     kernel.shmmni = 4096
     kernel.shmall = 4000000000
     kernel.sem = 250 512000 100 2048
     kernel.sysrq = 1
     kernel.core_uses_pid = 1
     kernel.msgmnb = 65536
     kernel.msgmax = 65536
     kernel.msgmni = 2048
     net.ipv4.tcp_syncookies = 0
     net.ipv4.ip_forward = 0
     net.ipv4.conf.default.accept_source_route = 0
     net.ipv4.tcp_tw_recycle = 1
     net.ipv4.tcp_max_syn_backlog = 200000
     net.ipv4.conf.all.arp_filter = 1
     net.ipv4.ip_local_port_range = 1281 65535
     net.core.netdev_max_backlog = 200000
     vm.overcommit_memory = 2
     fs.nr_open = 3000000
     kernel.threads-max = 798720
     kernel.pid_max = 798720
     # increase network
     net.core.rmem_max=2097152
     net.core.wmem_max=2097152
  • Execute the following command to apply your updated /etc/sysctl.conf file to the operating system configuration:
    sysctl -p
  • Use a text editor to edit the /etc/security/limits.conf file. Add the following definitions in the exact order that they are listed
     * soft nofile 2900000
     * hard nofile 2900000
     * soft nproc 131072
     * hard nproc 131072
Tabs Page
titleRed Hat/CentOS 6.X
classtabs-compile-dependencies

Build dependencies yourself ( tested on Red Hat 6.X).

Dependencies

There are several dependencies (see the following table) you must install before building HAWQ. To build Apache HAWQ, gcc and some dependencies are needed. The libraries are tested on the given versions. Most of the dependencies can be installed through yum. Other dependencies should be installed through the source tarball. Typically you can use "./configure && make && make install" to install from source tarball.

Libraries that must be installed using source tarball.


 You might need to run "ldconfig -p <LIBRARY_INSTALL_PATH>" after installing them.

For thrift build, you might need "--without-tests" for configure.

Install maven:
sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo
sudo yum install -y apache-maven

Install pip:

wget https://bootstrap.pypa.io/get-pip.py

python get-pip.py

 

pip --retries=50 --timeout=300 install pycrypto
 

Libraries that can be installed through yum.

NameVersion
epel-release6-8
make
3.81
gcc
>=4.7.2
gcc-c++
>=4.7.2
gperf
3.0.4
snappy-devel
1.1.3
bzip2-devel 
1.0.6
python-devel 
2.6.2
libevent-devel
1.4.6
krb5-devel
1.11.3
libuuid-devel
2.26.2
libgsasl-devel
1.8.0
libxml2-devel 
2.7.8
zlib-devel
1.2.3
readline-devel
6
openssl-devel
0.9.8
bison
1.875
apr-devel
1.2.12
libyaml-devel
0.1.1
flex
>2.5.4
lcov1.12
libesmtp-devel1.0.4
perl-JSON2.15

Default version of gcc in Red Hat/CentOS 6.X is 4.4.7 or lower, you can quickly upgrade gcc following instructions below:

Code Block
languagebash
cd /etc/yum.repos.d
# make sure you have root permission
wget -O /etc/yum.repos.d/slc6-devtoolset.repo http://linuxsoft.cern.ch/cern/devtoolset/slc6-devtoolset.repo
# install higher version using devtoolset-2
yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++
# Start using software collections
scl enable devtoolset-2 bash

You will need to install python packages same as those which are required for Red Hat/CentOS 7.

OS requirement

  • use a text editor to edit the /etc/sysctl.conf file. Add or edit each of the following parameter definitions to set the required value. 

     kernel.shmmax = 1000000000
     kernel.shmmni = 4096
     kernel.shmall = 4000000000
     kernel.sem = 250 512000 100 2048
     kernel.sysrq = 1
     kernel.core_uses_pid = 1
     kernel.msgmnb = 65536
     kernel.msgmax = 65536
     kernel.msgmni = 2048
     net.ipv4.tcp_syncookies = 0
     net.ipv4.ip_forward = 0
     net.ipv4.conf.default.accept_source_route = 0
     net.ipv4.tcp_tw_recycle = 1
     net.ipv4.tcp_max_syn_backlog = 200000
     net.ipv4.conf.all.arp_filter = 1
     net.ipv4.ip_local_port_range = 1281 65535
     net.core.netdev_max_backlog = 200000
     vm.overcommit_memory = 2
     fs.nr_open = 3000000
     kernel.threads-max = 798720
     kernel.pid_max = 798720
     # increase network
     net.core.rmem_max=2097152
     net.core.wmem_max=2097152
  • Execute the following command to apply your updated /etc/sysctl.conf file to the operating system configuration:
    sysctl -p
  • Use a text editor to edit the /etc/security/limits.conf file. Add the following definitions in the exact order that they are listed
     * soft nofile 2900000
     * hard nofile 2900000
     * soft nproc 131072
     * hard nproc 131072
Tabs Page
iddocker-tab
titleDocker (Red Hat/CentOS 7.X)

Build with Prebuilt Docker Image

Probably the simplest way to get started with the build is starting with the community developed docker image with all the project dependencies pre-installed.

To use the docker image follow the steps on: https://hub.docker.com/r/mayjojo/hawq-devel/

...

Please follow the steps here: https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html

Note:

  • you might need to build hadoop from source on Red Hat/CentOS 6.x if the downloaded hadoop package has higher

...

  • glibc version requirement. When that happens, you will probably see the warning below when running start-dfs.

...

  • sh.

...

  • " WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform"
  • You will also need to set  the port for fs.defaultFS to 8020 in etc/hadoop/core-site.xml (The example above set it as 9000.)
  • HDFS is a must, but YARN is optional. YARN is only needed when you want to use YARN as the global resource manager.
  • must setup passphraseless ssh, otherwise there will be some problems of "hawq init cluster" in the following step.

Your need to Your need to verify your HDFS works.

Code Block
languagebash
# start HDFS
start-dfs.sh
 
# Do some basic tests to make sure HDFS works
hadoop fs -lr /
hadoop fs -mkdir /test
hadoop fs -put ./testfile /
hadoop fs -get /testfile .

...

Code Block
languagebash
# Unit test. To do unit test, go to the src/backend and run unittest.
cd $CODE_BASE/src/backend
make unittest-check

# Code coverage
cd $CODE_BASE
./configure --enable-coverage --enable-debug (for debug build), or ./configure --enable-coverage (for opt build)
make -j8
make install
run some test to exercise hawq (i.e., unit test, install check, feature test, etc)
make coverage-show to see summary code coverage information in console, and detailed code coverage information in CodeCoverageReport (html format)
make coverage-show filter="./src/backend/executor/nodeAgg.c -d ./src/backend/commands" to see code coverage for specific files or directories
make coverage-reset to clear code coverage statistics
 
# Installcheck-good test. After installing HAWQ, please ensure HDFS work before initializing HAWQ. 
source /install/dir/greenplum_path.sh
hawq init cluster
make installcheck-good

# Feature test
cd $CODE_BASE
make feature-test
cd src/test/feature
./feature-test to run all feature test, or ./feature-test --gtest_filter=TestCommonLib.TestSqlUtil to run test suite TestCommonLib.TestSqlUtil

...

Code Block
00:02 $ perl tidycat.pl -dd 2.0.json -df json *.h
Fatal Error: The required package JSON is not installed -- please download it from www.cpan.org
00:02 $ 
00:02 $ cpan install JSON
CPAN.pm requires configuration, but most of it can be done automatically.
If you answer 'no' below, you will enter an interactive dialog for each
configuration option instead.
Would you like to configure as much as possible automatically? [yes] yes
 <install_help>
Warning: You do not have write permission for Perl library directories.
To install modules, you need to configure a local Perl library directory or
escalate your privileges.  CPAN can help you by bootstrapping the local::lib
module or by configuring itself to use 'sudo' (if available).  You may also
resolve this problem manually if you need to customize your setup.
What approach do you want?  (Choose 'local::lib', 'sudo' or 'manual')
 [local::lib] 
Autoconfigured everything but 'urllist'.
Now you need to choose your CPAN mirror sites.  You can let me
pick mirrors for you, you can select them from a list or you
can enter them by hand.
Would you like me to automatically choose some CPAN mirror
sites for you? (This means connecting to the Internet) [yes] 
Trying to fetch a mirror list from the Internet
Fetching with HTTP::Tiny:
http://www.perl.org/CPAN/MIRRORED.BY
Looking for CPAN mirrors near you (please be patient)
........................... done!
New urllist
  http://noodle.portalus.net/CPAN/
  http://cpan.llarian.net/
  http://mirrors.gossamer-threads.com/CPAN/
Autoconfiguration complete.
Attempting to bootstrap local::lib...
Writing /Users/espino/.cpan/CPAN/MyConfig.pm for bootstrap...
commit: wrote '/Users/espino/.cpan/CPAN/MyConfig.pm'
Fetching with HTTP::Tiny:
http://noodle.portalus.net/CPAN/authors/01mailrc.txt.gz
Reading '/Users/espino/.cpan/sources/authors/01mailrc.txt.gz'
............................................................................DONE
Fetching with HTTP::Tiny:
http://noodle.portalus.net/CPAN/modules/02packages.details.txt.gz
Reading '/Users/espino/.cpan/sources/modules/02packages.details.txt.gz'
  Database was generated on Tue, 20 Sep 2016 04:41:02 GMT
  HTTP::Date not available
.............
  New CPAN.pm version (v2.14) available.
  [Currently running version is v1.9800]
  You might want to try
    install CPAN
    reload cpan
  to both upgrade CPAN.pm and run the new version without leaving
  the current session.

...............................................................DONE
Fetching with HTTP::Tiny:
http://noodle.portalus.net/CPAN/modules/03modlist.data.gz
Reading '/Users/espino/.cpan/sources/modules/03modlist.data.gz'
DONE
Writing /Users/espino/.cpan/Metadata
Running make for H/HA/HAARG/local-lib-2.000019.tar.gz
Fetching with HTTP::Tiny:
http://noodle.portalus.net/CPAN/authors/id/H/HA/HAARG/local-lib-2.000019.tar.gz
Fetching with HTTP::Tiny:
http://noodle.portalus.net/CPAN/authors/id/H/HA/HAARG/CHECKSUMS
Checksum for /Users/espino/.cpan/sources/authors/id/H/HA/HAARG/local-lib-2.000019.tar.gz ok
  CPAN.pm: Building H/HA/HAARG/local-lib-2.000019.tar.gz
Attempting to create directory /Users/espino/perl5
Dispatching deprecated method 'CPAN::Config::load' to CPAN::HandleConfig
Dispatching deprecated method 'CPAN::Config::load' to CPAN::HandleConfig
Reading '/Users/espino/.cpan/Metadata'
  Database was generated on Tue, 20 Sep 2016 04:41:02 GMT
Running install for module 'ExtUtils::MakeMaker'
Running make for B/BI/BINGOS/ExtUtils-MakeMaker-7.24.tar.gz
Fetching with HTTP::Tiny:
http://noodle.portalus.net/CPAN/authors/id/B/BI/BINGOS/ExtUtils-MakeMaker-7.24.tar.gz
Fetching with HTTP::Tiny:
http://noodle.portalus.net/CPAN/authors/id/B/BI/BINGOS/CHECKSUMS
Checksum for /Users/espino/.cpan/sources/authors/id/B/BI/BINGOS/ExtUtils-MakeMaker-7.24.tar.gz ok
  CPAN.pm: Building B/BI/BINGOS/ExtUtils-MakeMaker-7.24.tar.gz
Using included version of CPAN::Meta (2.143240) as it is newer than the installed version (2.120630).
Using included version of CPAN::Meta::Requirements (2.131) as it is newer than the installed version (2.120630).
Using included version of CPAN::Meta::YAML (0.011) as it is newer than the installed version (0.007).
Using included version of ExtUtils::Manifest (1.70) as it is newer than the installed version (1.61).
Using included version of JSON::PP (2.27203) as it is newer than the installed version (2.27200).
Using included version of Parse::CPAN::Meta (1.4414) as it is newer than the installed version (1.4402).
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for ExtUtils::MakeMaker
Writing MYMETA.yml and MYMETA.json
cp inc/ExtUtils/Manifest.pm blib/lib/ExtUtils/Manifest.pm
cp lib/ExtUtils/MM_VOS.pm blib/lib/ExtUtils/MM_VOS.pm
cp lib/ExtUtils/Mksymlists.pm blib/lib/ExtUtils/Mksymlists.pm
cp lib/ExtUtils/MakeMaker/version/regex.pm blib/lib/ExtUtils/MakeMaker/version/regex.pm
cp lib/ExtUtils/MM.pm blib/lib/ExtUtils/MM.pm
cp inc/JSON/PP.pm blib/lib/JSON/PP.pm
cp lib/ExtUtils/MM_UWIN.pm blib/lib/ExtUtils/MM_UWIN.pm
cp lib/ExtUtils/testlib.pm blib/lib/ExtUtils/testlib.pm
cp lib/ExtUtils/MM_DOS.pm blib/lib/ExtUtils/MM_DOS.pm
cp lib/ExtUtils/MM_Cygwin.pm blib/lib/ExtUtils/MM_Cygwin.pm
cp lib/ExtUtils/MM_Win95.pm blib/lib/ExtUtils/MM_Win95.pm
cp lib/ExtUtils/Liblist.pm blib/lib/ExtUtils/Liblist.pm
cp lib/ExtUtils/MM_Darwin.pm blib/lib/ExtUtils/MM_Darwin.pm
cp lib/ExtUtils/MM_AIX.pm blib/lib/ExtUtils/MM_AIX.pm
cp inc/CPAN/Meta/Requirements.pm blib/lib/CPAN/Meta/Requirements.pm
cp lib/ExtUtils/Mkbootstrap.pm blib/lib/ExtUtils/Mkbootstrap.pm
cp lib/ExtUtils/Liblist/Kid.pm blib/lib/ExtUtils/Liblist/Kid.pm
cp lib/ExtUtils/MakeMaker/FAQ.pod blib/lib/ExtUtils/MakeMaker/FAQ.pod
cp inc/ExtUtils/MANIFEST.SKIP blib/lib/ExtUtils/MANIFEST.SKIP
cp lib/ExtUtils/MM_NW5.pm blib/lib/ExtUtils/MM_NW5.pm
cp lib/ExtUtils/MakeMaker/version/vpp.pm blib/lib/ExtUtils/MakeMaker/version/vpp.pm
cp lib/ExtUtils/MakeMaker/Locale.pm blib/lib/ExtUtils/MakeMaker/Locale.pm
cp lib/ExtUtils/MakeMaker.pm blib/lib/ExtUtils/MakeMaker.pm
cp lib/ExtUtils/MM_OS2.pm blib/lib/ExtUtils/MM_OS2.pm
cp inc/CPAN/Meta/Feature.pm blib/lib/CPAN/Meta/Feature.pm
cp lib/ExtUtils/Command.pm blib/lib/ExtUtils/Command.pm
cp lib/ExtUtils/MM_Unix.pm blib/lib/ExtUtils/MM_Unix.pm
cp lib/ExtUtils/MM_Win32.pm blib/lib/ExtUtils/MM_Win32.pm
cp inc/JSON/PP/Boolean.pm blib/lib/JSON/PP/Boolean.pm
cp inc/CPAN/Meta/Spec.pm blib/lib/CPAN/Meta/Spec.pm
cp inc/CPAN/Meta/History.pm blib/lib/CPAN/Meta/History.pm
cp lib/ExtUtils/MY.pm blib/lib/ExtUtils/MY.pm
cp lib/ExtUtils/MM_MacOS.pm blib/lib/ExtUtils/MM_MacOS.pm
cp lib/ExtUtils/MM_VMS.pm blib/lib/ExtUtils/MM_VMS.pm
cp inc/CPAN/Meta/Merge.pm blib/lib/CPAN/Meta/Merge.pm
cp lib/ExtUtils/MM_BeOS.pm blib/lib/ExtUtils/MM_BeOS.pm
cp lib/ExtUtils/MakeMaker/Tutorial.pod blib/lib/ExtUtils/MakeMaker/Tutorial.pod
cp inc/CPAN/Meta/YAML.pm blib/lib/CPAN/Meta/YAML.pm
cp lib/ExtUtils/MM_QNX.pm blib/lib/ExtUtils/MM_QNX.pm
cp inc/CPAN/Meta/Converter.pm blib/lib/CPAN/Meta/Converter.pm
cp lib/ExtUtils/Command/MM.pm blib/lib/ExtUtils/Command/MM.pm
cp lib/ExtUtils/MakeMaker/Config.pm blib/lib/ExtUtils/MakeMaker/Config.pm
cp inc/CPAN/Meta.pm blib/lib/CPAN/Meta.pm
cp inc/Parse/CPAN/Meta.pm blib/lib/Parse/CPAN/Meta.pm
cp inc/CPAN/Meta/Prereqs.pm blib/lib/CPAN/Meta/Prereqs.pm
cp inc/CPAN/Meta/Validator.pm blib/lib/CPAN/Meta/Validator.pm
cp lib/ExtUtils/MakeMaker/version.pm blib/lib/ExtUtils/MakeMaker/version.pm
cp lib/ExtUtils/MM_Any.pm blib/lib/ExtUtils/MM_Any.pm
cp bin/instmodsh blib/script/instmodsh
"/opt/local/bin/perl5.16" "-Iblib/arch" "-Iblib/lib" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/instmodsh
Manifying 1 pod document
Manifying 43 pod documents
  BINGOS/ExtUtils-MakeMaker-7.24.tar.gz
  /usr/bin/make -- OK
'YAML' not installed, will not store persistent state
Running make test
PERL_DL_NONLAZY=1 "/opt/local/bin/perl5.16" "-Iblib/arch" "-Iblib/lib" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00compile.t ............. ok
t/01perl_bugs.t ........... ok
t/02-xsdynamic.t .......... ld: warning: object file (compilet-57Lox.o) was built for newer OSX version (10.11) than being linked (10.4)
t/02-xsdynamic.t .......... ok
t/03-xsstatic.t ........... skipped: Disabled as broken perl installs give false negative
t/arch_check.t ............ ok
t/backwards.t ............. ok
t/basic.t ................. ok
t/build_man.t ............. ok
t/cd.t .................... ok
t/config.t ................ ok
t/cp.t .................... ok
t/dir_target.t ............ ok
t/echo.t .................. ok
t/eu_command.t ............ ok
t/FIRST_MAKEFILE.t ........ ok
t/fix_libs.t .............. ok
t/fixin.t ................. ok
t/hints.t ................. ok
t/INST.t .................. ok
t/INST_PREFIX.t ........... ok
t/INSTALL_BASE.t .......... ok
t/installed_file.t ........ ok
t/is_of_type.t ............ ok
t/Liblist.t ............... ok
t/Liblist_Kid.t ........... ok
t/make.t .................. ok
t/MakeMaker_Parameters.t .. ok
t/maketext_filter.t ....... ok
t/meta_convert.t .......... ok
t/metafile_data.t ......... ok
t/metafile_file.t ......... ok
t/min_perl_version.t ...... ok
t/miniperl.t .............. skipped: miniperl test only necessary for the perl core
t/Mkbootstrap.t ........... ok
t/MM_Any.t ................ ok
t/MM_BeOS.t ............... skipped: This is not BeOS
t/MM_Cygwin.t ............. skipped: This is not cygwin
t/MM_NW5.t ................ skipped: This is not NW5
t/MM_OS2.t ................ skipped: This is not OS/2
t/MM_Unix.t ............... ok
t/MM_VMS.t ................ skipped: This is not VMS
t/MM_Win32.t .............. skipped: This is not Win32
t/oneliner.t .............. ok
t/parse_abstract.t ........ ok
t/parse_version.t ......... ok
t/PL_FILES.t .............. ok
t/pm.t .................... ok
t/pm_to_blib.t ............ ok
t/pod2man.t ............... ok
t/postamble.t ............. ok
t/prefixify.t ............. ok
t/prereq.t ................ ok
t/prereq_print.t .......... ok
t/problems.t .............. ok
t/prompt.t ................ ok
t/recurs.t ................ ok
t/revision.t .............. ok
t/several_authors.t ....... ok
t/split_command.t ......... ok
t/test_boilerplate.t ...... ok
t/testlib.t ............... ok
t/unicode.t ............... ok
t/VERSION_FROM.t .......... ok
t/vstrings.t .............. ok
t/WriteEmptyMakefile.t .... ok
t/writemakefile_args.t .... ok
All tests successful.
Files=66, Tests=1319, 43 wallclock secs ( 0.27 usr  0.10 sys + 24.31 cusr  8.28 csys = 32.96 CPU)
Result: PASS
  BINGOS/ExtUtils-MakeMaker-7.24.tar.gz
  /usr/bin/make test -- OK
Running make install
Manifying 1 pod document
Manifying 43 pod documents
Installing /Users/espino/perl5/lib/perl5/CPAN/Meta.pm
Installing /Users/espino/perl5/lib/perl5/CPAN/Meta/Converter.pm
Installing /Users/espino/perl5/lib/perl5/CPAN/Meta/Feature.pm
Installing /Users/espino/perl5/lib/perl5/CPAN/Meta/History.pm
Installing /Users/espino/perl5/lib/perl5/CPAN/Meta/Merge.pm
Installing /Users/espino/perl5/lib/perl5/CPAN/Meta/Prereqs.pm
Installing /Users/espino/perl5/lib/perl5/CPAN/Meta/Requirements.pm
Installing /Users/espino/perl5/lib/perl5/CPAN/Meta/Spec.pm
Installing /Users/espino/perl5/lib/perl5/CPAN/Meta/Validator.pm
Installing /Users/espino/perl5/lib/perl5/CPAN/Meta/YAML.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/Command.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/Liblist.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MakeMaker.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/Manifest.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MANIFEST.SKIP
Installing /Users/espino/perl5/lib/perl5/ExtUtils/Mkbootstrap.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/Mksymlists.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MM.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MM_AIX.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MM_Any.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MM_BeOS.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MM_Cygwin.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MM_Darwin.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MM_DOS.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MM_MacOS.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MM_NW5.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MM_OS2.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MM_QNX.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MM_Unix.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MM_UWIN.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MM_VMS.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MM_VOS.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MM_Win32.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MM_Win95.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MY.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/testlib.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/Command/MM.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/Liblist/Kid.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MakeMaker/Config.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MakeMaker/FAQ.pod
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MakeMaker/Locale.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MakeMaker/Tutorial.pod
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MakeMaker/version.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MakeMaker/version/regex.pm
Installing /Users/espino/perl5/lib/perl5/ExtUtils/MakeMaker/version/vpp.pm
Installing /Users/espino/perl5/lib/perl5/JSON/PP.pm
Installing /Users/espino/perl5/lib/perl5/JSON/PP/Boolean.pm
Installing /Users/espino/perl5/lib/perl5/Parse/CPAN/Meta.pm
Installing /Users/espino/perl5/man/man1/instmodsh.1pm
Installing /Users/espino/perl5/man/man3/CPAN::Meta.3pm
Installing /Users/espino/perl5/man/man3/CPAN::Meta::Converter.3pm
Installing /Users/espino/perl5/man/man3/CPAN::Meta::Feature.3pm
Installing /Users/espino/perl5/man/man3/CPAN::Meta::History.3pm
Installing /Users/espino/perl5/man/man3/CPAN::Meta::Merge.3pm
Installing /Users/espino/perl5/man/man3/CPAN::Meta::Prereqs.3pm
Installing /Users/espino/perl5/man/man3/CPAN::Meta::Requirements.3pm
Installing /Users/espino/perl5/man/man3/CPAN::Meta::Spec.3pm
Installing /Users/espino/perl5/man/man3/CPAN::Meta::Validator.3pm
Installing /Users/espino/perl5/man/man3/CPAN::Meta::YAML.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::Command.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::Command::MM.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::Liblist.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::MakeMaker.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::MakeMaker::Config.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::MakeMaker::FAQ.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::MakeMaker::Locale.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::MakeMaker::Tutorial.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::Manifest.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::Mkbootstrap.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::Mksymlists.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::MM.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::MM_AIX.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::MM_Any.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::MM_BeOS.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::MM_Cygwin.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::MM_Darwin.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::MM_DOS.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::MM_MacOS.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::MM_NW5.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::MM_OS2.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::MM_QNX.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::MM_Unix.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::MM_UWIN.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::MM_VMS.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::MM_VOS.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::MM_Win32.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::MM_Win95.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::MY.3pm
Installing /Users/espino/perl5/man/man3/ExtUtils::testlib.3pm
Installing /Users/espino/perl5/man/man3/JSON::PP.3pm
Installing /Users/espino/perl5/man/man3/JSON::PP::Boolean.3pm
Installing /Users/espino/perl5/man/man3/Parse::CPAN::Meta.3pm
Installing /Users/espino/perl5/bin/instmodsh
Appending installation info to /Users/espino/perl5/lib/perl5/darwin-thread-multi-2level/perllocal.pod
  BINGOS/ExtUtils-MakeMaker-7.24.tar.gz
  /usr/bin/make install  -- OK
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for local::lib
Writing MYMETA.yml and MYMETA.json
cp lib/POD2/PT_BR/local/lib.pod blib/lib/POD2/PT_BR/local/lib.pod
cp lib/lib/core/only.pm blib/lib/lib/core/only.pm
cp lib/local/lib.pm blib/lib/local/lib.pm
cp lib/POD2/DE/local/lib.pod blib/lib/POD2/DE/local/lib.pod
Manifying 4 pod documents
  HAARG/local-lib-2.000019.tar.gz
  /usr/bin/make -- OK
'YAML' not installed, will not store persistent state
Running make test
PERL_DL_NONLAZY=1 "/opt/local/bin/perl5.16" "-I/Users/espino/perl5/lib/perl5" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/bad_variables.t ...... ok
t/carp-mismatch.t ...... ok
t/classmethod.t ........ ok
t/coderefs_in_inc.t .... ok
t/de-dup.t ............. ok
t/lib-core-only.t ...... ok
t/pipeline.t ........... ok
t/shell.t .............. ok
t/stackable.t .......... ok
t/subroutine-in-inc.t .. ok
t/taint-mode.t ......... ok
All tests successful.
Files=11, Tests=245,  6 wallclock secs ( 0.06 usr  0.02 sys +  3.65 cusr  1.14 csys =  4.87 CPU)
Result: PASS
  HAARG/local-lib-2.000019.tar.gz
  /usr/bin/make test -- OK
Running make install
Manifying 4 pod documents
Installing /Users/espino/perl5/lib/perl5/lib/core/only.pm
Installing /Users/espino/perl5/lib/perl5/local/lib.pm
Installing /Users/espino/perl5/lib/perl5/POD2/DE/local/lib.pod
Installing /Users/espino/perl5/lib/perl5/POD2/PT_BR/local/lib.pod
Installing /Users/espino/perl5/man/man3/lib::core::only.3pm
Installing /Users/espino/perl5/man/man3/local::lib.3pm
Installing /Users/espino/perl5/man/man3/POD2::DE::local::lib.3pm
Installing /Users/espino/perl5/man/man3/POD2::PT_BR::local::lib.3pm
Appending installation info to /Users/espino/perl5/lib/perl5/darwin-thread-multi-2level/perllocal.pod
  HAARG/local-lib-2.000019.tar.gz
  /usr/bin/make install  -- OK
local::lib is installed. You must now add the following environment variables
to your shell configuration files (or registry, if you are on Windows) and
then restart your command line shell and CPAN before installing modules:
PATH="/Users/espino/perl5/bin${PATH:+:${PATH}}"; export PATH;
PERL5LIB="/Users/espino/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB;
PERL_LOCAL_LIB_ROOT="/Users/espino/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT;
PERL_MB_OPT="--install_base \"/Users/espino/perl5\""; export PERL_MB_OPT;
PERL_MM_OPT="INSTALL_BASE=/Users/espino/perl5"; export PERL_MM_OPT;
Would you like me to append that to /Users/espino/.bashrc now? [yes] 

commit: wrote '/Users/espino/.cpan/CPAN/MyConfig.pm'
You can re-run configuration any time with 'o conf init' in the CPAN shell
Running install for module 'JSON'
Running make for M/MA/MAKAMAKA/JSON-2.90.tar.gz
Fetching with HTTP::Tiny:
http://noodle.portalus.net/CPAN/authors/id/M/MA/MAKAMAKA/JSON-2.90.tar.gz
Fetching with HTTP::Tiny:
http://noodle.portalus.net/CPAN/authors/id/M/MA/MAKAMAKA/CHECKSUMS
Checksum for /Users/espino/.cpan/sources/authors/id/M/MA/MAKAMAKA/JSON-2.90.tar.gz ok
  CPAN.pm: Building M/MA/MAKAMAKA/JSON-2.90.tar.gz
Welcome to JSON (v.2.90)
=============================

 *************************** CAUTION **************************************
 *                                                                        *
 * INCOMPATIBLE CHANGE (JSON::XS version 2.90)                            *
 *                                                                        *
 * JSON.pm had patched JSON::XS::Boolean and JSON::PP::Boolean internally *
 * on loading time for making these modules inherit JSON::Boolean.        *
 * But since JSON::XS v3.0 it use Types::Serialiser as boolean class.     *
 * Then now JSON.pm breaks boolean classe overload features and           *
 * -support_by_pp if JSON::XS v3.0 or later is installed.                 *
 *                                                                        *
 * JSON::true and JSON::false returned JSON::Boolean objects.             *
 * For workaround, they return JSON::PP::Boolean objects in this version. *
 *                                                                        *
 *     isa_ok(JSON::true, 'JSON::PP::Boolean');                           *
 *                                                                        *
 * And it discards a feature:                                             *
 *                                                                        *
 *     ok(JSON::true eq 'true');                                          *
 *                                                                        *
 * In other word, JSON::PP::Boolean overload numeric only.                *
 *                                                                        *
 *     ok( JSON::true == 1 );                                             *
 *                                                                        *
 **************************************************************************

 ************************** CAUTION **************************
 * This is 'JSON version 2' and there are many differences   *
 * to version 1.xx                                           *
 * Please check your applications useing old version.        *
 *   See to 'INCOMPATIBLE CHANGES TO OLD VERSION' and 'TIPS' *
 *************************************************************

Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for JSON
Writing MYMETA.yml and MYMETA.json
cp lib/JSON/backportPP/Compat5005.pm blib/lib/JSON/backportPP/Compat5005.pm
cp lib/JSON.pm blib/lib/JSON.pm
cp lib/JSON/backportPP/Compat5006.pm blib/lib/JSON/backportPP/Compat5006.pm
cp lib/JSON/backportPP/Boolean.pm blib/lib/JSON/backportPP/Boolean.pm
cp lib/JSON/backportPP.pm blib/lib/JSON/backportPP.pm
Manifying 5 pod documents
  MAKAMAKA/JSON-2.90.tar.gz
  /usr/bin/make -- OK
Running make test
PERL_DL_NONLAZY=1 "/opt/local/bin/perl5.16" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00_load.t ................. ok
t/00_pod.t .................. skipped: Test::Pod 1.00 required for testing POD
t/01_utf8.t ................. ok
t/02_error.t ................ ok
t/03_types.t ................ ok
t/06_pc_pretty.t ............ ok
t/07_pc_esc.t ............... ok
t/08_pc_base.t .............. ok
t/09_pc_extra_number.t ...... ok
t/10_pc_keysort.t ........... ok
t/11_pc_expo.t .............. ok
t/12_blessed.t .............. ok
t/13_limit.t ................ ok
t/14_latin1.t ............... ok
t/15_prefix.t ............... ok
t/16_tied.t ................. ok
t/17_relaxed.t .............. ok
t/18_json_checker.t ......... ok
t/19_incr.t ................. ok
t/20_unknown.t .............. ok
t/21_evans_bugrep.t ......... ok
t/22_comment_at_eof.t ....... ok
t/99_binary.t ............... ok
t/e00_func.t ................ ok
t/e01_property.t ............ ok
t/e02_bool.t ................ ok
t/e03_bool2.t ............... ok
t/e04_sortby.t .............. ok
t/e05_esc_slash.t ........... ok
t/e06_allow_barekey.t ....... ok
t/e07_allow_singlequote.t ... ok
t/e08_decode.t .............. ok
t/e09_encode.t .............. ok
t/e10_bignum.t .............. ok
t/e11_conv_blessed_univ.t ... ok
t/e12_upgrade.t ............. ok
t/e13_overloaded_eq.t ....... ok
t/e14_decode_prefix.t ....... ok
t/e15_tie_ixhash.t .......... ok
t/e16_incr_parse_fixed.t .... ok
t/e90_misc.t ................ ok
t/x00_load.t ................ ok
t/x02_error.t ............... ok
t/x12_blessed.t ............. ok
t/x16_tied.t ................ ok
t/x17_strange_overload.t .... ok
t/xe01_property.t ........... ok
t/xe02_bool.t ............... ok
t/xe03_bool2.t .............. ok
t/xe04support_by_pp.t ....... ok
t/xe05_indent_length.t ...... ok
t/xe08_decode.t ............. ok
t/xe10_bignum.t ............. ok
t/xe11_conv_blessed_univ.t .. ok
t/xe12_boolean.t ............ ok
t/xe19_xs_and_suportbypp.t .. ok
t/xe20_croak_message.t ...... ok
t/xe21_is_pp.t .............. ok
All tests successful.
Files=58, Tests=3801,  3 wallclock secs ( 0.35 usr  0.10 sys +  3.04 cusr  0.33 csys =  3.82 CPU)
Result: PASS
  MAKAMAKA/JSON-2.90.tar.gz
  /usr/bin/make test -- OK
Running make install
Manifying 5 pod documents
Installing /Users/espino/perl5/lib/perl5/JSON.pm
Installing /Users/espino/perl5/lib/perl5/JSON/backportPP.pm
Installing /Users/espino/perl5/lib/perl5/JSON/backportPP/Boolean.pm
Installing /Users/espino/perl5/lib/perl5/JSON/backportPP/Compat5005.pm
Installing /Users/espino/perl5/lib/perl5/JSON/backportPP/Compat5006.pm
Installing /Users/espino/perl5/man/man3/JSON.3pm
Installing /Users/espino/perl5/man/man3/JSON::backportPP.3pm
Installing /Users/espino/perl5/man/man3/JSON::backportPP::Boolean.3pm
Installing /Users/espino/perl5/man/man3/JSON::backportPP::Compat5005.3pm
Installing /Users/espino/perl5/man/man3/JSON::backportPP::Compat5006.3pm
Appending installation info to /Users/espino/perl5/lib/perl5/darwin-thread-multi-2level/perllocal.pod
  MAKAMAKA/JSON-2.90.tar.gz
  /usr/bin/make install  -- OK	[many output stuff....]
00:05 $
00:05 $ perl tidycat.pl -dd foo.json -df json *.h
Fatal Error: The required package JSON is not installed -- please download it from www.cpan.org
00:05 $
00:05 $ PATH="/Users/espino/perl5/bin${PATH:+:${PATH}}"; export PATH;
00:05 $ PERL5LIB="/Users/espino/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB;
00:05 $ PERL_LOCAL_LIB_ROOT="/Users/espino/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT;
00:05 $ PERL_MB_OPT="--install_base \"/Users/espino/perl5\""; export PERL_MB_OPT;
00:05 $ PERL_MM_OPT="INSTALL_BASE=/Users/espino/perl5"; export PERL_MM_OPT;
00:05 $
00:05 $ perl tidycat.pl -dd 2.0.json -df json *.h
00:05 $