# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Brice Carpentier <brice@daknet.org>

pkgname=cairo
pkgver=1.17.4
pkgrel=5
pkgdesc="2D graphics library with support for multiple output devices"
url="https://cairographics.org/"
arch=(x86_64)
license=(LGPL MPL)
depends=(lzo zlib libpng fontconfig freetype2 libx11 libxext libxrender libxcb
         glib2 pixman)
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() {
  arch-meson cairo build \
    -D spectre=disabled \
    -D tee=enabled \
    -D tests=disabled
  meson compile -C build
}

package() {
  DESTDIR="$pkgdir" meson install -C build
}
