# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Ionut Biru <ibiru@archlinux.org>

pkgname=lib32-cairo
pkgver=1.17.4
pkgrel=5
pkgdesc="2D graphics library with support for multiple output devices (32-bit)"
url="https://cairographics.org/"
arch=(x86_64)
license=(LGPL MPL)
depends=(lib32-zlib lib32-libpng lib32-fontconfig lib32-freetype2 lib32-libx11
         lib32-libxext lib32-libxrender lib32-libxcb lib32-glib2 lib32-pixman
         cairo)
makedepends=(valgrind git meson)
_commit=156cd3eaaebfd8635517c2baf61fcf3627ff7ec2  # tags/1.17.4^0
source=("git+https://gitlab.freedesktop.org/cairo/cairo.git#commit=$_commit")
sha256sums=('SKIP')

pkgver() {
  cd cairo
  git describe --tags | sed 's/-/+/g'
}

prepare() {
  cd cairo

  # Fix library versioning
  # https://bugs.archlinux.org/task/69012
  git cherry-pick -n e9ccb1d8d095482e4139da658e679d5aad56b184

  # https://bugs.archlinux.org/task/70017 (CVE-2020-35492)
  git cherry-pick -n 03a820b173ed1fdef6ff14b4468f5dbc02ff59be

  # https://gitlab.freedesktop.org/cairo/cairo/-/issues/449
  git cherry-pick -n a3b69a0215fdface0fd5730872a4b3242d979dca

  # Disable XCB backend for Xlib surfaces
  # https://bugs.archlinux.org/task/68839
  git cherry-pick -n 3468c67fe91f0c37e0ec5d335082653a6fa609b6
}

build() {
  export CC="gcc -m32"
  export CXX="g++ -m32"
  export PKG_CONFIG="i686-pc-linux-gnu-pkg-config"

  arch-meson cairo build \
    --libdir=/usr/lib32 \
    -D spectre=disabled \
    -D tee=enabled \
    -D tests=disabled
  meson compile -C build
}

package() {
  DESTDIR="$pkgdir" meson install -C build
  rm -r "$pkgdir"/usr/{include,bin}
}
