#!/bin/sh if [ -z "${PKGVER##*.*}" ]; then # eg: "1.7-dev4" SRC_GIT_COMMIT="v${PKGVER}" else # eg: "20150909-07101d5a" SRC_GIT_COMMIT="${PKGVER##*-}" fi SRC_FETCH_METHOD="http" SRC_FETCH_PATH="http://git.formilux.org/?p=people/willy/haproxy.git;a=snapshot;h=$SRC_GIT_COMMIT;sf=tgz" # This is the development version of haproxy with ssl, slz, pcre, jemalloc. # Relies on FLX_USE_OPENSSL{,_STAT}, FLX_USE_PCRE{,_STAT}, FLX_USE_JEMALLOC{,_STAT}, # and FLX_USE_HAPROXY_STAT. Example : # FLX_USE_OPENSSL_STAT=1 FLX_USE_PCRE_STAT=1 FLX_USE_HAPROXY_STAT=1 FLXARCH=x86_64 pkg prepare # FLX_USE_OPENSSL_STAT=1 FLX_USE_PCRE_STAT=1 FLX_USE_HAPROXY_STAT=1 FLXARCH=x86_64 pkg compile # Patches below 1000 are bugfixes and initial backports. # Patches above 1000 are package-specific and late backports (eg: dlmalloc below). PATCH_LIST=" " if [ -n "$FLX_USE_OPENSSL" -a -z "$FLX_USE_HAPROXY_STAT" ]; then DEP_OPENSSL=( "openssl-*:::*.h *.so *.so.*" ) elif [ -n "${FLX_USE_OPENSSL}${FLX_USE_OPENSL_STAT}" ]; then DEP_OPENSSL=( "openssl-*:::*.h *.a" ) else DEP_OPENSSL=( ) fi if [ -n "$FLX_USE_PCRE" -a -z "$FLX_USE_HAPROXY_STAT" ]; then DEP_PCRE=( "pcre-*:::*.h *.so *.so.*" ) elif [ -n "${FLX_USE_PCRE}${FLX_USE_PCRE_STAT}" ]; then DEP_PCRE=( "pcre-*:::*.h *.a" ) else DEP_PCRE=( ) fi if [ -n "$FLX_USE_JEMALLOC" -a -z "$FLX_USE_HAPROXY_STAT" ]; then DEP_JEMALLOC=( "jemalloc-*:::*.h *.so *.so.*" ) elif [ -n "${FLX_USE_JEMALLOC}${FLX_USE_JEMALLOC_STAT}" ]; then DEP_JEMALLOC=( "jemalloc-*:::*.h *.a" ) else DEP_JEMALLOC=( ) fi MAKEDEPENDS=( "${DEP_PCRE[@]}" "${DEP_OPENSSL[@]}" "${DEP_JEMALLOC[@]}" "libslz-*:::*.h *.a" ) # This pkg is built with smaller options allowing it to support a higher number # of simultaneous connections, typically 5000 with 256 MB memory including the # sockets and the system, or 40000 with 1 GB RAM. FILE_LIST= HAPROXY_VERSION="${PKGVER}" HAPROXY_SUBVERS="-${DISTVER}_${VERSFX}" HAPROXY_DATE="$(date +%Y/%m/%d)" function do_compile_only { # halog ( cd contrib/halog $FLXMAKE CC=$CC halog ) # haproxy case "$FLX_ARCH_SMALL" in i?86) REGPARM=1 ; VSYSCALL=1 ; FUTEX=1 ;; x86*) REGPARM=1 ; VSYSCALL= ; FUTEX=1 ;; *) REGPARM= ; VSYSCALL= ; FUTEX= ;; esac # splice() was introduced in glibc-2.6 # accept4() was introduced in glibc-2.10 case "$(readlink $FLXROOTDIR/lib/libc.so.?)" in libc-2.[0-5].*) MY_SPLICE=1 ; MY_ACCEPT4=1 ;; libc-2.[6-9].*) MY_SPLICE= ; MY_ACCEPT4=1 ;; libc-2.1*.*) MY_SPLICE= ; MY_ACCEPT4= ;; *) MY_SPLICE= ; MY_ACCEPT4= ;; esac if [ -z "${FLXARCH##arm*}" ]; then USE_ACCEPT4= else USE_ACCEPT4=implicit fi SYSTEM_MAXCONN= ; DEFAULT_MAXCONN=10000 ; MEMMAX= $FLXPMAKE CC="$CC" EXTRA= \ LDFLAGS="\$(ARCH_FLAGS) -g ${FLX_USE_HAPROXY_STAT:+-static}" \ ADDLIB="${FLX_USE_JEMALLOC:+-ljemalloc} ${FLX_USE_JEMALLOC_STAT:+-ljemalloc} -lpthread -ldl" \ TARGET=linux2628 USE_PCRE="${FLX_USE_PCRE}${FLX_USE_PCRE_STAT}" PCREDIR=$FLXROOTDIR/usr \ SMALL_OPTS="${SYSTEM_MAXCONN:+-DSYSTEM_MAXCONN=$SYSTEM_MAXCONN }${DEFAULT_MAXCONN:+-DDEFAULT_MAXCONN=$DEFAULT_MAXCONN }-DDEFAULT_SSL_MAX_RECORD=2859" \ USE_MY_SPLICE=${MY_SPLICE} USE_ACCEPT4=${USE_ACCEPT4} USE_MY_ACCEPT4=${MY_ACCEPT4} USE_TFO=1 \ USE_REGPARM=${REGPARM} USE_VSYSCALL=${VSYSCALL} \ USE_OPENSSL="${FLX_USE_OPENSSL}${FLX_USE_OPENSSL_STAT}" USE_FUTEX=${FUTEX} USE_SLZ=1 USE_NS=1 \ SILENT_DEFINE="-DLISTEN_DEFAULT_CIPHERS=\"\\\"AES:RC4:ALL:!aNULL:!eNULL:!LOW:!EXPORT:!SSLv2\\\"\" \ -DCONNECT_DEFAULT_CIPHERS=\"\\\"AES:RC4:ALL:!aNULL:!eNULL:!LOW:!EXPORT:!SSLv2\\\"\"" } function do_prepack { # halog mkdir -p $ROOTDIR/usr/bin cp contrib/halog/halog $ROOTDIR/usr/bin/ mkdir -p $ROOTDIR/sbin/init.d cp $PKGDIR/add-ons/init.haproxy $ROOTDIR/sbin/init.d/haproxy chmod 755 $ROOTDIR/sbin/init.d/haproxy mkdir -p $ROOTDIR/usr/sbin cp haproxy $ROOTDIR/usr/sbin mkdir -p $ROOTDIR/usr/share/$PKGRADIX/$PKGRADIX-$PKGVER cp doc/intro.txt $ROOTDIR/usr/share/$PKGRADIX/$PKGRADIX-$PKGVER/ cp doc/lua.txt $ROOTDIR/usr/share/$PKGRADIX/$PKGRADIX-$PKGVER/ cp doc/architecture.txt $ROOTDIR/usr/share/$PKGRADIX/$PKGRADIX-$PKGVER/ cp doc/management.txt $ROOTDIR/usr/share/$PKGRADIX/$PKGRADIX-$PKGVER/ cp doc/configuration.txt $ROOTDIR/usr/share/$PKGRADIX/$PKGRADIX-$PKGVER/ cp doc/network-namespaces.txt $ROOTDIR/usr/share/$PKGRADIX/$PKGRADIX-$PKGVER/ cp examples/debug2ansi examples/debug2html examples/debugfind $ROOTDIR/usr/share/$PKGRADIX/$PKGRADIX-$PKGVER/ set_default_perm $ROOTDIR } function do_clean { $FLXMAKE clean rm -f contrib/halog/halog{,64} ( do_delpack ) return 0 }