Haproxy GZIP is not a supported algorithm - haproxy

I am trying to use GZIP with Haproxy and I have it compiled with ZLIB but I still get a parsing [/etc/haproxy/haproxy.cfg:33] : 'compression' : 'gzip' is not a supported algorithm error.
Haproxy -vv
HA-Proxy version 1.6.9 2016/08/30
Copyright 2000-2016 Willy Tarreau <willy#haproxy.org>
Build options :
TARGET = linux2628
CPU = generic
CC = gcc
CFLAGS = -O2 -g -fno-strict-aliasing -DTCP_USER_TIMEOUT=18
OPTIONS = USE_LINUX_TPROXY=1 USE_ZLIB=1 USE_REGPARM=1 USE_OPENSSL=1 USE_PCRE=1 USE_PCRE_JIT=1
Default settings :
maxconn = 2000, bufsize = 16384, maxrewrite = 1024, maxpollevents = 200
Encrypted password support via crypt(3): yes
Built with zlib version : 1.2.7
Compression algorithms supported : identity("identity"), deflate("deflate"), raw-deflate("deflate"), gzip("gzip")
Built with OpenSSL version : OpenSSL 1.0.2j 26 Sep 2016
Running on OpenSSL version : OpenSSL 1.0.2j 26 Sep 2016
OpenSSL library supports TLS extensions : yes
OpenSSL library supports SNI : yes
OpenSSL library supports prefer-server-ciphers : yes
Built with PCRE version : 8.32 2012-11-30
PCRE library supports JIT : yes
Built without Lua support
Built with transparent proxy support using: IP_TRANSPARENT IPV6_TRANSPARENT IP_FREEBIND
Available polling systems :
epoll : pref=300, test result OK
poll : pref=200, test result OK
select : pref=150, test result OK
Total: 3 (3 usable), will use epoll.

I also encountered this problem. When I try make USE_ZLIB=yes, it works!
make -j $(nproc) TARGET=generic USE_GZIP=1 USE_OPENSSL=1 USE_ZLIB=yes SSL_INC=/usr/local/include SSL_LIB=/usr/local/lib64
see https://www.haproxy.com/blog/haproxy-and-gzip-compression/

Related

Perl/Postgresql: sslmode value "require" invalid when SSL support is not compiled

I'm trying to connect to a Postgresql 12.1 DB instance using Perl 5.26.1 on SLES12 machine, but running into errors. My test script is straightforward.
#!/usr/pkgs/perl/5.26.1/bin/perl
use DBI;
my $dbname = "XXX";
my $host = "XXX";
my $port = XXX;
my $username = "XXX";
my $password = "XXX";
my $dbh = DBI -> connect("dbi:Pg:dbname=$dbname;sslmode=require;host=$host;port=$port",
$username,
$password,
{AutoCommit => 0, RaiseError => 1}
) or die $DBI::errstr;
When I run this script, I get the following error: sslmode value "require" invalid when SSL support is not compiled in at...
I have set LD_LIBRARY_PATH to point to my local version for the libpq library (built from sources postgresql-13.3). I built this library with --open-ssl support. I confirmed this with pg_config --configure.
$ ./bin/pg_config --configure
'--prefix' '/myworkarea/tmp/local' '--with-perl' '--with-python' '--with-tcl' '--with-openssl' '--with-ldap' '--with-pam' '--with-libxml' '--with-libxslt'
I can connect to the DB without any issues using pgAdmin. I confirmed it has support for connecting to Postgres via DBD:Pg.
$ perl -MDBI -e 'DBI->installed_versions'
Perl : 5.026001 (x86_64-linux)
OS : linux (4.4.49-92.14-default)
DBI : 1.639
DBD::mysql : 4.043
DBD::Sybase : 1.16
DBD::Sponge : 12.010003
DBD::SQLite : 1.54
DBD::Proxy : 0.2004
DBD::Pg : 3.7.4
DBD::Oracle : 1.80
DBD::ODBC : 1.56
DBD::Multiplex : 2.11
DBD::Mock : 1.45
DBD::Mem : 0.001
DBD::LDAP : 0.22
DBD::Gofer : 0.015327
DBD::File : 0.44
DBD::ExampleP : 12.014311
DBD::DBM : 0.08
DBD::CSV : 0.49
But I look at the Pg.so to find the dependencies, but it seems like it is still pointing to the system installed filed instead of my version. How do I fix this?
$ ldd /usr/pkgs/perl/5.26.1/lib64/site_perl/x86_64-linux/auto/DBD/Pg/Pg.so
linux-vdso.so.1 (0x00007ffff7ffa000)
libpq.so.5 => /usr/pkgs/postgresql/9.5.0/lib/libpq.so.5 (0x00007ffff797b000) <-- Not picking up my setting from LD_LIBRARY_PATH
libm.so.6 => /lib64/libm.so.6 (0x00007ffff767e000)
libc.so.6 => /lib64/libc.so.6 (0x00007ffff72d9000)
libpthread.so.0 => /lib64/noelision/libpthread.so.0 (0x00007ffff70bc000)
/lib64/ld-linux-x86-64.so.2 (0x00007ffff7ddb000)
The PostgreSQL client shared library (libpq) that is linked with DBD::Pg was built without SSL support. That won't work. You have to use a libpq that is built with SSL support.
This requires doing two things:
Configure PostgreSQL with the --with-openssl switch.
Build the DBD:Pg module to link with the libraries in 1) by setting the POSTGRES_LIB, POSTGRES_HOME environment variables. See the README section on installation.

Ganglia installations fails in centos7 (rrd_create in -lrrd... no)

When i try to install ganglia in centos7, I am getting following error
Configuring libmetrics ...
checking for pthread_create in -lpthread... yes
checking for pthread_create in -lpthreads... no
checking rrd.h usability... yes
checking rrd.h presence... yes
checking for rrd.h... yes
checking for rrd_create in -lrrd... no
Trying harder by including the X library path
checking for rrd_create in -lrrd... no
But I have rrd tool already installed
rrdtool -v
RRDtool 1.4.8 Copyright 1997-2013 by Tobias Oetiker <tobi#oetiker.ch>
Compiled Nov 20 2015 19:23:48
configure command:
./configure LDFLAGS="-L/usr/lib64" --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-gmetad --enable-status --sysconfdir=/etc/ganglia
Answer:
On looking at config.log file we see
/usr/lib64/libEGL.so.1: undefined reference to `drmFreeDevice'
symbols of libEGL.so are not available. hence did update which fixed the issue.
sudo yum -y update -- fixed the issue

Segfault on mongodb extension 1.1.2/1.1.3-dev with PHP 7 FPM under gentoo

I am heaving a strange problem under gentoo. Mongodb extension is working fine in apache2 and cli, but fpm fails to start:
/etc/init.d/php-fpm restart
* Testing PHP FastCGI Process Manager configuration ...
[30-Jan-2016 13:59:47] NOTICE: configuration file /etc/php/fpm-php7.0/php-fpm.conf test is successful
zend_mm_heap corrupted [ !! ]
php -v
PHP 7.0.2-pl5-gentoo (cli) (built: Jan 30 2016 13:16:21) ( ZTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
Here is the info from cli:
php -i|grep mongo
mongodb
mongodb support => enabled
mongodb version => 1.1.3-dev
mongodb stability => devel
libmongoc version => 1.3.1-dev
mongodb.debug => no value => no value
I even compiled mongodb without sasl but the result is the same.
Mongodb extension was manually compiled like this(my system is x86_64):
git clone https://github.com/mongodb/mongo-php-driver.git
cd mongo-php-driver; git submodule sync && git submodule update --init
Run phpize:
phpize --clean
phpize
Remove the aclocal.m4 file:
rm aclocal.m4
Run aclocal and autoconf:
aclocal
autoconf
Now configure, make and install the package:
./configure --without-mongodb_sasl (i tried with and without this)
make
make install
add extension=mongodb.so in php.ini: /etc/php/fpm-php7.0/php.ini
restart php-fpm: /etc/init.d/php-fpm restart
The strangest thing is that if i start php-fpm process with gdb to backtrace the extensions works.
gdb -q /usr/lib/php7.0/bin/php-fpm
Reading symbols from /usr/lib/php7.0/bin/php-fpm...(no debugging symbols found)...done.
(gdb) set args --pid /run/php-fpm.pid --fpm-config /etc/php/fpm-php7.0/php-fpm.conf -c /etc/php/fpm-php7.0/
(gdb) run
Starting program: /usr/lib64/php7.0/bin/php-fpm --pid /run/php-fpm.pid --fpm-config /etc/php/fpm-php7.0/php-fpm.conf -c /etc/php/fpm-php7.0/
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[Inferior 1 (process 4075) exited normally]
(gdb)
Any help is apreciated
For the sake of the lazy googler, this is fixed in version 1.1.5 of the php-mongodb-driver

Cannot install Perl module due to missing cc1 compiler on Ubuntu 14.04

I am trying to install Moose using cpanm on Ubuntu 14.04, but I get an error saying:
Running Makefile.PL
Configuring Moose-2.1210 ... cc: error trying to exec 'cc1': execvp: No such file or directory
This distribution requires a working compiler at Makefile.PL line 52.
N/A
! Configure failed for Moose-2.1210. See /home/hakon/.cpanm/work/1407056127.30229/build.log for details.
I have installed gcc compiler version 4.8.2. :
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.8/lto-wrapper
Target: i686-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.2-19ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-i386/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-i386 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-i386 --with-arch-directory=i386 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-targets=all --enable-multiarch --disable-werror --with-arch-32=i686 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu
Thread model: posix
gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1)
Here is more output (the whole output is available here):
$ cpanm -v Moose
cpanm (App::cpanminus) 1.7004 on perl 5.018002 built for i686-linux-gnu-thread-multi-64int
Work directory is /home/hakon/.cpanm/work/1407056507.30283
You have make /usr/bin/make
You have LWP 6.05
You have /bin/tar: tar (GNU tar) 1.27.1
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by John Gilmore and Jay Fenlason.
You have /usr/bin/unzip
Checking if you have ExtUtils::MakeMaker 6.31 ... Yes (6.66)
Checking if you have ExtUtils::Install 1.46 ... Yes (1.59)
Searching Moose on cpanmetadb ...
Unpacking Moose-2.1210.tar.gz
--> Working on Moose
Fetching http://www.cpan.org/authors/id/E/ET/ETHER/Moose-2.1210.tar.gz ... OK
Moose-2.1210/
Moose-2.1210/author/
Moose-2.1210/benchmarks/
Moose-2.1210/bin/
Moose-2.1210/Changes
Moose-2.1210/Changes.Class-MOP
Moose-2.1210/dist.ini
Moose-2.1210/doc/
Moose-2.1210/inc/
Moose-2.1210/lib/
Moose-2.1210/LICENSE
Moose-2.1210/Makefile.PL
Moose-2.1210/MANIFEST
Moose-2.1210/META.json
Moose-2.1210/META.yml
Moose-2.1210/mop.c
Moose-2.1210/mop.h
...
<cut>
...
Moose-2.1210/benchmarks/cmop/run_yml.pl
Moose-2.1210/benchmarks/cmop/lib/Bench/
Moose-2.1210/benchmarks/cmop/lib/MOP/
Moose-2.1210/benchmarks/cmop/lib/Plain/
Moose-2.1210/benchmarks/cmop/lib/Plain/Point.pm
Moose-2.1210/benchmarks/cmop/lib/Plain/Point3D.pm
Moose-2.1210/benchmarks/cmop/lib/MOP/Immutable/
Moose-2.1210/benchmarks/cmop/lib/MOP/Installed/
Moose-2.1210/benchmarks/cmop/lib/MOP/Point.pm
Moose-2.1210/benchmarks/cmop/lib/MOP/Point3D.pm
Moose-2.1210/benchmarks/cmop/lib/MOP/Installed/Point.pm
Moose-2.1210/benchmarks/cmop/lib/MOP/Installed/Point3D.pm
Moose-2.1210/benchmarks/cmop/lib/MOP/Immutable/Point.pm
Moose-2.1210/benchmarks/cmop/lib/MOP/Immutable/Point3D.pm
Moose-2.1210/benchmarks/cmop/lib/Bench/Accessor.pm
Moose-2.1210/benchmarks/cmop/lib/Bench/Construct.pm
Moose-2.1210/benchmarks/cmop/lib/Bench/Run.pm
Moose-2.1210/author/docGenerator.pl
Moose-2.1210/author/extract-inline-tests
Moose-2.1210/author/find-dupe-test-numbers
Entering Moose-2.1210
Checking configure dependencies from META.json
Checking if you have Dist::CheckConflicts 0.02 ... Yes (0.11)
Checking if you have ExtUtils::MakeMaker 6.30 ... Yes (6.66)
Checking if you have File::Spec 0 ... Yes (3.40)
Checking if you have ExtUtils::CBuilder 0.27 ... Yes (0.280210)
Running Makefile.PL
Configuring Moose-2.1210 ... cc: error trying to exec 'cc1': execvp: No such file or directory
This distribution requires a working compiler at Makefile.PL line 52.
! Configure failed for Moose-2.1210. See /home/hakon/.cpanm/work/1407056507.30283/build.log for details.
N/A

Compiling Ncurses on Solaris - "Compiler or options invalid for pre-UNIX 03 X/Open applications and pre-2001 POSIX applications"?

I'm trying to compile a GNU stack on Solaris 10 (x86).
I've managed to get the following up so far:
GMP
MPFR
MPC
GCC
binutils
libiconv
gettext
I'm currently trying to build Ncurses, and I'm hitting an error:
/db/pub/eq/tools/bin/g++ -I../c++ -I../include -I/db/pub/eq/src/ncurses-5.9/c++ -DHAVE_CONFIG_H -D__EXTENSIONS__ -D_XOPEN_SOURCE=500 -D_FILE_OFFSET_BITS=64 -DNDEBUG -I. -I../include -I/db/pub/eq/src/ncurses-5.9/c++/../include -I/db/pub/eq/tools/include/ncurses -O2 -c /db/pub/eq/src/ncurses-5.9/c++/cursesf.cc -o ../objects/cursesf.o
<command-line>:0:0: warning: "_XOPEN_SOURCE" redefined [enabled by default]
<built-in>:0:0: note: this is the location of the previous definition
In file included from /usr/include/iso/stdlib_iso.h:30:0,
from /usr/include/stdlib.h:18,
from /db/pub/eq/src/ncurses-5.9/c++/internal.h:53,
from /db/pub/eq/src/ncurses-5.9/c++/cursesf.cc:34:
/db/pub/eq/tools/lib/gcc/i386-pc-solaris2.10/4.6.1/include-fixed/sys/feature_tests.h:341:2: error: #error "Compiler or options invalid for pre-UNIX 03 X/Open applications and pre-2001 POSIX applications"
*** Error code 1
make: Fatal error: Command failed for target `../objects/cursesf.o'
Current working directory /db/pub/eq/src/ncurses-5.9/c++
*** Error code 1
make: Fatal error: Command failed for target `all'
I'm not quite sure what the above error (Compiler or options invalid for pre-UNIX 03 X/Open applications and pre-2001 POSIX applications) means, or how to troubleshoot it.
I saw this error once before when I was building MPC (during gmake check), but I had no idea what it meant then, or how to fix it - but since it was in checks, it was ok.
Cheers,
Victor
apply this patch to the configure script:
--- configure.orig Fri Aug 5 14:28:28 2011
+++ configure Fri Aug 5 14:31:11 2011
## -7246,7 +7246,7 ##
# setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
;;
solaris2.1[0-9]) #(vi
- cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+ cf_xopen_source="-D__EXTENSIONS__"
;;
solaris2.[1-9]) #(vi
cf_xopen_source="-D__EXTENSIONS__"
Ncurses 5.6 did not define _XOPEN_SOURCE for solaris either.
Cheers