From 703562a021684277e0a207382f86f3ade00d1b90 Mon Sep 17 00:00:00 2001 From: Marcin Puc Date: Mon, 17 Jun 2024 23:08:49 +0200 Subject: [PATCH] chafa: update to 1.14.1 --- srcpkgs/chafa/patches/i686-intrinsics.patch | 52 +++++++++++++++++++++ srcpkgs/chafa/patches/i686-musl.patch | 13 ------ srcpkgs/chafa/template | 6 +-- 3 files changed, 55 insertions(+), 16 deletions(-) create mode 100644 srcpkgs/chafa/patches/i686-intrinsics.patch delete mode 100644 srcpkgs/chafa/patches/i686-musl.patch diff --git a/srcpkgs/chafa/patches/i686-intrinsics.patch b/srcpkgs/chafa/patches/i686-intrinsics.patch new file mode 100644 index 00000000000000..e9994392af4eff --- /dev/null +++ b/srcpkgs/chafa/patches/i686-intrinsics.patch @@ -0,0 +1,52 @@ +diff --git a/chafa/internal/chafa-avx2.c b/chafa/internal/chafa-avx2.c +index ae20830..7f11687 100644 +--- a/chafa/internal/chafa-avx2.c ++++ b/chafa/internal/chafa-avx2.c +@@ -21,9 +21,21 @@ + + #include + #include ++#include + #include "chafa.h" + #include "internal/chafa-private.h" + ++/* _mm_extract_epi64() (pextrq) is not available in 32-bit mode. Work around ++ * it. This needs to be a macro, as the compiler expects an integer constant ++ * for n. */ ++#if defined __x86_64__ && !defined __ILP32__ ++# define extract_128_epi64(i, n) _mm_extract_epi64 ((i), (n)) ++#else ++# define extract_128_epi64(i, n) \ ++ ((((guint64) _mm_extract_epi32 ((i), (n) * 2 + 1)) << 32) \ ++ | _mm_extract_epi32 ((i), (n) * 2)) ++#endif ++ + gint + calc_error_avx2 (const ChafaPixel *pixels, const ChafaColorPair *color_pair, + const guint32 *sym_mask_u32) +@@ -96,14 +108,14 @@ calc_colors_avx2 (const ChafaPixel *pixels, ChafaColorAccum *accums_out, + accum_bg_128 = _mm_add_epi16 (_mm256_extracti128_si256 (accum_bg, 0), + _mm256_extracti128_si256 (accum_bg, 1)); + ((guint64 *) accums_out) [0] = +- (guint64) _mm_extract_epi64 (accum_bg_128, 0) +- + (guint64) _mm_extract_epi64 (accum_bg_128, 1); ++ extract_128_epi64 (accum_bg_128, 0) ++ + extract_128_epi64 (accum_bg_128, 1); + + accum_fg_128 = _mm_add_epi16 (_mm256_extracti128_si256 (accum_fg, 0), + _mm256_extracti128_si256 (accum_fg, 1)); + ((guint64 *) accums_out) [1] = +- (guint64) _mm_extract_epi64 (accum_fg_128, 0) +- + (guint64) _mm_extract_epi64 (accum_fg_128, 1); ++ extract_128_epi64 (accum_fg_128, 0) ++ + extract_128_epi64 (accum_fg_128, 1); + } + + /* 32768 divided by index. Divide by zero is defined as zero. */ +@@ -143,5 +155,5 @@ chafa_color_accum_div_scalar_avx2 (ChafaColorAccum *accum, guint16 divisor) + accum_128 = _mm_loadl_epi64 ((const __m128i *) accum); + divisor_128 = _mm_set1_epi16 (invdiv16 [divisor]); + accum_128 = _mm_mulhrs_epi16 (accum_128, divisor_128); +- *((guint64 *) accum) = _mm_extract_epi64 (accum_128, 0); ++ *((guint64 *) accum) = extract_128_epi64 (accum_128, 0); + } diff --git a/srcpkgs/chafa/patches/i686-musl.patch b/srcpkgs/chafa/patches/i686-musl.patch deleted file mode 100644 index dc3469f9f03238..00000000000000 --- a/srcpkgs/chafa/patches/i686-musl.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/chafa/internal/chafa-popcnt.c -+++ b/chafa/internal/chafa-popcnt.c -@@ -23,6 +23,10 @@ - #include "chafa/chafa.h" - #include "chafa/chafa-private.h" - -+#if !defined(HAVE_POPCNT64_INTRINSICS) && !defined(__GLIBC__) -+typedef int __int32_t; -+#endif -+ - gint - chafa_pop_count_u64_builtin (guint64 v) - { diff --git a/srcpkgs/chafa/template b/srcpkgs/chafa/template index b89258f3f12170..a1e0e87f1faa90 100644 --- a/srcpkgs/chafa/template +++ b/srcpkgs/chafa/template @@ -1,18 +1,18 @@ # Template file for 'chafa' pkgname=chafa -version=1.14.0 +version=1.14.1 revision=1 build_style=gnu-configure configure_args="--enable-man" hostmakedepends="docbook-xml docbook-xsl libxslt pkg-config" -makedepends="libavif-devel libglib-devel librsvg-devel libwebp-devel libXext-devel libxml2-devel" +makedepends="libavif-devel libglib-devel libjxl-devel librsvg-devel libwebp-devel libXext-devel libxml2-devel" short_desc="Versatile and fast Unicode/ASCII/ANSI graphics renderer" maintainer="Christian Buschau " license="LGPL-3.0-or-later" homepage="https://hpjansson.org/chafa/" changelog="https://raw.githubusercontent.com/hpjansson/chafa/master/NEWS" distfiles="https://hpjansson.org/chafa/releases/chafa-${version}.tar.xz" -checksum=670e55c28b5ecd4c8187bd97f0898762712a480ec8ea439dae4a4836b178e084 +checksum=24707f59e544cec85d7a1993854672136b05271f86954248c5d8a42e221f6f25 case "$XBPS_TARGET_MACHINE" in x86_64*|i686*) ;;