From 5cdde10eb24ea41edd0634656ff1f58ac3c32ed4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89rico=20Rolim?= Date: Fri, 2 Oct 2020 20:07:03 -0300 Subject: [PATCH] pixman: update to 0.40.0, adopt. - Update links, use linker flag for stack size instead of patch. - Move to meson build style. --- .../musl-static__thread-scanline_buffer.patch | 35 ------------------- srcpkgs/pixman/template | 34 ++++++++++-------- 2 files changed, 20 insertions(+), 49 deletions(-) delete mode 100644 srcpkgs/pixman/patches/musl-static__thread-scanline_buffer.patch diff --git a/srcpkgs/pixman/patches/musl-static__thread-scanline_buffer.patch b/srcpkgs/pixman/patches/musl-static__thread-scanline_buffer.patch deleted file mode 100644 index 0b9339dbea0..00000000000 --- a/srcpkgs/pixman/patches/musl-static__thread-scanline_buffer.patch +++ /dev/null @@ -1,35 +0,0 @@ -Reduce the stack footprint of pixman's function -general_composite_rect() which allocates a large buffer -`stack_scanline_buffer`. Make it `static __thread` instead. - ---- pixman/pixman-general.c 2015-12-27 21:37:37.000000000 +0100 -+++ pixman/pixman-general.c 2016-05-05 12:24:47.346661080 +0200 -@@ -128,8 +128,8 @@ - pixman_composite_info_t *info) - { - PIXMAN_COMPOSITE_ARGS (info); -- uint8_t stack_scanline_buffer[3 * SCANLINE_BUFFER_LENGTH]; -- uint8_t *scanline_buffer = (uint8_t *) stack_scanline_buffer; -+ static __thread uint8_t static_scanline_buffer[3 * SCANLINE_BUFFER_LENGTH]; -+ uint8_t *scanline_buffer = (uint8_t *) static_scanline_buffer; - uint8_t *src_buffer, *mask_buffer, *dest_buffer; - pixman_iter_t src_iter, mask_iter, dest_iter; - pixman_combine_32_func_t compose; -@@ -158,7 +158,7 @@ - if (width <= 0 || _pixman_multiply_overflows_int (width, Bpp * 3)) - return; - -- if (width * Bpp * 3 > sizeof (stack_scanline_buffer) - 15 * 3) -+ if (width * Bpp * 3 > sizeof (static_scanline_buffer) - 15 * 3) - { - scanline_buffer = pixman_malloc_ab_plus_c (width, Bpp * 3, 15 * 3); - -@@ -232,7 +232,7 @@ - if (dest_iter.fini) - dest_iter.fini (&dest_iter); - -- if (scanline_buffer != (uint8_t *) stack_scanline_buffer) -+ if (scanline_buffer != (uint8_t *) static_scanline_buffer) - free (scanline_buffer); - } - diff --git a/srcpkgs/pixman/template b/srcpkgs/pixman/template index eb4a6da3b03..d2a93cae44c 100644 --- a/srcpkgs/pixman/template +++ b/srcpkgs/pixman/template @@ -1,25 +1,32 @@ # Template file for 'pixman' pkgname=pixman -version=0.38.4 +version=0.40.0 revision=1 -build_style=gnu-configure -configure_args="--disable-gtk" # do not require gtk+! +build_style=meson +# allow meson to autodetect the features it should use +# gtk is only necessary for demos, disabled to avoid dependency loop +configure_args="--auto-features=auto -Dgtk=disabled -Dgnu-inline-asm=enabled" hostmakedepends="pkg-config perl" +checkdepends="libpng-devel libgomp-devel" short_desc="Library of low-level pixel manipulation routines" -maintainer="Orphaned " +maintainer="Érico Nogueira " license="MIT" -homepage="https://wiki.freedesktop.org/xorg/" -distfiles="${XORG_SITE}/lib/${pkgname}-${version}.tar.bz2" -checksum=84abb7fa2541af24d9c3b34bf75d6ac60cc94ac4410061bbb295b66a29221550 +homepage="http://pixman.org/" +distfiles="https://www.cairographics.org/releases/${pkgname}-${version}.tar.gz" +checksum=6d200dec3740d9ec4ec8d1180e25779c00bc749f94278c8b9021f5534db223fc -pre_configure() { - case "$XBPS_TARGET_MACHINE" in - arm*) configure_args+=" --disable-arm-iwmmxt --disable-arm-iwmmxt2";; - esac -} +# set stacksize for musl: https://gitlab.gnome.org/GNOME/librsvg/-/issues/595 +LDFLAGS="-Wl,-z,stack-size=2097152" + +if [ "$XBPS_CHECK_PKGS" ]; then + # OpenMP isn't recommended by upstream: + # https://gitlab.freedesktop.org/pixman/pixman/-/blob/9b49f4e08751885289333fed652bf5e0f45976b4/pixman/dither/make-blue-noise.c#L8 + # But the build only uses it for tests + configure_args+=" -Dlibpng=enabled -Dopenmp=enabled" +fi post_install() { - vlicense COPYING + vlicense COPYING LICENSE } pixman-devel_package() { @@ -28,7 +35,6 @@ pixman-devel_package() { pkg_install() { vmove usr/include vmove usr/lib/pkgconfig - vmove "usr/lib/*.a" vmove "usr/lib/*.so" } }