Last active
March 8, 2019 10:48
-
-
Save codingtony/24fab751202dff4d547c to your computer and use it in GitHub Desktop.
Recipe to build HAProxy 1.7 using LibreSSL. Builds an almost static binary. See https://github.com/codingtony/docker-build-haproxy for how to use with a Docker Image
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash -e | |
DIR=$PWD/work | |
mkdir -p ${DIR} | |
rm -f ${DIR}/*.tar.gz | |
LIBRESSL=libressl-2.4.5 | |
HAPROXY=haproxy-1.7.5 | |
PCRE=pcre-8.39 | |
LUA=lua-5.3.0 | |
READLINE=readline-6.3 | |
NCURSES=ncurses-6.0 | |
ZLIB=zlib-1.2.11 | |
cd ${DIR} | |
rm -rf ${NCURSES} | |
export STATIC_NCURSES=${DIR}/target/${NCURSES} | |
wget https://ftp.gnu.org/pub/gnu/ncurses/${NCURSES}.tar.gz | |
tar xvzf ${NCURSES}.tar.gz | |
cd ${NCURSES} | |
./configure --prefix=${STATIC_NCURSES} --enable-shared=no | |
make && make install | |
export LD_LIBRARY_PATH=${STATIC_NCURSES}/lib:${LD_LIBRARY_PATH} | |
cd ${DIR} | |
rm -rf ${ZLIB} | |
export STATIC_ZLIB=${DIR}/target/${ZLIB} | |
wget http://zlib.net/${ZLIB}.tar.gz | |
tar xvzf ${ZLIB}.tar.gz | |
cd ${ZLIB} | |
./configure --prefix=${STATIC_ZLIB} --static | |
make && make install | |
export LD_LIBRARY_PATH=${STATIC_ZLIB}/lib:${LD_LIBRARY_PATH} | |
cd ${DIR} | |
rm -rf ${READLINE} | |
export STATIC_READLINE=${DIR}/target/${READLINE} | |
wget https://ftp.gnu.org/gnu/readline/${READLINE}.tar.gz | |
tar xvzf ${READLINE}.tar.gz | |
cd ${READLINE} | |
./configure --prefix=${STATIC_READLINE} --enable-static=true | |
make && make install | |
export LD_LIBRARY_PATH=${STATIC_READLINE}/lib:${LD_LIBRARY_PATH} | |
cd ${DIR} | |
rm -rf ${LUA} | |
wget http://www.lua.org/ftp/${LUA}.tar.gz | |
export STATIC_LUA=${DIR}/target/${LUA} | |
tar xvzf ${LUA}.tar.gz | |
cd ${LUA} | |
make MYCFLAGS="-I${STATIC_READLINE}/include" MYLDFLAGS="-L${STATIC_READLINE}/lib -L${STATIC_NCURSES}/lib -lreadline -lncurses" linux | |
make INSTALL_TOP=${DIR}/target/${LUA} install | |
export LD_LIBRARY_PATH=${STATIC_LUA}/lib:${LD_LIBRARY_PATH} | |
cd ${DIR} | |
wget http://ftp.openbsd.org/pub/OpenBSD/LibreSSL/${LIBRESSL}.tar.gz | |
export STATIC_LIBRESSL=${DIR}/target/${LIBRESSL} | |
tar xvzf ${LIBRESSL}.tar.gz | |
cd ${LIBRESSL} | |
./configure --prefix=$STATIC_LIBRESSL --enable-shared=no | |
make && make install | |
cd ${DIR} | |
export STATIC_PCRE=${DIR}/target/${PCRE} | |
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${PCRE}.tar.gz | |
tar xvzf ${PCRE}.tar.gz | |
cd ${PCRE} | |
./configure --prefix=$STATIC_PCRE --enable-shared=no --enable-utf8 --enable-jit | |
make && make install | |
cd ${DIR} | |
wget http://www.haproxy.org/download/1.7/src/${HAPROXY}.tar.gz | |
tar xvzf ${HAPROXY}.tar.gz | |
cd ${HAPROXY} | |
make TARGET=linux2628 USE_PCRE_JIT=1 USE_LUA=1 USE_ZLIB=1 USE_STATIC_PCRE=1 USE_OPENSSL=1 ZLIB_LIB=${STATIC_ZLIB}/lib ZLIB_INC=${STATIC_ZLIB}/include PCRE_LIB=${STATIC_PCRE}/lib PCRE_INC=${STATIC_PCRE}/include SSL_INC=${STATIC_LIBRESSL}/include SSL_LIB=${STATIC_LIBRESSL}/lib LUA_INC=${STATIC_LUA}/include LUA_LIB=${STATIC_LUA}/lib ADDLIB="-ldl -lrt -lz" | |
make DESTDIR=${DIR}/target/haproxy/ install | |
cd ${DIR} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment