summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorGonzalo Exequiel Pedone2024-04-20 12:52:13 -0300
committerGonzalo Exequiel Pedone2024-04-20 12:52:13 -0300
commit63805c6e974ae56559ca5f15db8126b0a42494e8 (patch)
tree42cf4e2e316f74b5c9dcc60381d4e1636d0ffc97
downloadaur-63805c6e974ae56559ca5f15db8126b0a42494e8.tar.gz
New package.
-rw-r--r--.SRCINFO33
-rw-r--r--.gitignore3
-rw-r--r--0001-Added-missing-headers-and-symbols.patch27
-rw-r--r--0002-ipc-rmid-deferred-release.patch11
-rw-r--r--0026-create-argb-fonts.all.patch22
-rw-r--r--PKGBUILD71
6 files changed, 167 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..e0ce3024b003
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,33 @@
+pkgbase = android-armv7a-eabi-cairo
+ pkgdesc = 2D graphics library with support for multiple output devices (Android armv7a-eabi)
+ pkgver = 1.18.0
+ pkgrel = 1
+ url = http://cairographics.org/
+ arch = any
+ license = LGPL
+ license = MPL
+ makedepends = android-meson
+ makedepends = android-armv7a-eabi-librsvg
+ makedepends = android-armv7a-eabi-poppler
+ depends = android-armv7a-eabi-fontconfig
+ depends = android-armv7a-eabi-glib2
+ depends = android-armv7a-eabi-libpng
+ depends = android-armv7a-eabi-lzo
+ depends = android-armv7a-eabi-pixman
+ depends = android-armv7a-eabi-zlib
+ provides = android-armv7a-eabi-cairo
+ conflicts = android-armv7a-eabi-cairo
+ options = !strip
+ options = !buildflags
+ options = staticlibs
+ options = !emptydirs
+ source = https://gitlab.freedesktop.org/cairo/cairo/-/archive/1.18.0/cairo-1.18.0.tar.gz
+ source = 0001-Added-missing-headers-and-symbols.patch
+ source = 0002-ipc-rmid-deferred-release.patch
+ source = 0026-create-argb-fonts.all.patch
+ sha256sums = 39a78afdc33a435c0f2ab53a5ec2a693c3c9b6d2ec9783ceecb2b94d54d942b0
+ sha256sums = a73c90af559d4fb2e72bdd80ebc624b19579f3df0e9c0ad6e8af9aef41e7789a
+ sha256sums = 50143b4a090169b1d086cffdf1f0364c82facc886466e3b2f7fea668520961e8
+ sha256sums = 6db6c44fbdb4926d09afa978fe80430186c4b7b7d255059602b1f94c6a079975
+
+pkgname = android-armv7a-eabi-cairo
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..f46de972b6fc
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+pkg/
+src/
+*.xz
diff --git a/0001-Added-missing-headers-and-symbols.patch b/0001-Added-missing-headers-and-symbols.patch
new file mode 100644
index 000000000000..faadcaa72bfc
--- /dev/null
+++ b/0001-Added-missing-headers-and-symbols.patch
@@ -0,0 +1,27 @@
+--- a/src/cairo-ft-private.h
++++ b/src/cairo-ft-private.h
+@@ -38,6 +38,8 @@
+ #ifndef CAIRO_FT_PRIVATE_H
+ #define CAIRO_FT_PRIVATE_H
+
++#include <freetype/ftcolor.h>
++
+ #include "cairoint.h"
+ #include "cairo-ft.h"
+
+--- a/util/malloc-stats.c
++++ b/util/malloc-stats.c
+@@ -117,7 +117,13 @@
+ for (i = 0; i < num; i++)
+ addrs[i] = (void *) func_stats[i].addr;
+
++#if defined(__ANDROID_API__) && __ANDROID_API__ >= 33
+ strings = backtrace_symbols (addrs, num);
++#else
++ strings = malloc (num * sizeof (char *));
++ for (i = 0; i < num; i++)
++ strings[i] = "unknown";
++#endif
+
+ for (i = 0; i < num; i++) {
+ char *p;
diff --git a/0002-ipc-rmid-deferred-release.patch b/0002-ipc-rmid-deferred-release.patch
new file mode 100644
index 000000000000..2ea92bbd41e0
--- /dev/null
+++ b/0002-ipc-rmid-deferred-release.patch
@@ -0,0 +1,11 @@
+--- a/meson.build
++++ b/meson.build
+@@ -373,7 +373,7 @@
+ # We don't know the type of prop (bool, string) but need to differentiate
+ # between a set value (bool) or the fallback value (string), so convert to
+ # a string and check the string value.
+- prop_str = '@0@'.format(prop)
++ prop_str = 'false'
+ if prop_str in ['true', 'false']
+ ipc_rmid_deferred_release = (prop_str == 'true')
+ message('IPC_RMID_DEFERRED_RELEASE:', ipc_rmid_deferred_release)
diff --git a/0026-create-argb-fonts.all.patch b/0026-create-argb-fonts.all.patch
new file mode 100644
index 000000000000..866b49f8a8b7
--- /dev/null
+++ b/0026-create-argb-fonts.all.patch
@@ -0,0 +1,22 @@
+--- cairo-bb17403622e9ea474017e0039af8ee48b2b285db/src/win32/cairo-win32-font.c.orig 2014-04-02 04:16:04.638143700 +0000
++++ cairo-bb17403622e9ea474017e0039af8ee48b2b285db/src/win32/cairo-win32-font.c 2014-04-05 20:10:47.108309200 +0000
+@@ -1600,7 +1600,7 @@
+ width = x2 - x1;
+ height = y2 - y1;
+
+- surface = cairo_win32_surface_create_with_dib (CAIRO_FORMAT_RGB24,
++ surface = cairo_win32_surface_create_with_dib (CAIRO_FORMAT_ARGB32,
+ width, height);
+ status = _cairo_surface_paint (surface, CAIRO_OPERATOR_SOURCE,
+ &_cairo_pattern_white.base, NULL);
+--- cairo-bb17403622e9ea474017e0039af8ee48b2b285db/src/win32/cairo-win32-surface.c.orig 2014-03-21 13:10:19.000000000 +0000
++++ cairo-bb17403622e9ea474017e0039af8ee48b2b285db/src/win32/cairo-win32-surface.c 2014-04-05 20:12:14.176865500 +0000
+@@ -227,7 +227,7 @@
+
+ /* We can only handle opaque solid color sources and destinations */
+ assert (_cairo_pattern_is_opaque_solid(source));
+- assert (dst->format == CAIRO_FORMAT_RGB24);
++ assert (dst->format == CAIRO_FORMAT_RGB24 || dst->format == CAIRO_FORMAT_ARGB32);
+
+ solid_pattern = (cairo_solid_pattern_t *)source;
+ color = RGB(((int)solid_pattern->color.red_short) >> 8,
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..37a3f1047831
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,71 @@
+# Maintainer: Gonzalo Exequiel Pedone <hipersayan DOT x AT gmail DOT com>
+# Contributor: drakkan <nicola.murino at gmail dot com>
+# Contributor: Chris Kitching <chriskitching@linux.com>
+# Contributor: Xiao-Long Chen <chenxiaolong@cxl.epac.to>
+
+_android_arch=armv7a-eabi
+
+pkgname=android-${_android_arch}-cairo
+pkgver=1.18.0
+pkgrel=1
+arch=('any')
+pkgdesc="2D graphics library with support for multiple output devices (Android ${_android_arch})"
+license=("LGPL"
+ "MPL")
+url="http://cairographics.org/"
+conflicts=("android-${_android_arch}-cairo")
+depends=("android-${_android_arch}-fontconfig"
+ "android-${_android_arch}-glib2"
+ "android-${_android_arch}-libpng"
+ "android-${_android_arch}-lzo"
+ "android-${_android_arch}-pixman"
+ "android-${_android_arch}-zlib")
+provides=("android-${_android_arch}-cairo")
+makedepends=('android-meson'
+ "android-${_android_arch}-librsvg"
+ "android-${_android_arch}-poppler")
+options=(!strip !buildflags staticlibs !emptydirs)
+source=("https://gitlab.freedesktop.org/cairo/cairo/-/archive/${pkgver}/cairo-${pkgver}.tar.gz"
+ "0001-Added-missing-headers-and-symbols.patch"
+ "0002-ipc-rmid-deferred-release.patch"
+ "0026-create-argb-fonts.all.patch")
+sha256sums=('39a78afdc33a435c0f2ab53a5ec2a693c3c9b6d2ec9783ceecb2b94d54d942b0'
+ 'a73c90af559d4fb2e72bdd80ebc624b19579f3df0e9c0ad6e8af9aef41e7789a'
+ '50143b4a090169b1d086cffdf1f0364c82facc886466e3b2f7fea668520961e8'
+ '6db6c44fbdb4926d09afa978fe80430186c4b7b7d255059602b1f94c6a079975')
+
+prepare() {
+ cd "${srcdir}/cairo-${pkgver}"
+ patch -Np1 -i ../0001-Added-missing-headers-and-symbols.patch
+ patch -Np1 -i ../0002-ipc-rmid-deferred-release.patch
+ patch -Np1 -i ../0026-create-argb-fonts.all.patch
+}
+
+build() {
+ cd "${srcdir}/cairo-${pkgver}"
+ source android-env ${_android_arch}
+
+ mkdir -p build
+ cd build
+ android-${_android_arch}-meson \
+ -D spectre=disabled \
+ -D dwrite=disabled \
+ -D freetype=enabled \
+ -D fontconfig=enabled \
+ -D tests=disabled \
+ -D symbol-lookup=disabled \
+ -D gtk_doc=false \
+ -D xcb=disabled \
+ -D xlib=disabled \
+ -D xlib-xcb=disabled \
+ --buildtype=release \
+ --default-library=both
+ echo '#define HAVE_CTIME_R 1'$'\n' >> config.h
+ ninja
+}
+
+package() {
+ DESTDIR="${pkgdir}" ninja -C "${srcdir}/cairo-${pkgver}/build" install
+ ${ANDROID_STRIP} -g "$pkgdir"/${ANDROID_PREFIX_LIB}/*.a || true
+ ${ANDROID_STRIP} -g --strip-unneeded "${pkgdir}"/${ANDROID_PREFIX_LIB}/*.so
+}