# Maintainer: Johannes Löthberg <johannes@kyriasis.com>
# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>

pkgname=haproxy
pkgver=2.4.4
pkgrel=1

pkgdesc='Reliable, high performance TCP/HTTP load balancer'
url='https://www.haproxy.org/'
arch=('x86_64')
license=('GPL')

depends=('openssl' 'pcre' 'zlib' 'libxcrypt' 'libcrypt.so' 'lua' 'systemd-libs')
makedepends=('systemd')

backup=('etc/haproxy/haproxy.cfg')

install=haproxy.install

source=(https://www.haproxy.org/download/${pkgver%.*}/src/haproxy-$pkgver.tar.gz
        haproxy.cfg
        haproxy.sysusers
        0001-Use-CFLAGS-and-LDFLAGS-when-building-admin.patch)

sha256sums=('116b7329cebee5dab8ba47ad70feeabd0c91680d9ef68c28e41c34869920d1fe'
            'e88edeb2fe23508565e46ff485c93cfb7c2e9c64f231538452ec7ecd7ec37a42'
            'b02b4088205039f0979aef0ef3e22957f493dd54eabefaee7011f2d795303b3e'
            '8cdbb8be7a712f7b2c7f4823a96d2d2926d96b57632e9669069354d7f2df9fd2')

prepare() {
  cd haproxy-$pkgver

  patch -p1 <"$srcdir"/0001-Use-CFLAGS-and-LDFLAGS-when-building-admin.patch
}

build() {
  cd haproxy-$pkgver

  export CFLAGS="$CFLAGS -fwrapv"

  make \
    CFLAGS="$CFLAGS" \
    LDFLAGS="$LDFLAGS" \
    CPU=generic \
    TARGET=linux-glibc \
    USE_GETADDRINFO=1 \
    USE_LUA=1 \
    USE_OPENSSL=1 \
    USE_PCRE=1 USE_PCRE_JIT=1 \
    USE_PROMEX=1 \
    USE_SYSTEMD=1 \
    USE_ZLIB=1

    make \
      SBINDIR=/usr/bin \
      OPTIMIZE= \
      CFLAGS="$CFLAGS" \
      LDFLAGS="$LDFLAGS" \
      admin/{halog/halog,iprange/ip{,6}range}
    make \
      SBINDIR=/usr/bin \
      -C admin/systemd/
}

package() {
  cd haproxy-$pkgver
  make \
    PREFIX="$pkgdir"/usr \
    SBINDIR="$pkgdir"/usr/bin \
    DOCDIR="$pkgdir"/usr/share/$pkgname \
    install

  for admin in admin/{halog/halog,iprange/ip{,6}range}; do
    install -D -m0755 $admin "$pkgdir"/usr/bin/$(basename $admin)
  done

  install -D -m0644 ../haproxy.sysusers "$pkgdir"/usr/lib/sysusers.d/haproxy.conf
  install -D -m0644 ../haproxy.cfg "$pkgdir"/etc/haproxy/haproxy.cfg
  install -D -m0644 admin/systemd/haproxy.service \
    "$pkgdir"/usr/lib/systemd/system/haproxy.service
  cp -r examples "$pkgdir"/usr/share/haproxy/examples
}
