Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin
@ 2021-06-10  9:12 joshuakraemer
  2021-06-10  9:30 ` [PR PATCH] [Updated] " joshuakraemer
                   ` (64 more replies)
  0 siblings, 65 replies; 66+ messages in thread
From: joshuakraemer @ 2021-06-10  9:12 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 762 bytes --]

There is a new pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [ ] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 6234 bytes --]

From f1829395f05f6398e254e7c968f237bc80fd951c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-0.12.2

---
 srcpkgs/highway/template | 12 ++++++++++++
 1 file changed, 12 insertions(+)
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..462df78a4888
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,12 @@
+# Template file for 'highway'
+pkgname=highway
+version=0.12.2
+revision=1
+build_style=cmake
+configure_args="-DBUILD_TESTING=OFF"
+short_desc="C++ library for SIMD (Single Instruction, Multiple Data)"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=e1d47ce510429fdcf31f41697ca74fb0dcd59d933196e531a86d51751a56f4cc

From 0e52480b216656f2397e3c45d9a87cc96081de17 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.3.8

---
 common/shlibs           |  2 ++
 srcpkgs/libjxl-devel    |  1 +
 srcpkgs/libjxl-plugins  |  1 +
 srcpkgs/libjxl-tools    |  1 +
 srcpkgs/libjxl/template | 63 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 68 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index 7cfb4f583c9c..4cfeeba24fd9 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4007,3 +4007,5 @@ libbasu.so.0 basu-0.2.0_1
 libXcomp.so.3 nx-libs-3.5.99.24_1
 libXcompshad.so.3 nx-libs-3.5.99.24_1
 libNX_X11.so.6 nx-libs-3.5.99.24_1
+libjxl.so.0 libjxl-0.3.7_1
+libjxl_threads.so.0 libjxl-0.3.7_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..0f4b3a380589
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,63 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=33a23b32adeb0cc4e7892a0a877262193b0e39f9
+revision=1
+build_style=cmake
+configure_args="-DBUILD_TESTING=OFF -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
+hostmakedepends="tar pkg-config asciidoc"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel libopenexr-devel gdk-pixbuf-devel gimp-devel"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="BSD-3-Clause, custom:Patent grant"
+homepage="https://github.com/libjxl/libjxl"
+_lodepng_hash=48e5364ef48ec2408f44c727657ac1b6703185f8
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/${version}.tar.gz
+ https://github.com/lvandeve/lodepng/archive/${_lodepng_hash}.tar.gz>lodepng-${_lodepng_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="230801ea4eada6f5769c3b874b01d6a7e00f94d63dd9f79424959ddc0ee668c1
+ c47c48c77a205f1af484b7b5a847290af65de3ea6f15817aa27c5ec7cc5208fd
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="lodepng-${_lodepng_hash}.tar.gz
+ skcms-${_skcms_hash}.tar.gz"
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf lodepng-${_lodepng_hash}.tar.gz --strip-components=1 -C ${wrksrc}/third_party/lodepng
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+post_install() {
+	vlicense LICENSE
+	vlicense PATENTS
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="libjxl>=${version}_${revision} brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From 96936e389279e69c89cac577605df21eb1520cb9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Thu, 10 Jun 2021 11:04:56 +0200
Subject: [PATCH 3/3] New package: qt-jpegxl-image-plugin

---
 srcpkgs/qt-jpegxl-image-plugin/template | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
 create mode 100644 srcpkgs/qt-jpegxl-image-plugin/template

diff --git a/srcpkgs/qt-jpegxl-image-plugin/template b/srcpkgs/qt-jpegxl-image-plugin/template
new file mode 100644
index 000000000000..2f66e459ed95
--- /dev/null
+++ b/srcpkgs/qt-jpegxl-image-plugin/template
@@ -0,0 +1,15 @@
+# Template file for 'qt-jpegxl-image-plugin'
+pkgname=qt-jpegxl-image-plugin
+version=7d19098b4111819a33cac142449d13c185854aed
+revision=1
+build_style=qmake
+configure_args="qt-jpegxl-image-plugin.pro"
+depends="libjxl-plugins"
+hostmakedepends="qt5-qmake"
+makedepends="libjxl-devel qt5-devel"
+short_desc="Qt5 plugin to support the JPEG XL image format"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="GPL-3.0-only"
+homepage="https://github.com/novomesk/qt-jpegxl-image-plugin"
+distfiles="https://github.com/novomesk/qt-jpegxl-image-plugin/archive/${version}.tar.gz"
+checksum=5634745983fa32becc58a656b5f1104ca5ad3393cdad3fc53ab7f1bab6061b9a

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR PATCH] [Updated] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
@ 2021-06-10  9:30 ` joshuakraemer
  2021-06-11 22:29 ` joshuakraemer
                   ` (63 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2021-06-10  9:30 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

There is an updated pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [ ] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 6234 bytes --]

From f1829395f05f6398e254e7c968f237bc80fd951c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-0.12.2

---
 srcpkgs/highway/template | 12 ++++++++++++
 1 file changed, 12 insertions(+)
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..462df78a4888
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,12 @@
+# Template file for 'highway'
+pkgname=highway
+version=0.12.2
+revision=1
+build_style=cmake
+configure_args="-DBUILD_TESTING=OFF"
+short_desc="C++ library for SIMD (Single Instruction, Multiple Data)"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=e1d47ce510429fdcf31f41697ca74fb0dcd59d933196e531a86d51751a56f4cc

From 0e52480b216656f2397e3c45d9a87cc96081de17 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.3.8

---
 common/shlibs           |  2 ++
 srcpkgs/libjxl-devel    |  1 +
 srcpkgs/libjxl-plugins  |  1 +
 srcpkgs/libjxl-tools    |  1 +
 srcpkgs/libjxl/template | 63 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 68 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index 7cfb4f583c9c..4cfeeba24fd9 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4007,3 +4007,5 @@ libbasu.so.0 basu-0.2.0_1
 libXcomp.so.3 nx-libs-3.5.99.24_1
 libXcompshad.so.3 nx-libs-3.5.99.24_1
 libNX_X11.so.6 nx-libs-3.5.99.24_1
+libjxl.so.0 libjxl-0.3.7_1
+libjxl_threads.so.0 libjxl-0.3.7_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..0f4b3a380589
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,63 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=33a23b32adeb0cc4e7892a0a877262193b0e39f9
+revision=1
+build_style=cmake
+configure_args="-DBUILD_TESTING=OFF -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
+hostmakedepends="tar pkg-config asciidoc"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel libopenexr-devel gdk-pixbuf-devel gimp-devel"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="BSD-3-Clause, custom:Patent grant"
+homepage="https://github.com/libjxl/libjxl"
+_lodepng_hash=48e5364ef48ec2408f44c727657ac1b6703185f8
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/${version}.tar.gz
+ https://github.com/lvandeve/lodepng/archive/${_lodepng_hash}.tar.gz>lodepng-${_lodepng_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="230801ea4eada6f5769c3b874b01d6a7e00f94d63dd9f79424959ddc0ee668c1
+ c47c48c77a205f1af484b7b5a847290af65de3ea6f15817aa27c5ec7cc5208fd
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="lodepng-${_lodepng_hash}.tar.gz
+ skcms-${_skcms_hash}.tar.gz"
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf lodepng-${_lodepng_hash}.tar.gz --strip-components=1 -C ${wrksrc}/third_party/lodepng
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+post_install() {
+	vlicense LICENSE
+	vlicense PATENTS
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="libjxl>=${version}_${revision} brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From 1ee466915548062e6b898f535b1dde07912f3aa7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Thu, 10 Jun 2021 11:04:56 +0200
Subject: [PATCH 3/3] New package: qt-jpegxl-image-plugin

---
 srcpkgs/qt-jpegxl-image-plugin/template | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
 create mode 100644 srcpkgs/qt-jpegxl-image-plugin/template

diff --git a/srcpkgs/qt-jpegxl-image-plugin/template b/srcpkgs/qt-jpegxl-image-plugin/template
new file mode 100644
index 000000000000..ec7e0d8b7060
--- /dev/null
+++ b/srcpkgs/qt-jpegxl-image-plugin/template
@@ -0,0 +1,15 @@
+# Template file for 'qt-jpegxl-image-plugin'
+pkgname=qt-jpegxl-image-plugin
+version=7d19098b4111819a33cac142449d13c185854aed
+revision=1
+build_style=qmake
+configure_args="qt-jpegxl-image-plugin.pro"
+hostmakedepends="qt5-qmake"
+makedepends="libjxl-devel qt5-devel"
+depends="libjxl-plugins"
+short_desc="Qt5 plugin to support the JPEG XL image format"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="GPL-3.0-only"
+homepage="https://github.com/novomesk/qt-jpegxl-image-plugin"
+distfiles="https://github.com/novomesk/qt-jpegxl-image-plugin/archive/${version}.tar.gz"
+checksum=5634745983fa32becc58a656b5f1104ca5ad3393cdad3fc53ab7f1bab6061b9a

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR PATCH] [Updated] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
  2021-06-10  9:30 ` [PR PATCH] [Updated] " joshuakraemer
@ 2021-06-11 22:29 ` joshuakraemer
  2021-08-06 19:49 ` joshuakraemer
                   ` (62 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2021-06-11 22:29 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

There is an updated pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [ ] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 6187 bytes --]

From f1829395f05f6398e254e7c968f237bc80fd951c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-0.12.2

---
 srcpkgs/highway/template | 12 ++++++++++++
 1 file changed, 12 insertions(+)
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..462df78a4888
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,12 @@
+# Template file for 'highway'
+pkgname=highway
+version=0.12.2
+revision=1
+build_style=cmake
+configure_args="-DBUILD_TESTING=OFF"
+short_desc="C++ library for SIMD (Single Instruction, Multiple Data)"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=e1d47ce510429fdcf31f41697ca74fb0dcd59d933196e531a86d51751a56f4cc

From 3ebe79c39b3f22f39ee55d6c5c130fc365613a6d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.4.0

---
 common/shlibs           |  2 ++
 srcpkgs/libjxl-devel    |  1 +
 srcpkgs/libjxl-plugins  |  1 +
 srcpkgs/libjxl-tools    |  1 +
 srcpkgs/libjxl/template | 60 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 65 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index 7cfb4f583c9c..f24d517e9b4e 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4007,3 +4007,5 @@ libbasu.so.0 basu-0.2.0_1
 libXcomp.so.3 nx-libs-3.5.99.24_1
 libXcompshad.so.3 nx-libs-3.5.99.24_1
 libNX_X11.so.6 nx-libs-3.5.99.24_1
+libjxl.so.0 libjxl-0.4.0_1
+libjxl_threads.so.0 libjxl-0.4.0_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..7bf4073fe6f3
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,60 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=0.4.0
+revision=1
+_hash=74ca6ba912fc1a682143ec2c5a1b193e008ec92b
+wrksrc="libjxl-${_hash}"
+build_style=cmake
+configure_args="-DBUILD_TESTING=OFF -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
+hostmakedepends="tar pkg-config asciidoc"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel libopenexr-devel gdk-pixbuf-devel gimp-devel"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/libjxl/libjxl"
+_lodepng_hash=48e5364ef48ec2408f44c727657ac1b6703185f8
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/${_hash}.tar.gz
+ https://github.com/lvandeve/lodepng/archive/${_lodepng_hash}.tar.gz>lodepng-${_lodepng_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="8fb7150e7d33721f30b5e6f899c5438b4396064af581e8891bccf3158a1e551c
+ c47c48c77a205f1af484b7b5a847290af65de3ea6f15817aa27c5ec7cc5208fd
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="lodepng-${_lodepng_hash}.tar.gz
+ skcms-${_skcms_hash}.tar.gz"
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf lodepng-${_lodepng_hash}.tar.gz --strip-components=1 -C ${wrksrc}/third_party/lodepng
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="libjxl>=${version}_${revision} brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From d844ddc5122ace20b8b4f1c3a59e8247c1ed441a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Thu, 10 Jun 2021 11:04:56 +0200
Subject: [PATCH 3/3] New package: qt-jpegxl-image-plugin

---
 srcpkgs/qt-jpegxl-image-plugin/template | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
 create mode 100644 srcpkgs/qt-jpegxl-image-plugin/template

diff --git a/srcpkgs/qt-jpegxl-image-plugin/template b/srcpkgs/qt-jpegxl-image-plugin/template
new file mode 100644
index 000000000000..ec7e0d8b7060
--- /dev/null
+++ b/srcpkgs/qt-jpegxl-image-plugin/template
@@ -0,0 +1,15 @@
+# Template file for 'qt-jpegxl-image-plugin'
+pkgname=qt-jpegxl-image-plugin
+version=7d19098b4111819a33cac142449d13c185854aed
+revision=1
+build_style=qmake
+configure_args="qt-jpegxl-image-plugin.pro"
+hostmakedepends="qt5-qmake"
+makedepends="libjxl-devel qt5-devel"
+depends="libjxl-plugins"
+short_desc="Qt5 plugin to support the JPEG XL image format"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="GPL-3.0-only"
+homepage="https://github.com/novomesk/qt-jpegxl-image-plugin"
+distfiles="https://github.com/novomesk/qt-jpegxl-image-plugin/archive/${version}.tar.gz"
+checksum=5634745983fa32becc58a656b5f1104ca5ad3393cdad3fc53ab7f1bab6061b9a

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR PATCH] [Updated] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
  2021-06-10  9:30 ` [PR PATCH] [Updated] " joshuakraemer
  2021-06-11 22:29 ` joshuakraemer
@ 2021-08-06 19:49 ` joshuakraemer
  2021-08-06 20:20 ` joshuakraemer
                   ` (61 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2021-08-06 19:49 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

There is an updated pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [ ] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 6223 bytes --]

From 0cd274d4096d41fb1198d4cd51731aff02a292b7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-0.12.2

---
 srcpkgs/highway/template | 12 ++++++++++++
 1 file changed, 12 insertions(+)
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..462df78a4888
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,12 @@
+# Template file for 'highway'
+pkgname=highway
+version=0.12.2
+revision=1
+build_style=cmake
+configure_args="-DBUILD_TESTING=OFF"
+short_desc="C++ library for SIMD (Single Instruction, Multiple Data)"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=e1d47ce510429fdcf31f41697ca74fb0dcd59d933196e531a86d51751a56f4cc

From 410170aa5c64df71e6dd0653378d89ae00485105 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.5.0

---
 common/shlibs           |  2 ++
 srcpkgs/libjxl-devel    |  1 +
 srcpkgs/libjxl-plugins  |  1 +
 srcpkgs/libjxl-tools    |  1 +
 srcpkgs/libjxl/template | 65 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 70 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index f768a637aed5..d5837c67d0c8 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4027,3 +4027,5 @@ librnnoise.so.0 rnnoise-0.4.1_1
 liblhasa.so.0 lhasa-0.3.1_2
 libmt32emu.so.2 libmt32emu-2.5.1_1
 libqrtr-glib.so.0 libqrtr-glib-1.0.0_1
+libjxl.so.0 libjxl-0.5.0_1
+libjxl_threads.so.0 libjxl-0.5.0_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..97df88797313
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,65 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=0.5.0
+revision=1
+_short_version=0.5
+wrksrc=libjxl-${_short_version}
+build_style=cmake
+configure_args="-DBUILD_TESTING=OFF -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
+hostmakedepends="tar pkg-config asciidoc"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel libopenexr-devel gdk-pixbuf-devel gimp-devel"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="BSD-3-Clause, custom:Patent grant"
+homepage="https://github.com/libjxl/libjxl"
+_lodepng_hash=48e5364ef48ec2408f44c727657ac1b6703185f8
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/v${_short_version}.tar.gz
+ https://github.com/lvandeve/lodepng/archive/${_lodepng_hash}.tar.gz>lodepng-${_lodepng_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="911cb4b50eb621131ca22382166f40d4914a4ff4453dd299ade1e3292f311f89
+ c47c48c77a205f1af484b7b5a847290af65de3ea6f15817aa27c5ec7cc5208fd
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="lodepng-${_lodepng_hash}.tar.gz
+ skcms-${_skcms_hash}.tar.gz"
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf lodepng-${_lodepng_hash}.tar.gz --strip-components=1 -C ${wrksrc}/third_party/lodepng
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+post_install() {
+	vlicense LICENSE
+	vlicense PATENTS
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="libjxl>=${version}_${revision} brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From b9b44834c7fa856f8ee902405c2043afcc038df8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Thu, 10 Jun 2021 11:04:56 +0200
Subject: [PATCH 3/3] New package: qt-jpegxl-image-plugin-0.2.0

---
 srcpkgs/qt-jpegxl-image-plugin/template | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
 create mode 100644 srcpkgs/qt-jpegxl-image-plugin/template

diff --git a/srcpkgs/qt-jpegxl-image-plugin/template b/srcpkgs/qt-jpegxl-image-plugin/template
new file mode 100644
index 000000000000..d52ad21d2806
--- /dev/null
+++ b/srcpkgs/qt-jpegxl-image-plugin/template
@@ -0,0 +1,15 @@
+# Template file for 'qt-jpegxl-image-plugin'
+pkgname=qt-jpegxl-image-plugin
+version=0.2.0
+revision=1
+build_style=qmake
+configure_args="qt-jpegxl-image-plugin.pro"
+hostmakedepends="qt5-qmake"
+makedepends="libjxl-devel qt5-devel"
+depends="libjxl-plugins"
+short_desc="Qt5 plugin to support JPEG XL images"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="GPL-3.0-only"
+homepage="https://github.com/novomesk/qt-jpegxl-image-plugin"
+distfiles="https://github.com/novomesk/qt-jpegxl-image-plugin/archive/v${version}.tar.gz"
+checksum=90c8c5b0afb709d4a71f536b3c1eb04d4f26a186220b2cae1b396c42ffbe299c

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR PATCH] [Updated] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (2 preceding siblings ...)
  2021-08-06 19:49 ` joshuakraemer
@ 2021-08-06 20:20 ` joshuakraemer
  2021-11-08 18:00 ` mustaqimM
                   ` (60 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2021-08-06 20:20 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

There is an updated pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 6299 bytes --]

From 0cd274d4096d41fb1198d4cd51731aff02a292b7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-0.12.2

---
 srcpkgs/highway/template | 12 ++++++++++++
 1 file changed, 12 insertions(+)
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..462df78a4888
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,12 @@
+# Template file for 'highway'
+pkgname=highway
+version=0.12.2
+revision=1
+build_style=cmake
+configure_args="-DBUILD_TESTING=OFF"
+short_desc="C++ library for SIMD (Single Instruction, Multiple Data)"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=e1d47ce510429fdcf31f41697ca74fb0dcd59d933196e531a86d51751a56f4cc

From 410170aa5c64df71e6dd0653378d89ae00485105 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.5.0

---
 common/shlibs           |  2 ++
 srcpkgs/libjxl-devel    |  1 +
 srcpkgs/libjxl-plugins  |  1 +
 srcpkgs/libjxl-tools    |  1 +
 srcpkgs/libjxl/template | 65 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 70 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index f768a637aed5..d5837c67d0c8 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4027,3 +4027,5 @@ librnnoise.so.0 rnnoise-0.4.1_1
 liblhasa.so.0 lhasa-0.3.1_2
 libmt32emu.so.2 libmt32emu-2.5.1_1
 libqrtr-glib.so.0 libqrtr-glib-1.0.0_1
+libjxl.so.0 libjxl-0.5.0_1
+libjxl_threads.so.0 libjxl-0.5.0_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..97df88797313
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,65 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=0.5.0
+revision=1
+_short_version=0.5
+wrksrc=libjxl-${_short_version}
+build_style=cmake
+configure_args="-DBUILD_TESTING=OFF -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
+hostmakedepends="tar pkg-config asciidoc"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel libopenexr-devel gdk-pixbuf-devel gimp-devel"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="BSD-3-Clause, custom:Patent grant"
+homepage="https://github.com/libjxl/libjxl"
+_lodepng_hash=48e5364ef48ec2408f44c727657ac1b6703185f8
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/v${_short_version}.tar.gz
+ https://github.com/lvandeve/lodepng/archive/${_lodepng_hash}.tar.gz>lodepng-${_lodepng_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="911cb4b50eb621131ca22382166f40d4914a4ff4453dd299ade1e3292f311f89
+ c47c48c77a205f1af484b7b5a847290af65de3ea6f15817aa27c5ec7cc5208fd
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="lodepng-${_lodepng_hash}.tar.gz
+ skcms-${_skcms_hash}.tar.gz"
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf lodepng-${_lodepng_hash}.tar.gz --strip-components=1 -C ${wrksrc}/third_party/lodepng
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+post_install() {
+	vlicense LICENSE
+	vlicense PATENTS
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="libjxl>=${version}_${revision} brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From f6bd9d561b1cf713741ade3c06944a11645d37f5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Thu, 10 Jun 2021 11:04:56 +0200
Subject: [PATCH 3/3] New package: qt-jpegxl-image-plugin-0.2.0

---
 srcpkgs/qt-jpegxl-image-plugin/template | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
 create mode 100644 srcpkgs/qt-jpegxl-image-plugin/template

diff --git a/srcpkgs/qt-jpegxl-image-plugin/template b/srcpkgs/qt-jpegxl-image-plugin/template
new file mode 100644
index 000000000000..e9dda7bad0e2
--- /dev/null
+++ b/srcpkgs/qt-jpegxl-image-plugin/template
@@ -0,0 +1,19 @@
+# Template file for 'qt-jpegxl-image-plugin'
+pkgname=qt-jpegxl-image-plugin
+version=0.2.0
+revision=1
+build_style=qmake
+configure_args="qt-jpegxl-image-plugin.pro"
+hostmakedepends="qt5-qmake"
+makedepends="libjxl-devel qt5-devel"
+depends="libjxl-plugins"
+short_desc="Qt5 plugin to support JPEG XL images"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="GPL-3.0-only"
+homepage="https://github.com/novomesk/qt-jpegxl-image-plugin"
+distfiles="https://github.com/novomesk/qt-jpegxl-image-plugin/archive/v${version}.tar.gz"
+checksum=90c8c5b0afb709d4a71f536b3c1eb04d4f26a186220b2cae1b396c42ffbe299c
+
+if [ "$CROSS_BUILD" ]; then
+	hostmakedepends+=" qt5-host-tools"
+fi

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (3 preceding siblings ...)
  2021-08-06 20:20 ` joshuakraemer
@ 2021-11-08 18:00 ` mustaqimM
  2022-03-30 10:42 ` tibequadorian
                   ` (59 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: mustaqimM @ 2021-11-08 18:00 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 4103 bytes --]

New comment by mustaqimM on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#issuecomment-963419609

Comment:
Thanks for this PR, @joshuakraemer. I've updated it to the latest version and I'm busy using it. Hopefully it can get merged

```diff
diff --git a/common/shlibs b/common/shlibs
index c0d304de40..02392241b9 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4038,5 +4038,5 @@ libstemmer.so.2 libstemmer-2.1.0_1
 libdecor-0.so.0 libdecor-0.1.0_1
 libavif.so.13 libavif-0.9.3_1
 libkdumpfile.so.9 libkdumpfile-0.4.1_1
-libjxl.so.0 libjxl-0.5.0_1
-libjxl_threads.so.0 libjxl-0.5.0_1
+libjxl.so.0.6 libjxl-0.6.1_1
+libjxl_threads.so.0.6 libjxl-0.6.1_1
diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
index 462df78a48..14cec1065d 100644
--- a/srcpkgs/highway/template
+++ b/srcpkgs/highway/template
@@ -1,6 +1,6 @@
 # Template file for 'highway'
 pkgname=highway
-version=0.12.2
+version=0.14.2
 revision=1
 build_style=cmake
 configure_args="-DBUILD_TESTING=OFF"
@@ -9,4 +9,4 @@ maintainer="Joshua Krämer <joshua@kraemer.link>"
 license="Apache-2.0"
 homepage="https://github.com/google/highway"
 distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
-checksum=e1d47ce510429fdcf31f41697ca74fb0dcd59d933196e531a86d51751a56f4cc
+checksum=58f7f3a12394341796fbb3045d18020474cb214ef85b9a50bbaaa809e34e9232
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
index 97df887973..14338d6d9b 100644
--- a/srcpkgs/libjxl/template
+++ b/srcpkgs/libjxl/template
@@ -1,9 +1,9 @@
 # Template file for 'libjxl'
 pkgname=libjxl
-version=0.5.0
+version=0.6.1
 revision=1
-_short_version=0.5
-wrksrc=libjxl-${_short_version}
+# _short_version=0.5
+wrksrc=libjxl-${version}
 build_style=cmake
 configure_args="-DBUILD_TESTING=OFF -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
 hostmakedepends="tar pkg-config asciidoc"
@@ -12,13 +12,13 @@ short_desc="JPEG XL image format reference implementation"
 maintainer="Joshua Krämer <joshua@kraemer.link>"
 license="BSD-3-Clause, custom:Patent grant"
 homepage="https://github.com/libjxl/libjxl"
-_lodepng_hash=48e5364ef48ec2408f44c727657ac1b6703185f8
+_lodepng_hash=8c6a9e30576f07bf470ad6f09458a2dcd7a6a84a
 _skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
-distfiles="https://github.com/libjxl/libjxl/archive/v${_short_version}.tar.gz
+distfiles="https://github.com/libjxl/libjxl/archive/v${version}.tar.gz
  https://github.com/lvandeve/lodepng/archive/${_lodepng_hash}.tar.gz>lodepng-${_lodepng_hash}.tar.gz
  https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
-checksum="911cb4b50eb621131ca22382166f40d4914a4ff4453dd299ade1e3292f311f89
- c47c48c77a205f1af484b7b5a847290af65de3ea6f15817aa27c5ec7cc5208fd
+checksum="ccbd5a729d730152303be399f033b905e608309d5802d77a61a95faa092592c5
+ f45359be529f5f478ebeb3159859a8f49462df35866e227c12d1440f17451a82
  @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
 skip_extraction="lodepng-${_lodepng_hash}.tar.gz
  skcms-${_skcms_hash}.tar.gz"
diff --git a/srcpkgs/qt-jpegxl-image-plugin/template b/srcpkgs/qt-jpegxl-image-plugin/template
index e9dda7bad0..0193f8b2e6 100644
--- a/srcpkgs/qt-jpegxl-image-plugin/template
+++ b/srcpkgs/qt-jpegxl-image-plugin/template
@@ -1,6 +1,6 @@
 # Template file for 'qt-jpegxl-image-plugin'
 pkgname=qt-jpegxl-image-plugin
-version=0.2.0
+version=0.3.2
 revision=1
 build_style=qmake
 configure_args="qt-jpegxl-image-plugin.pro"
@@ -12,7 +12,7 @@ maintainer="Joshua Krämer <joshua@kraemer.link>"
 license="GPL-3.0-only"
 homepage="https://github.com/novomesk/qt-jpegxl-image-plugin"
 distfiles="https://github.com/novomesk/qt-jpegxl-image-plugin/archive/v${version}.tar.gz"
-checksum=90c8c5b0afb709d4a71f536b3c1eb04d4f26a186220b2cae1b396c42ffbe299c
+checksum=8343500ecb9b92fd1fad5dca74d824ce66991c3eac2ff64e1d5757ef98bfcae8
 
 if [ "$CROSS_BUILD" ]; then
 	hostmakedepends+=" qt5-host-tools"
```

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (4 preceding siblings ...)
  2021-11-08 18:00 ` mustaqimM
@ 2022-03-30 10:42 ` tibequadorian
  2022-03-30 10:46 ` tibequadorian
                   ` (58 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: tibequadorian @ 2022-03-30 10:42 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 228 bytes --]

New comment by tibequadorian on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#issuecomment-1082939276

Comment:
@mustaqimM It looks like this PR is abandoned and you can take over if you want.

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (5 preceding siblings ...)
  2022-03-30 10:42 ` tibequadorian
@ 2022-03-30 10:46 ` tibequadorian
  2022-03-30 18:48 ` [PR PATCH] [Updated] " joshuakraemer
                   ` (57 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: tibequadorian @ 2022-03-30 10:46 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 306 bytes --]

New comment by tibequadorian on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#issuecomment-1082939276

Comment:
@mustaqimM It looks like this PR is abandoned and you can take over if you want.
Don't create a new PR, just add the necessary commits to your imlib2-jxl PR.

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR PATCH] [Updated] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (6 preceding siblings ...)
  2022-03-30 10:46 ` tibequadorian
@ 2022-03-30 18:48 ` joshuakraemer
  2022-03-30 19:06 ` joshuakraemer
                   ` (56 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-03-30 18:48 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

There is an updated pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 26810 bytes --]

From 54c4ea1d19e570f913f633657c38743e69966fc5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-0.16.0

---
 srcpkgs/highway/template | 12 ++++++++++++
 1 file changed, 12 insertions(+)
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..18f6c43b591c
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,12 @@
+# Template file for 'highway'
+pkgname=highway
+version=0.16.0
+revision=1
+build_style=cmake
+configure_args="-DBUILD_TESTING=OFF"
+short_desc="C++ library providing portable SIMD/vector intrinsics"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=746c9578446be6c5286e8846c5f0d4118c0c1f04219c401abadcb8a5f2051893

From 867f3b4668e351bdc646f604194c5cfe9aa91153 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.6.1

---
 common/shlibs                                 |   2 +
 srcpkgs/libjxl-devel                          |   1 +
 srcpkgs/libjxl-plugins                        |   1 +
 srcpkgs/libjxl-tools                          |   1 +
 .../deprecated_highway_functions.patch        | 459 ++++++++++++++++++
 srcpkgs/libjxl/template                       |  65 +++
 6 files changed, 529 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/patches/deprecated_highway_functions.patch
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index ccc55a1b3772..1446c848ff9f 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4145,3 +4145,5 @@ librz_lang.so.0.3.4 rizin-0.3.4_1
 librz_search.so.0.3.4 rizin-0.3.4_1
 librz_bin.so.0.3.4 rizin-0.3.4_1
 libaravis-0.8.so.0 libaravis-0.8.21_1
+libjxl.so.0.6 libjxl-0.6.1_1
+libjxl_threads.so.0.6 libjxl-0.6.1_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/patches/deprecated_highway_functions.patch b/srcpkgs/libjxl/patches/deprecated_highway_functions.patch
new file mode 100644
index 000000000000..a775eb5a7c56
--- /dev/null
+++ b/srcpkgs/libjxl/patches/deprecated_highway_functions.patch
@@ -0,0 +1,459 @@
+diff --git a/lib/jxl/dec_reconstruct.cc b/lib/jxl/dec_reconstruct.cc
+index a1baef4..08279f8 100644
+--- a/lib/jxl/dec_reconstruct.cc
++++ b/lib/jxl/dec_reconstruct.cc
+@@ -357,8 +357,8 @@ void DoYCbCrUpsampling(size_t hs, size_t vs, ImageF* plane_in, const Rect& rect,
+         Store(left, d, out + x);
+         Store(right, d, out + x + 1);
+ #else
+-        Store(InterleaveLower(left, right), d, out + x);
+-        Store(InterleaveUpper(left, right), d, out + x + Lanes(d));
++        Store(InterleaveLower(d, left, right), d, out + x);
++        Store(InterleaveUpper(d, left, right), d, out + x + Lanes(d));
+ #endif
+       }
+     }
+diff --git a/lib/jxl/dec_upsample.cc b/lib/jxl/dec_upsample.cc
+index 7277e4f..3cb3f36 100644
+--- a/lib/jxl/dec_upsample.cc
++++ b/lib/jxl/dec_upsample.cc
+@@ -176,8 +176,8 @@ void Upsample(const ImageF& src, const Rect& src_rect, ImageF* dst,
+         min = Min(LoadU(df, raw_min_row + sx + fx), min);
+         max = Max(LoadU(df, raw_max_row + sx + fx), max);
+       }
+-      min = MinOfLanes(min);
+-      max = MaxOfLanes(max);
++      min = MinOfLanes(df, min);
++      max = MaxOfLanes(df, max);
+       for (size_t lx = 0; lx < N; lx += V) {
+         StoreU(min, df, min_row + N * sx + lx);
+         StoreU(max, df, max_row + N * sx + lx);
+diff --git a/lib/jxl/enc_ac_strategy.cc b/lib/jxl/enc_ac_strategy.cc
+index bc50465..c0ed68f 100644
+--- a/lib/jxl/enc_ac_strategy.cc
++++ b/lib/jxl/enc_ac_strategy.cc
+@@ -429,8 +429,8 @@ float EstimateEntropy(const AcStrategy& acs, size_t x, size_t y,
+     }
+     entropy_v += nzeros_v * cost1;
+ 
+-    entropy += GetLane(SumOfLanes(entropy_v));
+-    size_t num_nzeros = GetLane(SumOfLanes(nzeros_v));
++    entropy += GetLane(SumOfLanes(df, entropy_v));
++    size_t num_nzeros = GetLane(SumOfLanes(df, nzeros_v));
+     // Add #bit of num_nonzeros, as an estimate of the cost for encoding the
+     // number of non-zeros of the block.
+     size_t nbits = CeilLog2Nonzero(num_nzeros + 1) + 1;
+@@ -441,9 +441,9 @@ float EstimateEntropy(const AcStrategy& acs, size_t x, size_t y,
+   float ret =
+       entropy +
+       masking *
+-          ((config.info_loss_multiplier * GetLane(SumOfLanes(info_loss))) +
++          ((config.info_loss_multiplier * GetLane(SumOfLanes(df, info_loss))) +
+            (config.info_loss_multiplier2 *
+-            sqrt(num_blocks * GetLane(SumOfLanes(info_loss2)))));
++            sqrt(num_blocks * GetLane(SumOfLanes(df, info_loss2)))));
+   return ret;
+ }
+ 
+diff --git a/lib/jxl/enc_adaptive_quantization.cc b/lib/jxl/enc_adaptive_quantization.cc
+index f53393f..24f3d53 100644
+--- a/lib/jxl/enc_adaptive_quantization.cc
++++ b/lib/jxl/enc_adaptive_quantization.cc
+@@ -189,7 +189,7 @@ V GammaModulation(const D d, const size_t x, const size_t y,
+       overall_ratio += avg_ratio;
+     }
+   }
+-  overall_ratio = SumOfLanes(overall_ratio);
++  overall_ratio = SumOfLanes(d, overall_ratio);
+   overall_ratio *= Set(d, 1.0f / 64);
+   // ideally -1.0, but likely optimal correction adds some entropy, so slightly
+   // less than that.
+@@ -246,12 +246,12 @@ V ColorModulation(const D d, const size_t x, const size_t y,
+   // blue we consider as if it was fully red or blue.
+   static const float ratio = 30.610615782142737f;  // out of 64 pixels.
+ 
+-  auto overall_red_coverage = SumOfLanes(red_coverage);
++  auto overall_red_coverage = SumOfLanes(d, red_coverage);
+   overall_red_coverage =
+       Min(overall_red_coverage, Set(d, ratio * kRedRampLength));
+   overall_red_coverage *= Set(d, red_strength / ratio);
+ 
+-  auto overall_blue_coverage = SumOfLanes(blue_coverage);
++  auto overall_blue_coverage = SumOfLanes(d, blue_coverage);
+   overall_blue_coverage =
+       Min(overall_blue_coverage, Set(d, ratio * kBlueRampLength));
+   overall_blue_coverage *= Set(d, blue_strength / ratio);
+@@ -295,7 +295,7 @@ V HfModulation(const D d, const size_t x, const size_t y, const ImageF& xyb,
+     }
+   }
+ 
+-  sum = SumOfLanes(sum);
++  sum = SumOfLanes(d, sum);
+   return MulAdd(sum, Set(d, -2.0052193233688884f / 112), out_val);
+ }
+ 
+diff --git a/lib/jxl/enc_ar_control_field.cc b/lib/jxl/enc_ar_control_field.cc
+index f43340e..f8025ac 100644
+--- a/lib/jxl/enc_ar_control_field.cc
++++ b/lib/jxl/enc_ar_control_field.cc
+@@ -157,7 +157,7 @@ void ProcessTile(const Image3F& opsin, PassesEncoderState* enc_state,
+           sum += LoadU(df4, rows_in[iy] + x * 4 + ix + 2);
+         }
+       }
+-      row_out[x] = GetLane(Sqrt(SumOfLanes(sum))) * (1.0f / 4.0f);
++      row_out[x] = GetLane(Sqrt(SumOfLanes(df4, sum))) * (1.0f / 4.0f);
+     }
+   }
+   // Indexing iy and ix is a bit tricky as we include a 2 pixel border
+@@ -193,7 +193,7 @@ void ProcessTile(const Image3F& opsin, PassesEncoderState* enc_state,
+             sum += Load(df4, rows_in[iy] + sx + ix);
+           }
+         }
+-        row_out[x] = GetLane(Sqrt(SumOfLanes(sum))) * (1.0f / 4.0f);
++        row_out[x] = GetLane(Sqrt(SumOfLanes(df4, sum))) * (1.0f / 4.0f);
+       } else {
+         float sum = 0;
+         for (size_t iy = sy; iy < ey; iy++) {
+diff --git a/lib/jxl/enc_butteraugli_pnorm.cc b/lib/jxl/enc_butteraugli_pnorm.cc
+index 7c3fb9c..90b0440 100644
+--- a/lib/jxl/enc_butteraugli_pnorm.cc
++++ b/lib/jxl/enc_butteraugli_pnorm.cc
+@@ -95,13 +95,13 @@ double ComputeDistanceP(const ImageF& distmap, const ButteraugliParams& params,
+     }
+     double v = 0;
+     v += pow(
+-        onePerPixels * (sum1[0] + GetLane(SumOfLanes(Load(d, sum_totals0)))),
++        onePerPixels * (sum1[0] + GetLane(SumOfLanes(d, Load(d, sum_totals0)))),
+         1.0 / (p * 1.0));
+     v += pow(
+-        onePerPixels * (sum1[1] + GetLane(SumOfLanes(Load(d, sum_totals1)))),
++        onePerPixels * (sum1[1] + GetLane(SumOfLanes(d, Load(d, sum_totals1)))),
+         1.0 / (p * 2.0));
+     v += pow(
+-        onePerPixels * (sum1[2] + GetLane(SumOfLanes(Load(d, sum_totals2)))),
++        onePerPixels * (sum1[2] + GetLane(SumOfLanes(d, Load(d, sum_totals2)))),
+         1.0 / (p * 4.0));
+     v /= 3.0;
+     return v;
+diff --git a/lib/jxl/enc_chroma_from_luma.cc b/lib/jxl/enc_chroma_from_luma.cc
+index e5c3f38..370595c 100644
+--- a/lib/jxl/enc_chroma_from_luma.cc
++++ b/lib/jxl/enc_chroma_from_luma.cc
+@@ -91,9 +91,9 @@ struct CFLFunction {
+       fdme_v += IfThenElse(av >= thres, zero, dme);
+     }
+ 
+-    *fpeps = first_derivative_peps + GetLane(SumOfLanes(fdpe_v));
+-    *fmeps = first_derivative_meps + GetLane(SumOfLanes(fdme_v));
+-    return first_derivative + GetLane(SumOfLanes(fd_v));
++    *fpeps = first_derivative_peps + GetLane(SumOfLanes(df, fdpe_v));
++    *fmeps = first_derivative_meps + GetLane(SumOfLanes(df, fdme_v));
++    return first_derivative + GetLane(SumOfLanes(df, fd_v));
+   }
+ 
+   const float* JXL_RESTRICT values_m;
+@@ -124,8 +124,8 @@ int32_t FindBestMultiplier(const float* values_m, const float* values_s,
+       cb = MulAdd(a, b, cb);
+     }
+     // + distance_mul * x^2 * num
+-    x = -GetLane(SumOfLanes(cb)) /
+-        (GetLane(SumOfLanes(ca)) + num * distance_mul * 0.5f);
++    x = -GetLane(SumOfLanes(df, cb)) /
++        (GetLane(SumOfLanes(df, ca)) + num * distance_mul * 0.5f);
+   } else {
+     constexpr float eps = 1;
+     constexpr float kClamp = 20.0f;
+diff --git a/lib/jxl/enc_cluster.cc b/lib/jxl/enc_cluster.cc
+index 1f12a29..8ae863c 100644
+--- a/lib/jxl/enc_cluster.cc
++++ b/lib/jxl/enc_cluster.cc
+@@ -49,7 +49,7 @@ void HistogramEntropy(const Histogram& a) {
+     const auto counts = LoadU(di, &a.data_[i]);
+     entropy_lanes += Entropy(ConvertTo(df, counts), inv_tot, total);
+   }
+-  a.entropy_ += GetLane(SumOfLanes(entropy_lanes));
++  a.entropy_ += GetLane(SumOfLanes(df, entropy_lanes));
+ }
+ 
+ float HistogramDistance(const Histogram& a, const Histogram& b) {
+@@ -71,7 +71,7 @@ float HistogramDistance(const Histogram& a, const Histogram& b) {
+     const auto counts = ConvertTo(df, a_counts + b_counts);
+     distance_lanes += Entropy(counts, inv_tot, total);
+   }
+-  const float total_distance = GetLane(SumOfLanes(distance_lanes));
++  const float total_distance = GetLane(SumOfLanes(df, distance_lanes));
+   return total_distance - a.entropy_ - b.entropy_;
+ }
+ 
+diff --git a/lib/jxl/enc_entropy_coder.cc b/lib/jxl/enc_entropy_coder.cc
+index 0946300..07fe5a0 100644
+--- a/lib/jxl/enc_entropy_coder.cc
++++ b/lib/jxl/enc_entropy_coder.cc
+@@ -86,7 +86,7 @@ int32_t NumNonZeroExceptLLF(const size_t cx, const size_t cy,
+ 
+   // We want area - sum_zero, add because neg_sum_zero is already negated.
+   const int32_t nzeros =
+-      int32_t(cx * cy * kDCTBlockSize) + GetLane(SumOfLanes(neg_sum_zero));
++      int32_t(cx * cy * kDCTBlockSize) + GetLane(SumOfLanes(di, neg_sum_zero));
+ 
+   const int32_t shifted_nzeros = static_cast<int32_t>(
+       (nzeros + covered_blocks - 1) >> log2_covered_blocks);
+@@ -135,7 +135,7 @@ int32_t NumNonZero8x8ExceptDC(const int32_t* JXL_RESTRICT block,
+ 
+   // We want 64 - sum_zero, add because neg_sum_zero is already negated.
+   const int32_t nzeros =
+-      int32_t(kDCTBlockSize) + GetLane(SumOfLanes(neg_sum_zero));
++      int32_t(kDCTBlockSize) + GetLane(SumOfLanes(di, neg_sum_zero));
+ 
+   *nzeros_pos = nzeros;
+ 
+diff --git a/lib/jxl/enc_fast_heuristics.cc b/lib/jxl/enc_fast_heuristics.cc
+index 16f7670..0551782 100644
+--- a/lib/jxl/enc_fast_heuristics.cc
++++ b/lib/jxl/enc_fast_heuristics.cc
+@@ -94,8 +94,8 @@ Status Heuristics(PassesEncoderState* enc_state,
+               cb = MulAdd(a, b, cb);
+             }
+           }
+-          float best =
+-              -GetLane(SumOfLanes(cb)) / (GetLane(SumOfLanes(ca)) + 1e-9f);
++          float best = -GetLane(SumOfLanes(df, cb)) /
++                       (GetLane(SumOfLanes(df, ca)) + 1e-9f);
+           int8_t& res = (c == 0 ? shared.cmap.ytox_map : shared.cmap.ytob_map)
+                             .Row(ty)[tx];
+           res = std::max(-128.0f, std::min(127.0f, roundf(best)));
+@@ -124,8 +124,8 @@ Status Heuristics(PassesEncoderState* enc_state,
+                 max = IfThenElse(max > nn, max, nn);
+               }
+             }
+-            row_out_avg[x] = GetLane(SumOfLanes(sum));
+-            row_out[x] = GetLane(MaxOfLanes(max));
++            row_out_avg[x] = GetLane(SumOfLanes(df4, sum));
++            row_out[x] = GetLane(MaxOfLanes(df4, max));
+           }
+         }
+       },
+diff --git a/lib/jxl/gauss_blur.cc b/lib/jxl/gauss_blur.cc
+index f9babe7..f24a74c 100644
+--- a/lib/jxl/gauss_blur.cc
++++ b/lib/jxl/gauss_blur.cc
+@@ -421,7 +421,7 @@ ImageF ConvolveXSampleAndTranspose(const ImageF& in,
+       for (int i = -r; i <= r; i += Lanes(df)) {
+         sum = MulAdd(LoadU(df, rowp + x + i), LoadU(df, kernelp + i), sum);
+       }
+-      out.Row(ox)[y] = GetLane(SumOfLanes(sum));
++      out.Row(ox)[y] = GetLane(SumOfLanes(df, sum));
+     }
+     for (; x < in.xsize(); x += res, ++ox) {
+       float sum = 0.0f;
+diff --git a/lib/jxl/modular/encoding/enc_ma.cc b/lib/jxl/modular/encoding/enc_ma.cc
+index 0e2eaac..d485129 100644
+--- a/lib/jxl/modular/encoding/enc_ma.cc
++++ b/lib/jxl/modular/encoding/enc_ma.cc
+@@ -84,7 +84,7 @@ float EstimateBits(const int32_t *counts, int32_t *rounded_counts,
+     bits_lanes -=
+         IfThenElse(counts_v == zero, zero, counts_v * BitCast(df, nbps));
+   }
+-  return GetLane(SumOfLanes(bits_lanes));
++  return GetLane(SumOfLanes(df, bits_lanes));
+ }
+ 
+ void MakeSplitNode(size_t pos, int property, int splitval, Predictor lpred,
+diff --git a/lib/jxl/rational_polynomial_test.cc b/lib/jxl/rational_polynomial_test.cc
+index 699afd0..f985eb0 100644
+--- a/lib/jxl/rational_polynomial_test.cc
++++ b/lib/jxl/rational_polynomial_test.cc
+@@ -51,7 +51,7 @@ struct EvalLog2 {
+     const HWY_FULL(int32_t) di;
+     const auto x_bits = BitCast(di, vx);
+     // Cannot handle negative numbers / NaN.
+-    JXL_DASSERT(AllTrue(Abs(x_bits) == x_bits));
++    JXL_DASSERT(AllTrue(di, Abs(x_bits) == x_bits));
+ 
+     // Range reduction to [-1/3, 1/3] - 3 integer, 2 float ops
+     const auto exp_bits = x_bits - Set(di, 0x3f2aaaab);  // = 2/3
+diff --git a/lib/jxl/splines.cc b/lib/jxl/splines.cc
+index 8653445..5dc2404 100644
+--- a/lib/jxl/splines.cc
++++ b/lib/jxl/splines.cc
+@@ -52,7 +52,7 @@ float ContinuousIDCT(const float dct[32], float t) {
+     auto local_res = LoadU(df, dct + i) * cos;
+     result = MulAdd(Set(df, square_root<2>::value), local_res, result);
+   }
+-  return GetLane(SumOfLanes(result));
++  return GetLane(SumOfLanes(df, result));
+ }
+ 
+ template <typename DF>
+diff --git a/lib/jxl/transpose-inl.h b/lib/jxl/transpose-inl.h
+index d12b129..4674420 100644
+--- a/lib/jxl/transpose-inl.h
++++ b/lib/jxl/transpose-inl.h
+@@ -74,50 +74,51 @@ JXL_INLINE_TRANSPOSE void GenericTransposeBlock(TransposeSimdTag<true>,
+   static_assert(COLS_or_0 % 8 == 0, "Invalid number of columns");
+   for (size_t n = 0; n < ROWS; n += 8) {
+     for (size_t m = 0; m < COLS; m += 8) {
+-      auto i0 = from.LoadPart(BlockDesc<8>(), n + 0, m + 0);
+-      auto i1 = from.LoadPart(BlockDesc<8>(), n + 1, m + 0);
+-      auto i2 = from.LoadPart(BlockDesc<8>(), n + 2, m + 0);
+-      auto i3 = from.LoadPart(BlockDesc<8>(), n + 3, m + 0);
+-      auto i4 = from.LoadPart(BlockDesc<8>(), n + 4, m + 0);
+-      auto i5 = from.LoadPart(BlockDesc<8>(), n + 5, m + 0);
+-      auto i6 = from.LoadPart(BlockDesc<8>(), n + 6, m + 0);
+-      auto i7 = from.LoadPart(BlockDesc<8>(), n + 7, m + 0);
++      const BlockDesc<8> d;
++      auto i0 = from.LoadPart(d, n + 0, m + 0);
++      auto i1 = from.LoadPart(d, n + 1, m + 0);
++      auto i2 = from.LoadPart(d, n + 2, m + 0);
++      auto i3 = from.LoadPart(d, n + 3, m + 0);
++      auto i4 = from.LoadPart(d, n + 4, m + 0);
++      auto i5 = from.LoadPart(d, n + 5, m + 0);
++      auto i6 = from.LoadPart(d, n + 6, m + 0);
++      auto i7 = from.LoadPart(d, n + 7, m + 0);
+       // Surprisingly, this straightforward implementation (24 cycles on port5)
+       // is faster than load128+insert and LoadDup128+ConcatUpperLower+blend.
+-      const auto q0 = InterleaveLower(i0, i2);
+-      const auto q1 = InterleaveLower(i1, i3);
+-      const auto q2 = InterleaveUpper(i0, i2);
+-      const auto q3 = InterleaveUpper(i1, i3);
+-      const auto q4 = InterleaveLower(i4, i6);
+-      const auto q5 = InterleaveLower(i5, i7);
+-      const auto q6 = InterleaveUpper(i4, i6);
+-      const auto q7 = InterleaveUpper(i5, i7);
+-
+-      const auto r0 = InterleaveLower(q0, q1);
+-      const auto r1 = InterleaveUpper(q0, q1);
+-      const auto r2 = InterleaveLower(q2, q3);
+-      const auto r3 = InterleaveUpper(q2, q3);
+-      const auto r4 = InterleaveLower(q4, q5);
+-      const auto r5 = InterleaveUpper(q4, q5);
+-      const auto r6 = InterleaveLower(q6, q7);
+-      const auto r7 = InterleaveUpper(q6, q7);
+-
+-      i0 = ConcatLowerLower(r4, r0);
+-      i1 = ConcatLowerLower(r5, r1);
+-      i2 = ConcatLowerLower(r6, r2);
+-      i3 = ConcatLowerLower(r7, r3);
+-      i4 = ConcatUpperUpper(r4, r0);
+-      i5 = ConcatUpperUpper(r5, r1);
+-      i6 = ConcatUpperUpper(r6, r2);
+-      i7 = ConcatUpperUpper(r7, r3);
+-      to.StorePart(BlockDesc<8>(), i0, m + 0, n + 0);
+-      to.StorePart(BlockDesc<8>(), i1, m + 1, n + 0);
+-      to.StorePart(BlockDesc<8>(), i2, m + 2, n + 0);
+-      to.StorePart(BlockDesc<8>(), i3, m + 3, n + 0);
+-      to.StorePart(BlockDesc<8>(), i4, m + 4, n + 0);
+-      to.StorePart(BlockDesc<8>(), i5, m + 5, n + 0);
+-      to.StorePart(BlockDesc<8>(), i6, m + 6, n + 0);
+-      to.StorePart(BlockDesc<8>(), i7, m + 7, n + 0);
++      const auto q0 = InterleaveLower(d, i0, i2);
++      const auto q1 = InterleaveLower(d, i1, i3);
++      const auto q2 = InterleaveUpper(d, i0, i2);
++      const auto q3 = InterleaveUpper(d, i1, i3);
++      const auto q4 = InterleaveLower(d, i4, i6);
++      const auto q5 = InterleaveLower(d, i5, i7);
++      const auto q6 = InterleaveUpper(d, i4, i6);
++      const auto q7 = InterleaveUpper(d, i5, i7);
++
++      const auto r0 = InterleaveLower(d, q0, q1);
++      const auto r1 = InterleaveUpper(d, q0, q1);
++      const auto r2 = InterleaveLower(d, q2, q3);
++      const auto r3 = InterleaveUpper(d, q2, q3);
++      const auto r4 = InterleaveLower(d, q4, q5);
++      const auto r5 = InterleaveUpper(d, q4, q5);
++      const auto r6 = InterleaveLower(d, q6, q7);
++      const auto r7 = InterleaveUpper(d, q6, q7);
++
++      i0 = ConcatLowerLower(d, r4, r0);
++      i1 = ConcatLowerLower(d, r5, r1);
++      i2 = ConcatLowerLower(d, r6, r2);
++      i3 = ConcatLowerLower(d, r7, r3);
++      i4 = ConcatUpperUpper(d, r4, r0);
++      i5 = ConcatUpperUpper(d, r5, r1);
++      i6 = ConcatUpperUpper(d, r6, r2);
++      i7 = ConcatUpperUpper(d, r7, r3);
++      to.StorePart(d, i0, m + 0, n + 0);
++      to.StorePart(d, i1, m + 1, n + 0);
++      to.StorePart(d, i2, m + 2, n + 0);
++      to.StorePart(d, i3, m + 3, n + 0);
++      to.StorePart(d, i4, m + 4, n + 0);
++      to.StorePart(d, i5, m + 5, n + 0);
++      to.StorePart(d, i6, m + 6, n + 0);
++      to.StorePart(d, i7, m + 7, n + 0);
+     }
+   }
+ }
+@@ -137,25 +138,26 @@ JXL_INLINE_TRANSPOSE void GenericTransposeBlock(TransposeSimdTag<true>,
+   static_assert(COLS_or_0 % 4 == 0, "Invalid number of columns");
+   for (size_t n = 0; n < ROWS; n += 4) {
+     for (size_t m = 0; m < COLS; m += 4) {
+-      const auto p0 = from.LoadPart(BlockDesc<4>(), n + 0, m + 0);
+-      const auto p1 = from.LoadPart(BlockDesc<4>(), n + 1, m + 0);
+-      const auto p2 = from.LoadPart(BlockDesc<4>(), n + 2, m + 0);
+-      const auto p3 = from.LoadPart(BlockDesc<4>(), n + 3, m + 0);
+-
+-      const auto q0 = InterleaveLower(p0, p2);
+-      const auto q1 = InterleaveLower(p1, p3);
+-      const auto q2 = InterleaveUpper(p0, p2);
+-      const auto q3 = InterleaveUpper(p1, p3);
+-
+-      const auto r0 = InterleaveLower(q0, q1);
+-      const auto r1 = InterleaveUpper(q0, q1);
+-      const auto r2 = InterleaveLower(q2, q3);
+-      const auto r3 = InterleaveUpper(q2, q3);
+-
+-      to.StorePart(BlockDesc<4>(), r0, m + 0, n + 0);
+-      to.StorePart(BlockDesc<4>(), r1, m + 1, n + 0);
+-      to.StorePart(BlockDesc<4>(), r2, m + 2, n + 0);
+-      to.StorePart(BlockDesc<4>(), r3, m + 3, n + 0);
++      const BlockDesc<4> d;
++      const auto p0 = from.LoadPart(d, n + 0, m + 0);
++      const auto p1 = from.LoadPart(d, n + 1, m + 0);
++      const auto p2 = from.LoadPart(d, n + 2, m + 0);
++      const auto p3 = from.LoadPart(d, n + 3, m + 0);
++
++      const auto q0 = InterleaveLower(d, p0, p2);
++      const auto q1 = InterleaveLower(d, p1, p3);
++      const auto q2 = InterleaveUpper(d, p0, p2);
++      const auto q3 = InterleaveUpper(d, p1, p3);
++
++      const auto r0 = InterleaveLower(d, q0, q1);
++      const auto r1 = InterleaveUpper(d, q0, q1);
++      const auto r2 = InterleaveLower(d, q2, q3);
++      const auto r3 = InterleaveUpper(d, q2, q3);
++
++      to.StorePart(d, r0, m + 0, n + 0);
++      to.StorePart(d, r1, m + 1, n + 0);
++      to.StorePart(d, r2, m + 2, n + 0);
++      to.StorePart(d, r3, m + 3, n + 0);
+     }
+   }
+ }
+diff --git a/lib/profiler/profiler.cc b/lib/profiler/profiler.cc
+index d21ee09..186ff06 100644
+--- a/lib/profiler/profiler.cc
++++ b/lib/profiler/profiler.cc
+@@ -139,7 +139,7 @@ class Results {
+   void AnalyzePackets(const Packet* HWY_RESTRICT packets,
+                       const size_t num_packets) {
+     // Ensures prior weakly-ordered streaming stores are globally visible.
+-    hwy::StoreFence();
++    hwy::FlushStream();
+ 
+     const uint64_t t0 = TicksBefore();
+ 
+@@ -372,12 +372,12 @@ void ThreadSpecific::ComputeOverhead() {
+       const size_t kReps = 10000;
+       // Analysis time should not be included => must fit within buffer.
+       HWY_ASSERT(kReps * 2 < max_packets_);
+-      hwy::StoreFence();
++      hwy::FlushStream();
+       const uint64_t t0 = TicksBefore();
+       for (size_t i = 0; i < kReps; ++i) {
+         PROFILER_ZONE("Dummy");
+       }
+-      hwy::StoreFence();
++      hwy::FlushStream();
+       const uint64_t t1 = TicksAfter();
+       HWY_ASSERT(num_packets_ + buffer_size_ == kReps * 2);
+       buffer_size_ = 0;
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..8729293b0ffd
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,65 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=0.6.1
+revision=1
+#_short_version=0.6
+#wrksrc=libjxl-${_short_version}
+build_style=cmake
+configure_args="-DBUILD_TESTING=OFF -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
+hostmakedepends="tar pkg-config asciidoc"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel libopenexr-devel gdk-pixbuf-devel gimp-devel"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="BSD-3-Clause, custom:Patent grant"
+homepage="https://jpeg.org/jpegxl/"
+_lodepng_hash=48e5364ef48ec2408f44c727657ac1b6703185f8
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/v${version}.tar.gz
+ https://github.com/lvandeve/lodepng/archive/${_lodepng_hash}.tar.gz>lodepng-${_lodepng_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="ccbd5a729d730152303be399f033b905e608309d5802d77a61a95faa092592c5
+ c47c48c77a205f1af484b7b5a847290af65de3ea6f15817aa27c5ec7cc5208fd
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="lodepng-${_lodepng_hash}.tar.gz
+ skcms-${_skcms_hash}.tar.gz"
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf lodepng-${_lodepng_hash}.tar.gz --strip-components=1 -C ${wrksrc}/third_party/lodepng
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+post_install() {
+	vlicense LICENSE
+	vlicense PATENTS
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="libjxl>=${version}_${revision} highway brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From 09dd40da283d21eb03dc0724ab885535b692252d Mon Sep 17 00:00:00 2001
From: Joshua <joshua@kraemer.link>
Date: Wed, 30 Mar 2022 21:23:16 +0200
Subject: [PATCH 3/3] kimageformats: enable JPEG XL support

---
 srcpkgs/kimageformats/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kimageformats/template b/srcpkgs/kimageformats/template
index ebd6e81db298..6965e041027c 100644
--- a/srcpkgs/kimageformats/template
+++ b/srcpkgs/kimageformats/template
@@ -1,12 +1,12 @@
 # Template file for 'kimageformats'
 pkgname=kimageformats
 version=5.92.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKIMAGEFORMATS_HEIF=ON"
 hostmakedepends="kcoreaddons extra-cmake-modules qt5-qmake qt5-host-tools
  pkg-config"
-makedepends="karchive-devel libopenexr-devel libheif-devel"
+makedepends="karchive-devel libopenexr-devel libheif-devel libjxl-devel"
 short_desc="KDE Plugins to allow QImage to support extra file formats"
 maintainer="John <me@johnnynator.dev>"
 license="LGPL-2.0-or-later"

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (7 preceding siblings ...)
  2022-03-30 18:48 ` [PR PATCH] [Updated] " joshuakraemer
@ 2022-03-30 19:06 ` joshuakraemer
  2022-03-30 19:23 ` [PR REVIEW] " tibequadorian
                   ` (55 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-03-30 19:06 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 514 bytes --]

New comment by joshuakraemer on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#issuecomment-1083517534

Comment:
Sorry, it's not abandoned, but I'm quite busy, so feel free to take over if you want.

I've updated highway and libjxl to the latest release versions. The patch for libjxl is necessary to make it compile with highway 0.16.0 (changes are cherry-picked from upstream commits). I've dropped qt-jpegxl-image-plugin and instead updated kimageformats to support JPEG-XL.

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR REVIEW] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (8 preceding siblings ...)
  2022-03-30 19:06 ` joshuakraemer
@ 2022-03-30 19:23 ` tibequadorian
  2022-03-30 19:23 ` tibequadorian
                   ` (54 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: tibequadorian @ 2022-03-30 19:23 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 162 bytes --]

New review comment by tibequadorian on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#discussion_r838886603

Comment:
same here

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR REVIEW] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (9 preceding siblings ...)
  2022-03-30 19:23 ` [PR REVIEW] " tibequadorian
@ 2022-03-30 19:23 ` tibequadorian
  2022-03-30 19:25 ` tibequadorian
                   ` (53 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: tibequadorian @ 2022-03-30 19:23 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 178 bytes --]

New review comment by tibequadorian on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#discussion_r838885613

Comment:
Why do you disable tests?

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (10 preceding siblings ...)
  2022-03-30 19:23 ` tibequadorian
@ 2022-03-30 19:25 ` tibequadorian
  2022-03-30 20:24 ` tibequadorian
                   ` (52 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: tibequadorian @ 2022-03-30 19:25 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 209 bytes --]

New comment by tibequadorian on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#issuecomment-1083539161

Comment:
Look into plocate template how to fix libatomic linker error.

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (11 preceding siblings ...)
  2022-03-30 19:25 ` tibequadorian
@ 2022-03-30 20:24 ` tibequadorian
  2022-03-31  9:54 ` [PR PATCH] [Updated] " joshuakraemer
                   ` (51 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: tibequadorian @ 2022-03-30 20:24 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 196 bytes --]

New comment by tibequadorian on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#issuecomment-1083590060

Comment:
If possible, try to wrap lines at 80 characters.

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR PATCH] [Updated] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (12 preceding siblings ...)
  2022-03-30 20:24 ` tibequadorian
@ 2022-03-31  9:54 ` joshuakraemer
  2022-03-31 13:36 ` [PR REVIEW] " tibequadorian
                   ` (50 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-03-31  9:54 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

There is an updated pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 26944 bytes --]

From 9f5e74a82298918837710c41807bdd3eb9cf8942 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-0.16.0

---
 srcpkgs/highway/template | 13 +++++++++++++
 1 file changed, 13 insertions(+)
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..943141a3284f
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,13 @@
+# Template file for 'highway'
+pkgname=highway
+version=0.16.0
+revision=1
+build_style=cmake
+configure_args="-DHWY_SYSTEM_GTEST=ON"
+makedepends="gtest-devel"
+short_desc="C++ library providing portable SIMD/vector intrinsics"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=746c9578446be6c5286e8846c5f0d4118c0c1f04219c401abadcb8a5f2051893

From 95caf7dcac877d40f1e737b9f0ed803e81519072 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.6.1

---
 common/shlibs                                 |   2 +
 srcpkgs/libjxl-devel                          |   1 +
 srcpkgs/libjxl-plugins                        |   1 +
 srcpkgs/libjxl-tools                          |   1 +
 .../deprecated_highway_functions.patch        | 459 ++++++++++++++++++
 srcpkgs/libjxl/template                       |  72 +++
 6 files changed, 536 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/patches/deprecated_highway_functions.patch
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index ccc55a1b3772..1446c848ff9f 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4145,3 +4145,5 @@ librz_lang.so.0.3.4 rizin-0.3.4_1
 librz_search.so.0.3.4 rizin-0.3.4_1
 librz_bin.so.0.3.4 rizin-0.3.4_1
 libaravis-0.8.so.0 libaravis-0.8.21_1
+libjxl.so.0.6 libjxl-0.6.1_1
+libjxl_threads.so.0.6 libjxl-0.6.1_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/patches/deprecated_highway_functions.patch b/srcpkgs/libjxl/patches/deprecated_highway_functions.patch
new file mode 100644
index 000000000000..a775eb5a7c56
--- /dev/null
+++ b/srcpkgs/libjxl/patches/deprecated_highway_functions.patch
@@ -0,0 +1,459 @@
+diff --git a/lib/jxl/dec_reconstruct.cc b/lib/jxl/dec_reconstruct.cc
+index a1baef4..08279f8 100644
+--- a/lib/jxl/dec_reconstruct.cc
++++ b/lib/jxl/dec_reconstruct.cc
+@@ -357,8 +357,8 @@ void DoYCbCrUpsampling(size_t hs, size_t vs, ImageF* plane_in, const Rect& rect,
+         Store(left, d, out + x);
+         Store(right, d, out + x + 1);
+ #else
+-        Store(InterleaveLower(left, right), d, out + x);
+-        Store(InterleaveUpper(left, right), d, out + x + Lanes(d));
++        Store(InterleaveLower(d, left, right), d, out + x);
++        Store(InterleaveUpper(d, left, right), d, out + x + Lanes(d));
+ #endif
+       }
+     }
+diff --git a/lib/jxl/dec_upsample.cc b/lib/jxl/dec_upsample.cc
+index 7277e4f..3cb3f36 100644
+--- a/lib/jxl/dec_upsample.cc
++++ b/lib/jxl/dec_upsample.cc
+@@ -176,8 +176,8 @@ void Upsample(const ImageF& src, const Rect& src_rect, ImageF* dst,
+         min = Min(LoadU(df, raw_min_row + sx + fx), min);
+         max = Max(LoadU(df, raw_max_row + sx + fx), max);
+       }
+-      min = MinOfLanes(min);
+-      max = MaxOfLanes(max);
++      min = MinOfLanes(df, min);
++      max = MaxOfLanes(df, max);
+       for (size_t lx = 0; lx < N; lx += V) {
+         StoreU(min, df, min_row + N * sx + lx);
+         StoreU(max, df, max_row + N * sx + lx);
+diff --git a/lib/jxl/enc_ac_strategy.cc b/lib/jxl/enc_ac_strategy.cc
+index bc50465..c0ed68f 100644
+--- a/lib/jxl/enc_ac_strategy.cc
++++ b/lib/jxl/enc_ac_strategy.cc
+@@ -429,8 +429,8 @@ float EstimateEntropy(const AcStrategy& acs, size_t x, size_t y,
+     }
+     entropy_v += nzeros_v * cost1;
+ 
+-    entropy += GetLane(SumOfLanes(entropy_v));
+-    size_t num_nzeros = GetLane(SumOfLanes(nzeros_v));
++    entropy += GetLane(SumOfLanes(df, entropy_v));
++    size_t num_nzeros = GetLane(SumOfLanes(df, nzeros_v));
+     // Add #bit of num_nonzeros, as an estimate of the cost for encoding the
+     // number of non-zeros of the block.
+     size_t nbits = CeilLog2Nonzero(num_nzeros + 1) + 1;
+@@ -441,9 +441,9 @@ float EstimateEntropy(const AcStrategy& acs, size_t x, size_t y,
+   float ret =
+       entropy +
+       masking *
+-          ((config.info_loss_multiplier * GetLane(SumOfLanes(info_loss))) +
++          ((config.info_loss_multiplier * GetLane(SumOfLanes(df, info_loss))) +
+            (config.info_loss_multiplier2 *
+-            sqrt(num_blocks * GetLane(SumOfLanes(info_loss2)))));
++            sqrt(num_blocks * GetLane(SumOfLanes(df, info_loss2)))));
+   return ret;
+ }
+ 
+diff --git a/lib/jxl/enc_adaptive_quantization.cc b/lib/jxl/enc_adaptive_quantization.cc
+index f53393f..24f3d53 100644
+--- a/lib/jxl/enc_adaptive_quantization.cc
++++ b/lib/jxl/enc_adaptive_quantization.cc
+@@ -189,7 +189,7 @@ V GammaModulation(const D d, const size_t x, const size_t y,
+       overall_ratio += avg_ratio;
+     }
+   }
+-  overall_ratio = SumOfLanes(overall_ratio);
++  overall_ratio = SumOfLanes(d, overall_ratio);
+   overall_ratio *= Set(d, 1.0f / 64);
+   // ideally -1.0, but likely optimal correction adds some entropy, so slightly
+   // less than that.
+@@ -246,12 +246,12 @@ V ColorModulation(const D d, const size_t x, const size_t y,
+   // blue we consider as if it was fully red or blue.
+   static const float ratio = 30.610615782142737f;  // out of 64 pixels.
+ 
+-  auto overall_red_coverage = SumOfLanes(red_coverage);
++  auto overall_red_coverage = SumOfLanes(d, red_coverage);
+   overall_red_coverage =
+       Min(overall_red_coverage, Set(d, ratio * kRedRampLength));
+   overall_red_coverage *= Set(d, red_strength / ratio);
+ 
+-  auto overall_blue_coverage = SumOfLanes(blue_coverage);
++  auto overall_blue_coverage = SumOfLanes(d, blue_coverage);
+   overall_blue_coverage =
+       Min(overall_blue_coverage, Set(d, ratio * kBlueRampLength));
+   overall_blue_coverage *= Set(d, blue_strength / ratio);
+@@ -295,7 +295,7 @@ V HfModulation(const D d, const size_t x, const size_t y, const ImageF& xyb,
+     }
+   }
+ 
+-  sum = SumOfLanes(sum);
++  sum = SumOfLanes(d, sum);
+   return MulAdd(sum, Set(d, -2.0052193233688884f / 112), out_val);
+ }
+ 
+diff --git a/lib/jxl/enc_ar_control_field.cc b/lib/jxl/enc_ar_control_field.cc
+index f43340e..f8025ac 100644
+--- a/lib/jxl/enc_ar_control_field.cc
++++ b/lib/jxl/enc_ar_control_field.cc
+@@ -157,7 +157,7 @@ void ProcessTile(const Image3F& opsin, PassesEncoderState* enc_state,
+           sum += LoadU(df4, rows_in[iy] + x * 4 + ix + 2);
+         }
+       }
+-      row_out[x] = GetLane(Sqrt(SumOfLanes(sum))) * (1.0f / 4.0f);
++      row_out[x] = GetLane(Sqrt(SumOfLanes(df4, sum))) * (1.0f / 4.0f);
+     }
+   }
+   // Indexing iy and ix is a bit tricky as we include a 2 pixel border
+@@ -193,7 +193,7 @@ void ProcessTile(const Image3F& opsin, PassesEncoderState* enc_state,
+             sum += Load(df4, rows_in[iy] + sx + ix);
+           }
+         }
+-        row_out[x] = GetLane(Sqrt(SumOfLanes(sum))) * (1.0f / 4.0f);
++        row_out[x] = GetLane(Sqrt(SumOfLanes(df4, sum))) * (1.0f / 4.0f);
+       } else {
+         float sum = 0;
+         for (size_t iy = sy; iy < ey; iy++) {
+diff --git a/lib/jxl/enc_butteraugli_pnorm.cc b/lib/jxl/enc_butteraugli_pnorm.cc
+index 7c3fb9c..90b0440 100644
+--- a/lib/jxl/enc_butteraugli_pnorm.cc
++++ b/lib/jxl/enc_butteraugli_pnorm.cc
+@@ -95,13 +95,13 @@ double ComputeDistanceP(const ImageF& distmap, const ButteraugliParams& params,
+     }
+     double v = 0;
+     v += pow(
+-        onePerPixels * (sum1[0] + GetLane(SumOfLanes(Load(d, sum_totals0)))),
++        onePerPixels * (sum1[0] + GetLane(SumOfLanes(d, Load(d, sum_totals0)))),
+         1.0 / (p * 1.0));
+     v += pow(
+-        onePerPixels * (sum1[1] + GetLane(SumOfLanes(Load(d, sum_totals1)))),
++        onePerPixels * (sum1[1] + GetLane(SumOfLanes(d, Load(d, sum_totals1)))),
+         1.0 / (p * 2.0));
+     v += pow(
+-        onePerPixels * (sum1[2] + GetLane(SumOfLanes(Load(d, sum_totals2)))),
++        onePerPixels * (sum1[2] + GetLane(SumOfLanes(d, Load(d, sum_totals2)))),
+         1.0 / (p * 4.0));
+     v /= 3.0;
+     return v;
+diff --git a/lib/jxl/enc_chroma_from_luma.cc b/lib/jxl/enc_chroma_from_luma.cc
+index e5c3f38..370595c 100644
+--- a/lib/jxl/enc_chroma_from_luma.cc
++++ b/lib/jxl/enc_chroma_from_luma.cc
+@@ -91,9 +91,9 @@ struct CFLFunction {
+       fdme_v += IfThenElse(av >= thres, zero, dme);
+     }
+ 
+-    *fpeps = first_derivative_peps + GetLane(SumOfLanes(fdpe_v));
+-    *fmeps = first_derivative_meps + GetLane(SumOfLanes(fdme_v));
+-    return first_derivative + GetLane(SumOfLanes(fd_v));
++    *fpeps = first_derivative_peps + GetLane(SumOfLanes(df, fdpe_v));
++    *fmeps = first_derivative_meps + GetLane(SumOfLanes(df, fdme_v));
++    return first_derivative + GetLane(SumOfLanes(df, fd_v));
+   }
+ 
+   const float* JXL_RESTRICT values_m;
+@@ -124,8 +124,8 @@ int32_t FindBestMultiplier(const float* values_m, const float* values_s,
+       cb = MulAdd(a, b, cb);
+     }
+     // + distance_mul * x^2 * num
+-    x = -GetLane(SumOfLanes(cb)) /
+-        (GetLane(SumOfLanes(ca)) + num * distance_mul * 0.5f);
++    x = -GetLane(SumOfLanes(df, cb)) /
++        (GetLane(SumOfLanes(df, ca)) + num * distance_mul * 0.5f);
+   } else {
+     constexpr float eps = 1;
+     constexpr float kClamp = 20.0f;
+diff --git a/lib/jxl/enc_cluster.cc b/lib/jxl/enc_cluster.cc
+index 1f12a29..8ae863c 100644
+--- a/lib/jxl/enc_cluster.cc
++++ b/lib/jxl/enc_cluster.cc
+@@ -49,7 +49,7 @@ void HistogramEntropy(const Histogram& a) {
+     const auto counts = LoadU(di, &a.data_[i]);
+     entropy_lanes += Entropy(ConvertTo(df, counts), inv_tot, total);
+   }
+-  a.entropy_ += GetLane(SumOfLanes(entropy_lanes));
++  a.entropy_ += GetLane(SumOfLanes(df, entropy_lanes));
+ }
+ 
+ float HistogramDistance(const Histogram& a, const Histogram& b) {
+@@ -71,7 +71,7 @@ float HistogramDistance(const Histogram& a, const Histogram& b) {
+     const auto counts = ConvertTo(df, a_counts + b_counts);
+     distance_lanes += Entropy(counts, inv_tot, total);
+   }
+-  const float total_distance = GetLane(SumOfLanes(distance_lanes));
++  const float total_distance = GetLane(SumOfLanes(df, distance_lanes));
+   return total_distance - a.entropy_ - b.entropy_;
+ }
+ 
+diff --git a/lib/jxl/enc_entropy_coder.cc b/lib/jxl/enc_entropy_coder.cc
+index 0946300..07fe5a0 100644
+--- a/lib/jxl/enc_entropy_coder.cc
++++ b/lib/jxl/enc_entropy_coder.cc
+@@ -86,7 +86,7 @@ int32_t NumNonZeroExceptLLF(const size_t cx, const size_t cy,
+ 
+   // We want area - sum_zero, add because neg_sum_zero is already negated.
+   const int32_t nzeros =
+-      int32_t(cx * cy * kDCTBlockSize) + GetLane(SumOfLanes(neg_sum_zero));
++      int32_t(cx * cy * kDCTBlockSize) + GetLane(SumOfLanes(di, neg_sum_zero));
+ 
+   const int32_t shifted_nzeros = static_cast<int32_t>(
+       (nzeros + covered_blocks - 1) >> log2_covered_blocks);
+@@ -135,7 +135,7 @@ int32_t NumNonZero8x8ExceptDC(const int32_t* JXL_RESTRICT block,
+ 
+   // We want 64 - sum_zero, add because neg_sum_zero is already negated.
+   const int32_t nzeros =
+-      int32_t(kDCTBlockSize) + GetLane(SumOfLanes(neg_sum_zero));
++      int32_t(kDCTBlockSize) + GetLane(SumOfLanes(di, neg_sum_zero));
+ 
+   *nzeros_pos = nzeros;
+ 
+diff --git a/lib/jxl/enc_fast_heuristics.cc b/lib/jxl/enc_fast_heuristics.cc
+index 16f7670..0551782 100644
+--- a/lib/jxl/enc_fast_heuristics.cc
++++ b/lib/jxl/enc_fast_heuristics.cc
+@@ -94,8 +94,8 @@ Status Heuristics(PassesEncoderState* enc_state,
+               cb = MulAdd(a, b, cb);
+             }
+           }
+-          float best =
+-              -GetLane(SumOfLanes(cb)) / (GetLane(SumOfLanes(ca)) + 1e-9f);
++          float best = -GetLane(SumOfLanes(df, cb)) /
++                       (GetLane(SumOfLanes(df, ca)) + 1e-9f);
+           int8_t& res = (c == 0 ? shared.cmap.ytox_map : shared.cmap.ytob_map)
+                             .Row(ty)[tx];
+           res = std::max(-128.0f, std::min(127.0f, roundf(best)));
+@@ -124,8 +124,8 @@ Status Heuristics(PassesEncoderState* enc_state,
+                 max = IfThenElse(max > nn, max, nn);
+               }
+             }
+-            row_out_avg[x] = GetLane(SumOfLanes(sum));
+-            row_out[x] = GetLane(MaxOfLanes(max));
++            row_out_avg[x] = GetLane(SumOfLanes(df4, sum));
++            row_out[x] = GetLane(MaxOfLanes(df4, max));
+           }
+         }
+       },
+diff --git a/lib/jxl/gauss_blur.cc b/lib/jxl/gauss_blur.cc
+index f9babe7..f24a74c 100644
+--- a/lib/jxl/gauss_blur.cc
++++ b/lib/jxl/gauss_blur.cc
+@@ -421,7 +421,7 @@ ImageF ConvolveXSampleAndTranspose(const ImageF& in,
+       for (int i = -r; i <= r; i += Lanes(df)) {
+         sum = MulAdd(LoadU(df, rowp + x + i), LoadU(df, kernelp + i), sum);
+       }
+-      out.Row(ox)[y] = GetLane(SumOfLanes(sum));
++      out.Row(ox)[y] = GetLane(SumOfLanes(df, sum));
+     }
+     for (; x < in.xsize(); x += res, ++ox) {
+       float sum = 0.0f;
+diff --git a/lib/jxl/modular/encoding/enc_ma.cc b/lib/jxl/modular/encoding/enc_ma.cc
+index 0e2eaac..d485129 100644
+--- a/lib/jxl/modular/encoding/enc_ma.cc
++++ b/lib/jxl/modular/encoding/enc_ma.cc
+@@ -84,7 +84,7 @@ float EstimateBits(const int32_t *counts, int32_t *rounded_counts,
+     bits_lanes -=
+         IfThenElse(counts_v == zero, zero, counts_v * BitCast(df, nbps));
+   }
+-  return GetLane(SumOfLanes(bits_lanes));
++  return GetLane(SumOfLanes(df, bits_lanes));
+ }
+ 
+ void MakeSplitNode(size_t pos, int property, int splitval, Predictor lpred,
+diff --git a/lib/jxl/rational_polynomial_test.cc b/lib/jxl/rational_polynomial_test.cc
+index 699afd0..f985eb0 100644
+--- a/lib/jxl/rational_polynomial_test.cc
++++ b/lib/jxl/rational_polynomial_test.cc
+@@ -51,7 +51,7 @@ struct EvalLog2 {
+     const HWY_FULL(int32_t) di;
+     const auto x_bits = BitCast(di, vx);
+     // Cannot handle negative numbers / NaN.
+-    JXL_DASSERT(AllTrue(Abs(x_bits) == x_bits));
++    JXL_DASSERT(AllTrue(di, Abs(x_bits) == x_bits));
+ 
+     // Range reduction to [-1/3, 1/3] - 3 integer, 2 float ops
+     const auto exp_bits = x_bits - Set(di, 0x3f2aaaab);  // = 2/3
+diff --git a/lib/jxl/splines.cc b/lib/jxl/splines.cc
+index 8653445..5dc2404 100644
+--- a/lib/jxl/splines.cc
++++ b/lib/jxl/splines.cc
+@@ -52,7 +52,7 @@ float ContinuousIDCT(const float dct[32], float t) {
+     auto local_res = LoadU(df, dct + i) * cos;
+     result = MulAdd(Set(df, square_root<2>::value), local_res, result);
+   }
+-  return GetLane(SumOfLanes(result));
++  return GetLane(SumOfLanes(df, result));
+ }
+ 
+ template <typename DF>
+diff --git a/lib/jxl/transpose-inl.h b/lib/jxl/transpose-inl.h
+index d12b129..4674420 100644
+--- a/lib/jxl/transpose-inl.h
++++ b/lib/jxl/transpose-inl.h
+@@ -74,50 +74,51 @@ JXL_INLINE_TRANSPOSE void GenericTransposeBlock(TransposeSimdTag<true>,
+   static_assert(COLS_or_0 % 8 == 0, "Invalid number of columns");
+   for (size_t n = 0; n < ROWS; n += 8) {
+     for (size_t m = 0; m < COLS; m += 8) {
+-      auto i0 = from.LoadPart(BlockDesc<8>(), n + 0, m + 0);
+-      auto i1 = from.LoadPart(BlockDesc<8>(), n + 1, m + 0);
+-      auto i2 = from.LoadPart(BlockDesc<8>(), n + 2, m + 0);
+-      auto i3 = from.LoadPart(BlockDesc<8>(), n + 3, m + 0);
+-      auto i4 = from.LoadPart(BlockDesc<8>(), n + 4, m + 0);
+-      auto i5 = from.LoadPart(BlockDesc<8>(), n + 5, m + 0);
+-      auto i6 = from.LoadPart(BlockDesc<8>(), n + 6, m + 0);
+-      auto i7 = from.LoadPart(BlockDesc<8>(), n + 7, m + 0);
++      const BlockDesc<8> d;
++      auto i0 = from.LoadPart(d, n + 0, m + 0);
++      auto i1 = from.LoadPart(d, n + 1, m + 0);
++      auto i2 = from.LoadPart(d, n + 2, m + 0);
++      auto i3 = from.LoadPart(d, n + 3, m + 0);
++      auto i4 = from.LoadPart(d, n + 4, m + 0);
++      auto i5 = from.LoadPart(d, n + 5, m + 0);
++      auto i6 = from.LoadPart(d, n + 6, m + 0);
++      auto i7 = from.LoadPart(d, n + 7, m + 0);
+       // Surprisingly, this straightforward implementation (24 cycles on port5)
+       // is faster than load128+insert and LoadDup128+ConcatUpperLower+blend.
+-      const auto q0 = InterleaveLower(i0, i2);
+-      const auto q1 = InterleaveLower(i1, i3);
+-      const auto q2 = InterleaveUpper(i0, i2);
+-      const auto q3 = InterleaveUpper(i1, i3);
+-      const auto q4 = InterleaveLower(i4, i6);
+-      const auto q5 = InterleaveLower(i5, i7);
+-      const auto q6 = InterleaveUpper(i4, i6);
+-      const auto q7 = InterleaveUpper(i5, i7);
+-
+-      const auto r0 = InterleaveLower(q0, q1);
+-      const auto r1 = InterleaveUpper(q0, q1);
+-      const auto r2 = InterleaveLower(q2, q3);
+-      const auto r3 = InterleaveUpper(q2, q3);
+-      const auto r4 = InterleaveLower(q4, q5);
+-      const auto r5 = InterleaveUpper(q4, q5);
+-      const auto r6 = InterleaveLower(q6, q7);
+-      const auto r7 = InterleaveUpper(q6, q7);
+-
+-      i0 = ConcatLowerLower(r4, r0);
+-      i1 = ConcatLowerLower(r5, r1);
+-      i2 = ConcatLowerLower(r6, r2);
+-      i3 = ConcatLowerLower(r7, r3);
+-      i4 = ConcatUpperUpper(r4, r0);
+-      i5 = ConcatUpperUpper(r5, r1);
+-      i6 = ConcatUpperUpper(r6, r2);
+-      i7 = ConcatUpperUpper(r7, r3);
+-      to.StorePart(BlockDesc<8>(), i0, m + 0, n + 0);
+-      to.StorePart(BlockDesc<8>(), i1, m + 1, n + 0);
+-      to.StorePart(BlockDesc<8>(), i2, m + 2, n + 0);
+-      to.StorePart(BlockDesc<8>(), i3, m + 3, n + 0);
+-      to.StorePart(BlockDesc<8>(), i4, m + 4, n + 0);
+-      to.StorePart(BlockDesc<8>(), i5, m + 5, n + 0);
+-      to.StorePart(BlockDesc<8>(), i6, m + 6, n + 0);
+-      to.StorePart(BlockDesc<8>(), i7, m + 7, n + 0);
++      const auto q0 = InterleaveLower(d, i0, i2);
++      const auto q1 = InterleaveLower(d, i1, i3);
++      const auto q2 = InterleaveUpper(d, i0, i2);
++      const auto q3 = InterleaveUpper(d, i1, i3);
++      const auto q4 = InterleaveLower(d, i4, i6);
++      const auto q5 = InterleaveLower(d, i5, i7);
++      const auto q6 = InterleaveUpper(d, i4, i6);
++      const auto q7 = InterleaveUpper(d, i5, i7);
++
++      const auto r0 = InterleaveLower(d, q0, q1);
++      const auto r1 = InterleaveUpper(d, q0, q1);
++      const auto r2 = InterleaveLower(d, q2, q3);
++      const auto r3 = InterleaveUpper(d, q2, q3);
++      const auto r4 = InterleaveLower(d, q4, q5);
++      const auto r5 = InterleaveUpper(d, q4, q5);
++      const auto r6 = InterleaveLower(d, q6, q7);
++      const auto r7 = InterleaveUpper(d, q6, q7);
++
++      i0 = ConcatLowerLower(d, r4, r0);
++      i1 = ConcatLowerLower(d, r5, r1);
++      i2 = ConcatLowerLower(d, r6, r2);
++      i3 = ConcatLowerLower(d, r7, r3);
++      i4 = ConcatUpperUpper(d, r4, r0);
++      i5 = ConcatUpperUpper(d, r5, r1);
++      i6 = ConcatUpperUpper(d, r6, r2);
++      i7 = ConcatUpperUpper(d, r7, r3);
++      to.StorePart(d, i0, m + 0, n + 0);
++      to.StorePart(d, i1, m + 1, n + 0);
++      to.StorePart(d, i2, m + 2, n + 0);
++      to.StorePart(d, i3, m + 3, n + 0);
++      to.StorePart(d, i4, m + 4, n + 0);
++      to.StorePart(d, i5, m + 5, n + 0);
++      to.StorePart(d, i6, m + 6, n + 0);
++      to.StorePart(d, i7, m + 7, n + 0);
+     }
+   }
+ }
+@@ -137,25 +138,26 @@ JXL_INLINE_TRANSPOSE void GenericTransposeBlock(TransposeSimdTag<true>,
+   static_assert(COLS_or_0 % 4 == 0, "Invalid number of columns");
+   for (size_t n = 0; n < ROWS; n += 4) {
+     for (size_t m = 0; m < COLS; m += 4) {
+-      const auto p0 = from.LoadPart(BlockDesc<4>(), n + 0, m + 0);
+-      const auto p1 = from.LoadPart(BlockDesc<4>(), n + 1, m + 0);
+-      const auto p2 = from.LoadPart(BlockDesc<4>(), n + 2, m + 0);
+-      const auto p3 = from.LoadPart(BlockDesc<4>(), n + 3, m + 0);
+-
+-      const auto q0 = InterleaveLower(p0, p2);
+-      const auto q1 = InterleaveLower(p1, p3);
+-      const auto q2 = InterleaveUpper(p0, p2);
+-      const auto q3 = InterleaveUpper(p1, p3);
+-
+-      const auto r0 = InterleaveLower(q0, q1);
+-      const auto r1 = InterleaveUpper(q0, q1);
+-      const auto r2 = InterleaveLower(q2, q3);
+-      const auto r3 = InterleaveUpper(q2, q3);
+-
+-      to.StorePart(BlockDesc<4>(), r0, m + 0, n + 0);
+-      to.StorePart(BlockDesc<4>(), r1, m + 1, n + 0);
+-      to.StorePart(BlockDesc<4>(), r2, m + 2, n + 0);
+-      to.StorePart(BlockDesc<4>(), r3, m + 3, n + 0);
++      const BlockDesc<4> d;
++      const auto p0 = from.LoadPart(d, n + 0, m + 0);
++      const auto p1 = from.LoadPart(d, n + 1, m + 0);
++      const auto p2 = from.LoadPart(d, n + 2, m + 0);
++      const auto p3 = from.LoadPart(d, n + 3, m + 0);
++
++      const auto q0 = InterleaveLower(d, p0, p2);
++      const auto q1 = InterleaveLower(d, p1, p3);
++      const auto q2 = InterleaveUpper(d, p0, p2);
++      const auto q3 = InterleaveUpper(d, p1, p3);
++
++      const auto r0 = InterleaveLower(d, q0, q1);
++      const auto r1 = InterleaveUpper(d, q0, q1);
++      const auto r2 = InterleaveLower(d, q2, q3);
++      const auto r3 = InterleaveUpper(d, q2, q3);
++
++      to.StorePart(d, r0, m + 0, n + 0);
++      to.StorePart(d, r1, m + 1, n + 0);
++      to.StorePart(d, r2, m + 2, n + 0);
++      to.StorePart(d, r3, m + 3, n + 0);
+     }
+   }
+ }
+diff --git a/lib/profiler/profiler.cc b/lib/profiler/profiler.cc
+index d21ee09..186ff06 100644
+--- a/lib/profiler/profiler.cc
++++ b/lib/profiler/profiler.cc
+@@ -139,7 +139,7 @@ class Results {
+   void AnalyzePackets(const Packet* HWY_RESTRICT packets,
+                       const size_t num_packets) {
+     // Ensures prior weakly-ordered streaming stores are globally visible.
+-    hwy::StoreFence();
++    hwy::FlushStream();
+ 
+     const uint64_t t0 = TicksBefore();
+ 
+@@ -372,12 +372,12 @@ void ThreadSpecific::ComputeOverhead() {
+       const size_t kReps = 10000;
+       // Analysis time should not be included => must fit within buffer.
+       HWY_ASSERT(kReps * 2 < max_packets_);
+-      hwy::StoreFence();
++      hwy::FlushStream();
+       const uint64_t t0 = TicksBefore();
+       for (size_t i = 0; i < kReps; ++i) {
+         PROFILER_ZONE("Dummy");
+       }
+-      hwy::StoreFence();
++      hwy::FlushStream();
+       const uint64_t t1 = TicksAfter();
+       HWY_ASSERT(num_packets_ + buffer_size_ == kReps * 2);
+       buffer_size_ = 0;
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..d4703c2c9a9a
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,72 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=0.6.1
+revision=1
+#_short_version=0.6
+#wrksrc=libjxl-${_short_version}
+build_style=cmake
+configure_args="-DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF
+ -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
+hostmakedepends="tar pkg-config asciidoc xdg-utils"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel
+ libopenexr-devel gdk-pixbuf-devel gimp-devel gtest-devel"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="BSD-3-Clause, custom:Patent grant"
+homepage="https://jpeg.org/jpegxl/"
+_lodepng_hash=48e5364ef48ec2408f44c727657ac1b6703185f8
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/v${version}.tar.gz
+ https://github.com/lvandeve/lodepng/archive/${_lodepng_hash}.tar.gz>lodepng-${_lodepng_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="ccbd5a729d730152303be399f033b905e608309d5802d77a61a95faa092592c5
+ c47c48c77a205f1af484b7b5a847290af65de3ea6f15817aa27c5ec7cc5208fd
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="lodepng-${_lodepng_hash}.tar.gz
+ skcms-${_skcms_hash}.tar.gz"
+
+if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+	makedepends+=" libatomic-devel"
+	LIBS="-latomic"
+fi
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf lodepng-${_lodepng_hash}.tar.gz --strip-components=1 -C ${wrksrc}/third_party/lodepng
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+post_install() {
+	vlicense LICENSE
+	vlicense PATENTS
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="libjxl>=${version}_${revision} highway brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From 1b44f268da2c2f28bf36edfef3aa9e56e4e8dd30 Mon Sep 17 00:00:00 2001
From: Joshua <joshua@kraemer.link>
Date: Wed, 30 Mar 2022 21:23:16 +0200
Subject: [PATCH 3/3] kimageformats: enable JPEG XL support

---
 srcpkgs/kimageformats/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kimageformats/template b/srcpkgs/kimageformats/template
index ebd6e81db298..6965e041027c 100644
--- a/srcpkgs/kimageformats/template
+++ b/srcpkgs/kimageformats/template
@@ -1,12 +1,12 @@
 # Template file for 'kimageformats'
 pkgname=kimageformats
 version=5.92.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKIMAGEFORMATS_HEIF=ON"
 hostmakedepends="kcoreaddons extra-cmake-modules qt5-qmake qt5-host-tools
  pkg-config"
-makedepends="karchive-devel libopenexr-devel libheif-devel"
+makedepends="karchive-devel libopenexr-devel libheif-devel libjxl-devel"
 short_desc="KDE Plugins to allow QImage to support extra file formats"
 maintainer="John <me@johnnynator.dev>"
 license="LGPL-2.0-or-later"

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR REVIEW] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (13 preceding siblings ...)
  2022-03-31  9:54 ` [PR PATCH] [Updated] " joshuakraemer
@ 2022-03-31 13:36 ` tibequadorian
  2022-04-01 10:01 ` [PR PATCH] [Updated] " joshuakraemer
                   ` (49 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: tibequadorian @ 2022-03-31 13:36 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 224 bytes --]

New review comment by tibequadorian on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#discussion_r839614195

Comment:
You may enable/disable tests based on $BUILD_CROSS or $XBPS_CHECK_PKGS.

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR PATCH] [Updated] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (14 preceding siblings ...)
  2022-03-31 13:36 ` [PR REVIEW] " tibequadorian
@ 2022-04-01 10:01 ` joshuakraemer
  2022-04-12 15:33 ` joshuakraemer
                   ` (48 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-04-01 10:01 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

There is an updated pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 27117 bytes --]

From 5b3b31cfcd9b713fc333119d268dbe8832591990 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-0.16.0

---
 srcpkgs/highway/template | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..a5c1bf284c68
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,17 @@
+# Template file for 'highway'
+pkgname=highway
+version=0.16.0
+revision=1
+build_style=cmake
+configure_args="-DHWY_SYSTEM_GTEST=ON"
+checkdepends="gtest-devel"
+short_desc="C++ library providing portable SIMD/vector intrinsics"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=746c9578446be6c5286e8846c5f0d4118c0c1f04219c401abadcb8a5f2051893
+
+if [ "$CROSS_BUILD" ]; then
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi

From 61e02f367acb97761abf753a980423116a944763 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.6.1

---
 common/shlibs                                 |   2 +
 srcpkgs/libjxl-devel                          |   1 +
 srcpkgs/libjxl-plugins                        |   1 +
 srcpkgs/libjxl-tools                          |   1 +
 .../deprecated_highway_functions.patch        | 459 ++++++++++++++++++
 srcpkgs/libjxl/template                       |  77 +++
 6 files changed, 541 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/patches/deprecated_highway_functions.patch
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index ccc55a1b3772..1446c848ff9f 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4145,3 +4145,5 @@ librz_lang.so.0.3.4 rizin-0.3.4_1
 librz_search.so.0.3.4 rizin-0.3.4_1
 librz_bin.so.0.3.4 rizin-0.3.4_1
 libaravis-0.8.so.0 libaravis-0.8.21_1
+libjxl.so.0.6 libjxl-0.6.1_1
+libjxl_threads.so.0.6 libjxl-0.6.1_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/patches/deprecated_highway_functions.patch b/srcpkgs/libjxl/patches/deprecated_highway_functions.patch
new file mode 100644
index 000000000000..a775eb5a7c56
--- /dev/null
+++ b/srcpkgs/libjxl/patches/deprecated_highway_functions.patch
@@ -0,0 +1,459 @@
+diff --git a/lib/jxl/dec_reconstruct.cc b/lib/jxl/dec_reconstruct.cc
+index a1baef4..08279f8 100644
+--- a/lib/jxl/dec_reconstruct.cc
++++ b/lib/jxl/dec_reconstruct.cc
+@@ -357,8 +357,8 @@ void DoYCbCrUpsampling(size_t hs, size_t vs, ImageF* plane_in, const Rect& rect,
+         Store(left, d, out + x);
+         Store(right, d, out + x + 1);
+ #else
+-        Store(InterleaveLower(left, right), d, out + x);
+-        Store(InterleaveUpper(left, right), d, out + x + Lanes(d));
++        Store(InterleaveLower(d, left, right), d, out + x);
++        Store(InterleaveUpper(d, left, right), d, out + x + Lanes(d));
+ #endif
+       }
+     }
+diff --git a/lib/jxl/dec_upsample.cc b/lib/jxl/dec_upsample.cc
+index 7277e4f..3cb3f36 100644
+--- a/lib/jxl/dec_upsample.cc
++++ b/lib/jxl/dec_upsample.cc
+@@ -176,8 +176,8 @@ void Upsample(const ImageF& src, const Rect& src_rect, ImageF* dst,
+         min = Min(LoadU(df, raw_min_row + sx + fx), min);
+         max = Max(LoadU(df, raw_max_row + sx + fx), max);
+       }
+-      min = MinOfLanes(min);
+-      max = MaxOfLanes(max);
++      min = MinOfLanes(df, min);
++      max = MaxOfLanes(df, max);
+       for (size_t lx = 0; lx < N; lx += V) {
+         StoreU(min, df, min_row + N * sx + lx);
+         StoreU(max, df, max_row + N * sx + lx);
+diff --git a/lib/jxl/enc_ac_strategy.cc b/lib/jxl/enc_ac_strategy.cc
+index bc50465..c0ed68f 100644
+--- a/lib/jxl/enc_ac_strategy.cc
++++ b/lib/jxl/enc_ac_strategy.cc
+@@ -429,8 +429,8 @@ float EstimateEntropy(const AcStrategy& acs, size_t x, size_t y,
+     }
+     entropy_v += nzeros_v * cost1;
+ 
+-    entropy += GetLane(SumOfLanes(entropy_v));
+-    size_t num_nzeros = GetLane(SumOfLanes(nzeros_v));
++    entropy += GetLane(SumOfLanes(df, entropy_v));
++    size_t num_nzeros = GetLane(SumOfLanes(df, nzeros_v));
+     // Add #bit of num_nonzeros, as an estimate of the cost for encoding the
+     // number of non-zeros of the block.
+     size_t nbits = CeilLog2Nonzero(num_nzeros + 1) + 1;
+@@ -441,9 +441,9 @@ float EstimateEntropy(const AcStrategy& acs, size_t x, size_t y,
+   float ret =
+       entropy +
+       masking *
+-          ((config.info_loss_multiplier * GetLane(SumOfLanes(info_loss))) +
++          ((config.info_loss_multiplier * GetLane(SumOfLanes(df, info_loss))) +
+            (config.info_loss_multiplier2 *
+-            sqrt(num_blocks * GetLane(SumOfLanes(info_loss2)))));
++            sqrt(num_blocks * GetLane(SumOfLanes(df, info_loss2)))));
+   return ret;
+ }
+ 
+diff --git a/lib/jxl/enc_adaptive_quantization.cc b/lib/jxl/enc_adaptive_quantization.cc
+index f53393f..24f3d53 100644
+--- a/lib/jxl/enc_adaptive_quantization.cc
++++ b/lib/jxl/enc_adaptive_quantization.cc
+@@ -189,7 +189,7 @@ V GammaModulation(const D d, const size_t x, const size_t y,
+       overall_ratio += avg_ratio;
+     }
+   }
+-  overall_ratio = SumOfLanes(overall_ratio);
++  overall_ratio = SumOfLanes(d, overall_ratio);
+   overall_ratio *= Set(d, 1.0f / 64);
+   // ideally -1.0, but likely optimal correction adds some entropy, so slightly
+   // less than that.
+@@ -246,12 +246,12 @@ V ColorModulation(const D d, const size_t x, const size_t y,
+   // blue we consider as if it was fully red or blue.
+   static const float ratio = 30.610615782142737f;  // out of 64 pixels.
+ 
+-  auto overall_red_coverage = SumOfLanes(red_coverage);
++  auto overall_red_coverage = SumOfLanes(d, red_coverage);
+   overall_red_coverage =
+       Min(overall_red_coverage, Set(d, ratio * kRedRampLength));
+   overall_red_coverage *= Set(d, red_strength / ratio);
+ 
+-  auto overall_blue_coverage = SumOfLanes(blue_coverage);
++  auto overall_blue_coverage = SumOfLanes(d, blue_coverage);
+   overall_blue_coverage =
+       Min(overall_blue_coverage, Set(d, ratio * kBlueRampLength));
+   overall_blue_coverage *= Set(d, blue_strength / ratio);
+@@ -295,7 +295,7 @@ V HfModulation(const D d, const size_t x, const size_t y, const ImageF& xyb,
+     }
+   }
+ 
+-  sum = SumOfLanes(sum);
++  sum = SumOfLanes(d, sum);
+   return MulAdd(sum, Set(d, -2.0052193233688884f / 112), out_val);
+ }
+ 
+diff --git a/lib/jxl/enc_ar_control_field.cc b/lib/jxl/enc_ar_control_field.cc
+index f43340e..f8025ac 100644
+--- a/lib/jxl/enc_ar_control_field.cc
++++ b/lib/jxl/enc_ar_control_field.cc
+@@ -157,7 +157,7 @@ void ProcessTile(const Image3F& opsin, PassesEncoderState* enc_state,
+           sum += LoadU(df4, rows_in[iy] + x * 4 + ix + 2);
+         }
+       }
+-      row_out[x] = GetLane(Sqrt(SumOfLanes(sum))) * (1.0f / 4.0f);
++      row_out[x] = GetLane(Sqrt(SumOfLanes(df4, sum))) * (1.0f / 4.0f);
+     }
+   }
+   // Indexing iy and ix is a bit tricky as we include a 2 pixel border
+@@ -193,7 +193,7 @@ void ProcessTile(const Image3F& opsin, PassesEncoderState* enc_state,
+             sum += Load(df4, rows_in[iy] + sx + ix);
+           }
+         }
+-        row_out[x] = GetLane(Sqrt(SumOfLanes(sum))) * (1.0f / 4.0f);
++        row_out[x] = GetLane(Sqrt(SumOfLanes(df4, sum))) * (1.0f / 4.0f);
+       } else {
+         float sum = 0;
+         for (size_t iy = sy; iy < ey; iy++) {
+diff --git a/lib/jxl/enc_butteraugli_pnorm.cc b/lib/jxl/enc_butteraugli_pnorm.cc
+index 7c3fb9c..90b0440 100644
+--- a/lib/jxl/enc_butteraugli_pnorm.cc
++++ b/lib/jxl/enc_butteraugli_pnorm.cc
+@@ -95,13 +95,13 @@ double ComputeDistanceP(const ImageF& distmap, const ButteraugliParams& params,
+     }
+     double v = 0;
+     v += pow(
+-        onePerPixels * (sum1[0] + GetLane(SumOfLanes(Load(d, sum_totals0)))),
++        onePerPixels * (sum1[0] + GetLane(SumOfLanes(d, Load(d, sum_totals0)))),
+         1.0 / (p * 1.0));
+     v += pow(
+-        onePerPixels * (sum1[1] + GetLane(SumOfLanes(Load(d, sum_totals1)))),
++        onePerPixels * (sum1[1] + GetLane(SumOfLanes(d, Load(d, sum_totals1)))),
+         1.0 / (p * 2.0));
+     v += pow(
+-        onePerPixels * (sum1[2] + GetLane(SumOfLanes(Load(d, sum_totals2)))),
++        onePerPixels * (sum1[2] + GetLane(SumOfLanes(d, Load(d, sum_totals2)))),
+         1.0 / (p * 4.0));
+     v /= 3.0;
+     return v;
+diff --git a/lib/jxl/enc_chroma_from_luma.cc b/lib/jxl/enc_chroma_from_luma.cc
+index e5c3f38..370595c 100644
+--- a/lib/jxl/enc_chroma_from_luma.cc
++++ b/lib/jxl/enc_chroma_from_luma.cc
+@@ -91,9 +91,9 @@ struct CFLFunction {
+       fdme_v += IfThenElse(av >= thres, zero, dme);
+     }
+ 
+-    *fpeps = first_derivative_peps + GetLane(SumOfLanes(fdpe_v));
+-    *fmeps = first_derivative_meps + GetLane(SumOfLanes(fdme_v));
+-    return first_derivative + GetLane(SumOfLanes(fd_v));
++    *fpeps = first_derivative_peps + GetLane(SumOfLanes(df, fdpe_v));
++    *fmeps = first_derivative_meps + GetLane(SumOfLanes(df, fdme_v));
++    return first_derivative + GetLane(SumOfLanes(df, fd_v));
+   }
+ 
+   const float* JXL_RESTRICT values_m;
+@@ -124,8 +124,8 @@ int32_t FindBestMultiplier(const float* values_m, const float* values_s,
+       cb = MulAdd(a, b, cb);
+     }
+     // + distance_mul * x^2 * num
+-    x = -GetLane(SumOfLanes(cb)) /
+-        (GetLane(SumOfLanes(ca)) + num * distance_mul * 0.5f);
++    x = -GetLane(SumOfLanes(df, cb)) /
++        (GetLane(SumOfLanes(df, ca)) + num * distance_mul * 0.5f);
+   } else {
+     constexpr float eps = 1;
+     constexpr float kClamp = 20.0f;
+diff --git a/lib/jxl/enc_cluster.cc b/lib/jxl/enc_cluster.cc
+index 1f12a29..8ae863c 100644
+--- a/lib/jxl/enc_cluster.cc
++++ b/lib/jxl/enc_cluster.cc
+@@ -49,7 +49,7 @@ void HistogramEntropy(const Histogram& a) {
+     const auto counts = LoadU(di, &a.data_[i]);
+     entropy_lanes += Entropy(ConvertTo(df, counts), inv_tot, total);
+   }
+-  a.entropy_ += GetLane(SumOfLanes(entropy_lanes));
++  a.entropy_ += GetLane(SumOfLanes(df, entropy_lanes));
+ }
+ 
+ float HistogramDistance(const Histogram& a, const Histogram& b) {
+@@ -71,7 +71,7 @@ float HistogramDistance(const Histogram& a, const Histogram& b) {
+     const auto counts = ConvertTo(df, a_counts + b_counts);
+     distance_lanes += Entropy(counts, inv_tot, total);
+   }
+-  const float total_distance = GetLane(SumOfLanes(distance_lanes));
++  const float total_distance = GetLane(SumOfLanes(df, distance_lanes));
+   return total_distance - a.entropy_ - b.entropy_;
+ }
+ 
+diff --git a/lib/jxl/enc_entropy_coder.cc b/lib/jxl/enc_entropy_coder.cc
+index 0946300..07fe5a0 100644
+--- a/lib/jxl/enc_entropy_coder.cc
++++ b/lib/jxl/enc_entropy_coder.cc
+@@ -86,7 +86,7 @@ int32_t NumNonZeroExceptLLF(const size_t cx, const size_t cy,
+ 
+   // We want area - sum_zero, add because neg_sum_zero is already negated.
+   const int32_t nzeros =
+-      int32_t(cx * cy * kDCTBlockSize) + GetLane(SumOfLanes(neg_sum_zero));
++      int32_t(cx * cy * kDCTBlockSize) + GetLane(SumOfLanes(di, neg_sum_zero));
+ 
+   const int32_t shifted_nzeros = static_cast<int32_t>(
+       (nzeros + covered_blocks - 1) >> log2_covered_blocks);
+@@ -135,7 +135,7 @@ int32_t NumNonZero8x8ExceptDC(const int32_t* JXL_RESTRICT block,
+ 
+   // We want 64 - sum_zero, add because neg_sum_zero is already negated.
+   const int32_t nzeros =
+-      int32_t(kDCTBlockSize) + GetLane(SumOfLanes(neg_sum_zero));
++      int32_t(kDCTBlockSize) + GetLane(SumOfLanes(di, neg_sum_zero));
+ 
+   *nzeros_pos = nzeros;
+ 
+diff --git a/lib/jxl/enc_fast_heuristics.cc b/lib/jxl/enc_fast_heuristics.cc
+index 16f7670..0551782 100644
+--- a/lib/jxl/enc_fast_heuristics.cc
++++ b/lib/jxl/enc_fast_heuristics.cc
+@@ -94,8 +94,8 @@ Status Heuristics(PassesEncoderState* enc_state,
+               cb = MulAdd(a, b, cb);
+             }
+           }
+-          float best =
+-              -GetLane(SumOfLanes(cb)) / (GetLane(SumOfLanes(ca)) + 1e-9f);
++          float best = -GetLane(SumOfLanes(df, cb)) /
++                       (GetLane(SumOfLanes(df, ca)) + 1e-9f);
+           int8_t& res = (c == 0 ? shared.cmap.ytox_map : shared.cmap.ytob_map)
+                             .Row(ty)[tx];
+           res = std::max(-128.0f, std::min(127.0f, roundf(best)));
+@@ -124,8 +124,8 @@ Status Heuristics(PassesEncoderState* enc_state,
+                 max = IfThenElse(max > nn, max, nn);
+               }
+             }
+-            row_out_avg[x] = GetLane(SumOfLanes(sum));
+-            row_out[x] = GetLane(MaxOfLanes(max));
++            row_out_avg[x] = GetLane(SumOfLanes(df4, sum));
++            row_out[x] = GetLane(MaxOfLanes(df4, max));
+           }
+         }
+       },
+diff --git a/lib/jxl/gauss_blur.cc b/lib/jxl/gauss_blur.cc
+index f9babe7..f24a74c 100644
+--- a/lib/jxl/gauss_blur.cc
++++ b/lib/jxl/gauss_blur.cc
+@@ -421,7 +421,7 @@ ImageF ConvolveXSampleAndTranspose(const ImageF& in,
+       for (int i = -r; i <= r; i += Lanes(df)) {
+         sum = MulAdd(LoadU(df, rowp + x + i), LoadU(df, kernelp + i), sum);
+       }
+-      out.Row(ox)[y] = GetLane(SumOfLanes(sum));
++      out.Row(ox)[y] = GetLane(SumOfLanes(df, sum));
+     }
+     for (; x < in.xsize(); x += res, ++ox) {
+       float sum = 0.0f;
+diff --git a/lib/jxl/modular/encoding/enc_ma.cc b/lib/jxl/modular/encoding/enc_ma.cc
+index 0e2eaac..d485129 100644
+--- a/lib/jxl/modular/encoding/enc_ma.cc
++++ b/lib/jxl/modular/encoding/enc_ma.cc
+@@ -84,7 +84,7 @@ float EstimateBits(const int32_t *counts, int32_t *rounded_counts,
+     bits_lanes -=
+         IfThenElse(counts_v == zero, zero, counts_v * BitCast(df, nbps));
+   }
+-  return GetLane(SumOfLanes(bits_lanes));
++  return GetLane(SumOfLanes(df, bits_lanes));
+ }
+ 
+ void MakeSplitNode(size_t pos, int property, int splitval, Predictor lpred,
+diff --git a/lib/jxl/rational_polynomial_test.cc b/lib/jxl/rational_polynomial_test.cc
+index 699afd0..f985eb0 100644
+--- a/lib/jxl/rational_polynomial_test.cc
++++ b/lib/jxl/rational_polynomial_test.cc
+@@ -51,7 +51,7 @@ struct EvalLog2 {
+     const HWY_FULL(int32_t) di;
+     const auto x_bits = BitCast(di, vx);
+     // Cannot handle negative numbers / NaN.
+-    JXL_DASSERT(AllTrue(Abs(x_bits) == x_bits));
++    JXL_DASSERT(AllTrue(di, Abs(x_bits) == x_bits));
+ 
+     // Range reduction to [-1/3, 1/3] - 3 integer, 2 float ops
+     const auto exp_bits = x_bits - Set(di, 0x3f2aaaab);  // = 2/3
+diff --git a/lib/jxl/splines.cc b/lib/jxl/splines.cc
+index 8653445..5dc2404 100644
+--- a/lib/jxl/splines.cc
++++ b/lib/jxl/splines.cc
+@@ -52,7 +52,7 @@ float ContinuousIDCT(const float dct[32], float t) {
+     auto local_res = LoadU(df, dct + i) * cos;
+     result = MulAdd(Set(df, square_root<2>::value), local_res, result);
+   }
+-  return GetLane(SumOfLanes(result));
++  return GetLane(SumOfLanes(df, result));
+ }
+ 
+ template <typename DF>
+diff --git a/lib/jxl/transpose-inl.h b/lib/jxl/transpose-inl.h
+index d12b129..4674420 100644
+--- a/lib/jxl/transpose-inl.h
++++ b/lib/jxl/transpose-inl.h
+@@ -74,50 +74,51 @@ JXL_INLINE_TRANSPOSE void GenericTransposeBlock(TransposeSimdTag<true>,
+   static_assert(COLS_or_0 % 8 == 0, "Invalid number of columns");
+   for (size_t n = 0; n < ROWS; n += 8) {
+     for (size_t m = 0; m < COLS; m += 8) {
+-      auto i0 = from.LoadPart(BlockDesc<8>(), n + 0, m + 0);
+-      auto i1 = from.LoadPart(BlockDesc<8>(), n + 1, m + 0);
+-      auto i2 = from.LoadPart(BlockDesc<8>(), n + 2, m + 0);
+-      auto i3 = from.LoadPart(BlockDesc<8>(), n + 3, m + 0);
+-      auto i4 = from.LoadPart(BlockDesc<8>(), n + 4, m + 0);
+-      auto i5 = from.LoadPart(BlockDesc<8>(), n + 5, m + 0);
+-      auto i6 = from.LoadPart(BlockDesc<8>(), n + 6, m + 0);
+-      auto i7 = from.LoadPart(BlockDesc<8>(), n + 7, m + 0);
++      const BlockDesc<8> d;
++      auto i0 = from.LoadPart(d, n + 0, m + 0);
++      auto i1 = from.LoadPart(d, n + 1, m + 0);
++      auto i2 = from.LoadPart(d, n + 2, m + 0);
++      auto i3 = from.LoadPart(d, n + 3, m + 0);
++      auto i4 = from.LoadPart(d, n + 4, m + 0);
++      auto i5 = from.LoadPart(d, n + 5, m + 0);
++      auto i6 = from.LoadPart(d, n + 6, m + 0);
++      auto i7 = from.LoadPart(d, n + 7, m + 0);
+       // Surprisingly, this straightforward implementation (24 cycles on port5)
+       // is faster than load128+insert and LoadDup128+ConcatUpperLower+blend.
+-      const auto q0 = InterleaveLower(i0, i2);
+-      const auto q1 = InterleaveLower(i1, i3);
+-      const auto q2 = InterleaveUpper(i0, i2);
+-      const auto q3 = InterleaveUpper(i1, i3);
+-      const auto q4 = InterleaveLower(i4, i6);
+-      const auto q5 = InterleaveLower(i5, i7);
+-      const auto q6 = InterleaveUpper(i4, i6);
+-      const auto q7 = InterleaveUpper(i5, i7);
+-
+-      const auto r0 = InterleaveLower(q0, q1);
+-      const auto r1 = InterleaveUpper(q0, q1);
+-      const auto r2 = InterleaveLower(q2, q3);
+-      const auto r3 = InterleaveUpper(q2, q3);
+-      const auto r4 = InterleaveLower(q4, q5);
+-      const auto r5 = InterleaveUpper(q4, q5);
+-      const auto r6 = InterleaveLower(q6, q7);
+-      const auto r7 = InterleaveUpper(q6, q7);
+-
+-      i0 = ConcatLowerLower(r4, r0);
+-      i1 = ConcatLowerLower(r5, r1);
+-      i2 = ConcatLowerLower(r6, r2);
+-      i3 = ConcatLowerLower(r7, r3);
+-      i4 = ConcatUpperUpper(r4, r0);
+-      i5 = ConcatUpperUpper(r5, r1);
+-      i6 = ConcatUpperUpper(r6, r2);
+-      i7 = ConcatUpperUpper(r7, r3);
+-      to.StorePart(BlockDesc<8>(), i0, m + 0, n + 0);
+-      to.StorePart(BlockDesc<8>(), i1, m + 1, n + 0);
+-      to.StorePart(BlockDesc<8>(), i2, m + 2, n + 0);
+-      to.StorePart(BlockDesc<8>(), i3, m + 3, n + 0);
+-      to.StorePart(BlockDesc<8>(), i4, m + 4, n + 0);
+-      to.StorePart(BlockDesc<8>(), i5, m + 5, n + 0);
+-      to.StorePart(BlockDesc<8>(), i6, m + 6, n + 0);
+-      to.StorePart(BlockDesc<8>(), i7, m + 7, n + 0);
++      const auto q0 = InterleaveLower(d, i0, i2);
++      const auto q1 = InterleaveLower(d, i1, i3);
++      const auto q2 = InterleaveUpper(d, i0, i2);
++      const auto q3 = InterleaveUpper(d, i1, i3);
++      const auto q4 = InterleaveLower(d, i4, i6);
++      const auto q5 = InterleaveLower(d, i5, i7);
++      const auto q6 = InterleaveUpper(d, i4, i6);
++      const auto q7 = InterleaveUpper(d, i5, i7);
++
++      const auto r0 = InterleaveLower(d, q0, q1);
++      const auto r1 = InterleaveUpper(d, q0, q1);
++      const auto r2 = InterleaveLower(d, q2, q3);
++      const auto r3 = InterleaveUpper(d, q2, q3);
++      const auto r4 = InterleaveLower(d, q4, q5);
++      const auto r5 = InterleaveUpper(d, q4, q5);
++      const auto r6 = InterleaveLower(d, q6, q7);
++      const auto r7 = InterleaveUpper(d, q6, q7);
++
++      i0 = ConcatLowerLower(d, r4, r0);
++      i1 = ConcatLowerLower(d, r5, r1);
++      i2 = ConcatLowerLower(d, r6, r2);
++      i3 = ConcatLowerLower(d, r7, r3);
++      i4 = ConcatUpperUpper(d, r4, r0);
++      i5 = ConcatUpperUpper(d, r5, r1);
++      i6 = ConcatUpperUpper(d, r6, r2);
++      i7 = ConcatUpperUpper(d, r7, r3);
++      to.StorePart(d, i0, m + 0, n + 0);
++      to.StorePart(d, i1, m + 1, n + 0);
++      to.StorePart(d, i2, m + 2, n + 0);
++      to.StorePart(d, i3, m + 3, n + 0);
++      to.StorePart(d, i4, m + 4, n + 0);
++      to.StorePart(d, i5, m + 5, n + 0);
++      to.StorePart(d, i6, m + 6, n + 0);
++      to.StorePart(d, i7, m + 7, n + 0);
+     }
+   }
+ }
+@@ -137,25 +138,26 @@ JXL_INLINE_TRANSPOSE void GenericTransposeBlock(TransposeSimdTag<true>,
+   static_assert(COLS_or_0 % 4 == 0, "Invalid number of columns");
+   for (size_t n = 0; n < ROWS; n += 4) {
+     for (size_t m = 0; m < COLS; m += 4) {
+-      const auto p0 = from.LoadPart(BlockDesc<4>(), n + 0, m + 0);
+-      const auto p1 = from.LoadPart(BlockDesc<4>(), n + 1, m + 0);
+-      const auto p2 = from.LoadPart(BlockDesc<4>(), n + 2, m + 0);
+-      const auto p3 = from.LoadPart(BlockDesc<4>(), n + 3, m + 0);
+-
+-      const auto q0 = InterleaveLower(p0, p2);
+-      const auto q1 = InterleaveLower(p1, p3);
+-      const auto q2 = InterleaveUpper(p0, p2);
+-      const auto q3 = InterleaveUpper(p1, p3);
+-
+-      const auto r0 = InterleaveLower(q0, q1);
+-      const auto r1 = InterleaveUpper(q0, q1);
+-      const auto r2 = InterleaveLower(q2, q3);
+-      const auto r3 = InterleaveUpper(q2, q3);
+-
+-      to.StorePart(BlockDesc<4>(), r0, m + 0, n + 0);
+-      to.StorePart(BlockDesc<4>(), r1, m + 1, n + 0);
+-      to.StorePart(BlockDesc<4>(), r2, m + 2, n + 0);
+-      to.StorePart(BlockDesc<4>(), r3, m + 3, n + 0);
++      const BlockDesc<4> d;
++      const auto p0 = from.LoadPart(d, n + 0, m + 0);
++      const auto p1 = from.LoadPart(d, n + 1, m + 0);
++      const auto p2 = from.LoadPart(d, n + 2, m + 0);
++      const auto p3 = from.LoadPart(d, n + 3, m + 0);
++
++      const auto q0 = InterleaveLower(d, p0, p2);
++      const auto q1 = InterleaveLower(d, p1, p3);
++      const auto q2 = InterleaveUpper(d, p0, p2);
++      const auto q3 = InterleaveUpper(d, p1, p3);
++
++      const auto r0 = InterleaveLower(d, q0, q1);
++      const auto r1 = InterleaveUpper(d, q0, q1);
++      const auto r2 = InterleaveLower(d, q2, q3);
++      const auto r3 = InterleaveUpper(d, q2, q3);
++
++      to.StorePart(d, r0, m + 0, n + 0);
++      to.StorePart(d, r1, m + 1, n + 0);
++      to.StorePart(d, r2, m + 2, n + 0);
++      to.StorePart(d, r3, m + 3, n + 0);
+     }
+   }
+ }
+diff --git a/lib/profiler/profiler.cc b/lib/profiler/profiler.cc
+index d21ee09..186ff06 100644
+--- a/lib/profiler/profiler.cc
++++ b/lib/profiler/profiler.cc
+@@ -139,7 +139,7 @@ class Results {
+   void AnalyzePackets(const Packet* HWY_RESTRICT packets,
+                       const size_t num_packets) {
+     // Ensures prior weakly-ordered streaming stores are globally visible.
+-    hwy::StoreFence();
++    hwy::FlushStream();
+ 
+     const uint64_t t0 = TicksBefore();
+ 
+@@ -372,12 +372,12 @@ void ThreadSpecific::ComputeOverhead() {
+       const size_t kReps = 10000;
+       // Analysis time should not be included => must fit within buffer.
+       HWY_ASSERT(kReps * 2 < max_packets_);
+-      hwy::StoreFence();
++      hwy::FlushStream();
+       const uint64_t t0 = TicksBefore();
+       for (size_t i = 0; i < kReps; ++i) {
+         PROFILER_ZONE("Dummy");
+       }
+-      hwy::StoreFence();
++      hwy::FlushStream();
+       const uint64_t t1 = TicksAfter();
+       HWY_ASSERT(num_packets_ + buffer_size_ == kReps * 2);
+       buffer_size_ = 0;
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..18ba5824449d
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,77 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=0.6.1
+revision=1
+#_short_version=0.6
+#wrksrc=libjxl-${_short_version}
+build_style=cmake
+configure_args="-DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF
+ -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
+hostmakedepends="tar pkg-config asciidoc"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel
+ libopenexr-devel gdk-pixbuf-devel gimp-devel"
+checkdepends="gtest-devel xdg-utils"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="BSD-3-Clause, custom:Patent grant"
+homepage="https://jpeg.org/jpegxl/"
+_lodepng_hash=48e5364ef48ec2408f44c727657ac1b6703185f8
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/v${version}.tar.gz
+ https://github.com/lvandeve/lodepng/archive/${_lodepng_hash}.tar.gz>lodepng-${_lodepng_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="ccbd5a729d730152303be399f033b905e608309d5802d77a61a95faa092592c5
+ c47c48c77a205f1af484b7b5a847290af65de3ea6f15817aa27c5ec7cc5208fd
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="lodepng-${_lodepng_hash}.tar.gz
+ skcms-${_skcms_hash}.tar.gz"
+
+if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+	makedepends+=" libatomic-devel"
+	LIBS="-latomic"
+fi
+
+if [ "$CROSS_BUILD" ]; then
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf lodepng-${_lodepng_hash}.tar.gz --strip-components=1 -C ${wrksrc}/third_party/lodepng
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+post_install() {
+	vlicense LICENSE
+	vlicense PATENTS
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="libjxl>=${version}_${revision} highway brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From 3278f787c546e6a9b0db287f89c1c8e0866bfa25 Mon Sep 17 00:00:00 2001
From: Joshua <joshua@kraemer.link>
Date: Wed, 30 Mar 2022 21:23:16 +0200
Subject: [PATCH 3/3] kimageformats: enable JPEG XL support

---
 srcpkgs/kimageformats/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kimageformats/template b/srcpkgs/kimageformats/template
index ebd6e81db298..6965e041027c 100644
--- a/srcpkgs/kimageformats/template
+++ b/srcpkgs/kimageformats/template
@@ -1,12 +1,12 @@
 # Template file for 'kimageformats'
 pkgname=kimageformats
 version=5.92.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKIMAGEFORMATS_HEIF=ON"
 hostmakedepends="kcoreaddons extra-cmake-modules qt5-qmake qt5-host-tools
  pkg-config"
-makedepends="karchive-devel libopenexr-devel libheif-devel"
+makedepends="karchive-devel libopenexr-devel libheif-devel libjxl-devel"
 short_desc="KDE Plugins to allow QImage to support extra file formats"
 maintainer="John <me@johnnynator.dev>"
 license="LGPL-2.0-or-later"

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR PATCH] [Updated] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (15 preceding siblings ...)
  2022-04-01 10:01 ` [PR PATCH] [Updated] " joshuakraemer
@ 2022-04-12 15:33 ` joshuakraemer
  2022-04-12 15:56 ` joshuakraemer
                   ` (47 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-04-12 15:33 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

There is an updated pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 27255 bytes --]

From 1dc1a54dd7191d2c31c97db98115c5ae45d29bf5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-0.16.0

---
 srcpkgs/highway/template | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..a5c1bf284c68
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,17 @@
+# Template file for 'highway'
+pkgname=highway
+version=0.16.0
+revision=1
+build_style=cmake
+configure_args="-DHWY_SYSTEM_GTEST=ON"
+checkdepends="gtest-devel"
+short_desc="C++ library providing portable SIMD/vector intrinsics"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=746c9578446be6c5286e8846c5f0d4118c0c1f04219c401abadcb8a5f2051893
+
+if [ "$CROSS_BUILD" ]; then
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi

From aa7ec7e1b8c760f1d22184f11435a147c583f53c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.6.1

---
 common/shlibs                                 |   2 +
 srcpkgs/libjxl-devel                          |   1 +
 srcpkgs/libjxl-plugins                        |   1 +
 srcpkgs/libjxl-tools                          |   1 +
 .../deprecated_highway_functions.patch        | 459 ++++++++++++++++++
 srcpkgs/libjxl/template                       |  78 +++
 6 files changed, 542 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/patches/deprecated_highway_functions.patch
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index 0ac24701898d..c60d4bac4f7b 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4147,3 +4147,5 @@ librz_search.so.0.3.4 rizin-0.3.4_1
 librz_bin.so.0.3.4 rizin-0.3.4_1
 libaravis-0.8.so.0 libaravis-0.8.21_1
 libLimeSuite.so.20.10-1 LimeSuite-20.10.0_1
+libjxl.so.0.6 libjxl-0.6.1_1
+libjxl_threads.so.0.6 libjxl-0.6.1_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/patches/deprecated_highway_functions.patch b/srcpkgs/libjxl/patches/deprecated_highway_functions.patch
new file mode 100644
index 000000000000..a775eb5a7c56
--- /dev/null
+++ b/srcpkgs/libjxl/patches/deprecated_highway_functions.patch
@@ -0,0 +1,459 @@
+diff --git a/lib/jxl/dec_reconstruct.cc b/lib/jxl/dec_reconstruct.cc
+index a1baef4..08279f8 100644
+--- a/lib/jxl/dec_reconstruct.cc
++++ b/lib/jxl/dec_reconstruct.cc
+@@ -357,8 +357,8 @@ void DoYCbCrUpsampling(size_t hs, size_t vs, ImageF* plane_in, const Rect& rect,
+         Store(left, d, out + x);
+         Store(right, d, out + x + 1);
+ #else
+-        Store(InterleaveLower(left, right), d, out + x);
+-        Store(InterleaveUpper(left, right), d, out + x + Lanes(d));
++        Store(InterleaveLower(d, left, right), d, out + x);
++        Store(InterleaveUpper(d, left, right), d, out + x + Lanes(d));
+ #endif
+       }
+     }
+diff --git a/lib/jxl/dec_upsample.cc b/lib/jxl/dec_upsample.cc
+index 7277e4f..3cb3f36 100644
+--- a/lib/jxl/dec_upsample.cc
++++ b/lib/jxl/dec_upsample.cc
+@@ -176,8 +176,8 @@ void Upsample(const ImageF& src, const Rect& src_rect, ImageF* dst,
+         min = Min(LoadU(df, raw_min_row + sx + fx), min);
+         max = Max(LoadU(df, raw_max_row + sx + fx), max);
+       }
+-      min = MinOfLanes(min);
+-      max = MaxOfLanes(max);
++      min = MinOfLanes(df, min);
++      max = MaxOfLanes(df, max);
+       for (size_t lx = 0; lx < N; lx += V) {
+         StoreU(min, df, min_row + N * sx + lx);
+         StoreU(max, df, max_row + N * sx + lx);
+diff --git a/lib/jxl/enc_ac_strategy.cc b/lib/jxl/enc_ac_strategy.cc
+index bc50465..c0ed68f 100644
+--- a/lib/jxl/enc_ac_strategy.cc
++++ b/lib/jxl/enc_ac_strategy.cc
+@@ -429,8 +429,8 @@ float EstimateEntropy(const AcStrategy& acs, size_t x, size_t y,
+     }
+     entropy_v += nzeros_v * cost1;
+ 
+-    entropy += GetLane(SumOfLanes(entropy_v));
+-    size_t num_nzeros = GetLane(SumOfLanes(nzeros_v));
++    entropy += GetLane(SumOfLanes(df, entropy_v));
++    size_t num_nzeros = GetLane(SumOfLanes(df, nzeros_v));
+     // Add #bit of num_nonzeros, as an estimate of the cost for encoding the
+     // number of non-zeros of the block.
+     size_t nbits = CeilLog2Nonzero(num_nzeros + 1) + 1;
+@@ -441,9 +441,9 @@ float EstimateEntropy(const AcStrategy& acs, size_t x, size_t y,
+   float ret =
+       entropy +
+       masking *
+-          ((config.info_loss_multiplier * GetLane(SumOfLanes(info_loss))) +
++          ((config.info_loss_multiplier * GetLane(SumOfLanes(df, info_loss))) +
+            (config.info_loss_multiplier2 *
+-            sqrt(num_blocks * GetLane(SumOfLanes(info_loss2)))));
++            sqrt(num_blocks * GetLane(SumOfLanes(df, info_loss2)))));
+   return ret;
+ }
+ 
+diff --git a/lib/jxl/enc_adaptive_quantization.cc b/lib/jxl/enc_adaptive_quantization.cc
+index f53393f..24f3d53 100644
+--- a/lib/jxl/enc_adaptive_quantization.cc
++++ b/lib/jxl/enc_adaptive_quantization.cc
+@@ -189,7 +189,7 @@ V GammaModulation(const D d, const size_t x, const size_t y,
+       overall_ratio += avg_ratio;
+     }
+   }
+-  overall_ratio = SumOfLanes(overall_ratio);
++  overall_ratio = SumOfLanes(d, overall_ratio);
+   overall_ratio *= Set(d, 1.0f / 64);
+   // ideally -1.0, but likely optimal correction adds some entropy, so slightly
+   // less than that.
+@@ -246,12 +246,12 @@ V ColorModulation(const D d, const size_t x, const size_t y,
+   // blue we consider as if it was fully red or blue.
+   static const float ratio = 30.610615782142737f;  // out of 64 pixels.
+ 
+-  auto overall_red_coverage = SumOfLanes(red_coverage);
++  auto overall_red_coverage = SumOfLanes(d, red_coverage);
+   overall_red_coverage =
+       Min(overall_red_coverage, Set(d, ratio * kRedRampLength));
+   overall_red_coverage *= Set(d, red_strength / ratio);
+ 
+-  auto overall_blue_coverage = SumOfLanes(blue_coverage);
++  auto overall_blue_coverage = SumOfLanes(d, blue_coverage);
+   overall_blue_coverage =
+       Min(overall_blue_coverage, Set(d, ratio * kBlueRampLength));
+   overall_blue_coverage *= Set(d, blue_strength / ratio);
+@@ -295,7 +295,7 @@ V HfModulation(const D d, const size_t x, const size_t y, const ImageF& xyb,
+     }
+   }
+ 
+-  sum = SumOfLanes(sum);
++  sum = SumOfLanes(d, sum);
+   return MulAdd(sum, Set(d, -2.0052193233688884f / 112), out_val);
+ }
+ 
+diff --git a/lib/jxl/enc_ar_control_field.cc b/lib/jxl/enc_ar_control_field.cc
+index f43340e..f8025ac 100644
+--- a/lib/jxl/enc_ar_control_field.cc
++++ b/lib/jxl/enc_ar_control_field.cc
+@@ -157,7 +157,7 @@ void ProcessTile(const Image3F& opsin, PassesEncoderState* enc_state,
+           sum += LoadU(df4, rows_in[iy] + x * 4 + ix + 2);
+         }
+       }
+-      row_out[x] = GetLane(Sqrt(SumOfLanes(sum))) * (1.0f / 4.0f);
++      row_out[x] = GetLane(Sqrt(SumOfLanes(df4, sum))) * (1.0f / 4.0f);
+     }
+   }
+   // Indexing iy and ix is a bit tricky as we include a 2 pixel border
+@@ -193,7 +193,7 @@ void ProcessTile(const Image3F& opsin, PassesEncoderState* enc_state,
+             sum += Load(df4, rows_in[iy] + sx + ix);
+           }
+         }
+-        row_out[x] = GetLane(Sqrt(SumOfLanes(sum))) * (1.0f / 4.0f);
++        row_out[x] = GetLane(Sqrt(SumOfLanes(df4, sum))) * (1.0f / 4.0f);
+       } else {
+         float sum = 0;
+         for (size_t iy = sy; iy < ey; iy++) {
+diff --git a/lib/jxl/enc_butteraugli_pnorm.cc b/lib/jxl/enc_butteraugli_pnorm.cc
+index 7c3fb9c..90b0440 100644
+--- a/lib/jxl/enc_butteraugli_pnorm.cc
++++ b/lib/jxl/enc_butteraugli_pnorm.cc
+@@ -95,13 +95,13 @@ double ComputeDistanceP(const ImageF& distmap, const ButteraugliParams& params,
+     }
+     double v = 0;
+     v += pow(
+-        onePerPixels * (sum1[0] + GetLane(SumOfLanes(Load(d, sum_totals0)))),
++        onePerPixels * (sum1[0] + GetLane(SumOfLanes(d, Load(d, sum_totals0)))),
+         1.0 / (p * 1.0));
+     v += pow(
+-        onePerPixels * (sum1[1] + GetLane(SumOfLanes(Load(d, sum_totals1)))),
++        onePerPixels * (sum1[1] + GetLane(SumOfLanes(d, Load(d, sum_totals1)))),
+         1.0 / (p * 2.0));
+     v += pow(
+-        onePerPixels * (sum1[2] + GetLane(SumOfLanes(Load(d, sum_totals2)))),
++        onePerPixels * (sum1[2] + GetLane(SumOfLanes(d, Load(d, sum_totals2)))),
+         1.0 / (p * 4.0));
+     v /= 3.0;
+     return v;
+diff --git a/lib/jxl/enc_chroma_from_luma.cc b/lib/jxl/enc_chroma_from_luma.cc
+index e5c3f38..370595c 100644
+--- a/lib/jxl/enc_chroma_from_luma.cc
++++ b/lib/jxl/enc_chroma_from_luma.cc
+@@ -91,9 +91,9 @@ struct CFLFunction {
+       fdme_v += IfThenElse(av >= thres, zero, dme);
+     }
+ 
+-    *fpeps = first_derivative_peps + GetLane(SumOfLanes(fdpe_v));
+-    *fmeps = first_derivative_meps + GetLane(SumOfLanes(fdme_v));
+-    return first_derivative + GetLane(SumOfLanes(fd_v));
++    *fpeps = first_derivative_peps + GetLane(SumOfLanes(df, fdpe_v));
++    *fmeps = first_derivative_meps + GetLane(SumOfLanes(df, fdme_v));
++    return first_derivative + GetLane(SumOfLanes(df, fd_v));
+   }
+ 
+   const float* JXL_RESTRICT values_m;
+@@ -124,8 +124,8 @@ int32_t FindBestMultiplier(const float* values_m, const float* values_s,
+       cb = MulAdd(a, b, cb);
+     }
+     // + distance_mul * x^2 * num
+-    x = -GetLane(SumOfLanes(cb)) /
+-        (GetLane(SumOfLanes(ca)) + num * distance_mul * 0.5f);
++    x = -GetLane(SumOfLanes(df, cb)) /
++        (GetLane(SumOfLanes(df, ca)) + num * distance_mul * 0.5f);
+   } else {
+     constexpr float eps = 1;
+     constexpr float kClamp = 20.0f;
+diff --git a/lib/jxl/enc_cluster.cc b/lib/jxl/enc_cluster.cc
+index 1f12a29..8ae863c 100644
+--- a/lib/jxl/enc_cluster.cc
++++ b/lib/jxl/enc_cluster.cc
+@@ -49,7 +49,7 @@ void HistogramEntropy(const Histogram& a) {
+     const auto counts = LoadU(di, &a.data_[i]);
+     entropy_lanes += Entropy(ConvertTo(df, counts), inv_tot, total);
+   }
+-  a.entropy_ += GetLane(SumOfLanes(entropy_lanes));
++  a.entropy_ += GetLane(SumOfLanes(df, entropy_lanes));
+ }
+ 
+ float HistogramDistance(const Histogram& a, const Histogram& b) {
+@@ -71,7 +71,7 @@ float HistogramDistance(const Histogram& a, const Histogram& b) {
+     const auto counts = ConvertTo(df, a_counts + b_counts);
+     distance_lanes += Entropy(counts, inv_tot, total);
+   }
+-  const float total_distance = GetLane(SumOfLanes(distance_lanes));
++  const float total_distance = GetLane(SumOfLanes(df, distance_lanes));
+   return total_distance - a.entropy_ - b.entropy_;
+ }
+ 
+diff --git a/lib/jxl/enc_entropy_coder.cc b/lib/jxl/enc_entropy_coder.cc
+index 0946300..07fe5a0 100644
+--- a/lib/jxl/enc_entropy_coder.cc
++++ b/lib/jxl/enc_entropy_coder.cc
+@@ -86,7 +86,7 @@ int32_t NumNonZeroExceptLLF(const size_t cx, const size_t cy,
+ 
+   // We want area - sum_zero, add because neg_sum_zero is already negated.
+   const int32_t nzeros =
+-      int32_t(cx * cy * kDCTBlockSize) + GetLane(SumOfLanes(neg_sum_zero));
++      int32_t(cx * cy * kDCTBlockSize) + GetLane(SumOfLanes(di, neg_sum_zero));
+ 
+   const int32_t shifted_nzeros = static_cast<int32_t>(
+       (nzeros + covered_blocks - 1) >> log2_covered_blocks);
+@@ -135,7 +135,7 @@ int32_t NumNonZero8x8ExceptDC(const int32_t* JXL_RESTRICT block,
+ 
+   // We want 64 - sum_zero, add because neg_sum_zero is already negated.
+   const int32_t nzeros =
+-      int32_t(kDCTBlockSize) + GetLane(SumOfLanes(neg_sum_zero));
++      int32_t(kDCTBlockSize) + GetLane(SumOfLanes(di, neg_sum_zero));
+ 
+   *nzeros_pos = nzeros;
+ 
+diff --git a/lib/jxl/enc_fast_heuristics.cc b/lib/jxl/enc_fast_heuristics.cc
+index 16f7670..0551782 100644
+--- a/lib/jxl/enc_fast_heuristics.cc
++++ b/lib/jxl/enc_fast_heuristics.cc
+@@ -94,8 +94,8 @@ Status Heuristics(PassesEncoderState* enc_state,
+               cb = MulAdd(a, b, cb);
+             }
+           }
+-          float best =
+-              -GetLane(SumOfLanes(cb)) / (GetLane(SumOfLanes(ca)) + 1e-9f);
++          float best = -GetLane(SumOfLanes(df, cb)) /
++                       (GetLane(SumOfLanes(df, ca)) + 1e-9f);
+           int8_t& res = (c == 0 ? shared.cmap.ytox_map : shared.cmap.ytob_map)
+                             .Row(ty)[tx];
+           res = std::max(-128.0f, std::min(127.0f, roundf(best)));
+@@ -124,8 +124,8 @@ Status Heuristics(PassesEncoderState* enc_state,
+                 max = IfThenElse(max > nn, max, nn);
+               }
+             }
+-            row_out_avg[x] = GetLane(SumOfLanes(sum));
+-            row_out[x] = GetLane(MaxOfLanes(max));
++            row_out_avg[x] = GetLane(SumOfLanes(df4, sum));
++            row_out[x] = GetLane(MaxOfLanes(df4, max));
+           }
+         }
+       },
+diff --git a/lib/jxl/gauss_blur.cc b/lib/jxl/gauss_blur.cc
+index f9babe7..f24a74c 100644
+--- a/lib/jxl/gauss_blur.cc
++++ b/lib/jxl/gauss_blur.cc
+@@ -421,7 +421,7 @@ ImageF ConvolveXSampleAndTranspose(const ImageF& in,
+       for (int i = -r; i <= r; i += Lanes(df)) {
+         sum = MulAdd(LoadU(df, rowp + x + i), LoadU(df, kernelp + i), sum);
+       }
+-      out.Row(ox)[y] = GetLane(SumOfLanes(sum));
++      out.Row(ox)[y] = GetLane(SumOfLanes(df, sum));
+     }
+     for (; x < in.xsize(); x += res, ++ox) {
+       float sum = 0.0f;
+diff --git a/lib/jxl/modular/encoding/enc_ma.cc b/lib/jxl/modular/encoding/enc_ma.cc
+index 0e2eaac..d485129 100644
+--- a/lib/jxl/modular/encoding/enc_ma.cc
++++ b/lib/jxl/modular/encoding/enc_ma.cc
+@@ -84,7 +84,7 @@ float EstimateBits(const int32_t *counts, int32_t *rounded_counts,
+     bits_lanes -=
+         IfThenElse(counts_v == zero, zero, counts_v * BitCast(df, nbps));
+   }
+-  return GetLane(SumOfLanes(bits_lanes));
++  return GetLane(SumOfLanes(df, bits_lanes));
+ }
+ 
+ void MakeSplitNode(size_t pos, int property, int splitval, Predictor lpred,
+diff --git a/lib/jxl/rational_polynomial_test.cc b/lib/jxl/rational_polynomial_test.cc
+index 699afd0..f985eb0 100644
+--- a/lib/jxl/rational_polynomial_test.cc
++++ b/lib/jxl/rational_polynomial_test.cc
+@@ -51,7 +51,7 @@ struct EvalLog2 {
+     const HWY_FULL(int32_t) di;
+     const auto x_bits = BitCast(di, vx);
+     // Cannot handle negative numbers / NaN.
+-    JXL_DASSERT(AllTrue(Abs(x_bits) == x_bits));
++    JXL_DASSERT(AllTrue(di, Abs(x_bits) == x_bits));
+ 
+     // Range reduction to [-1/3, 1/3] - 3 integer, 2 float ops
+     const auto exp_bits = x_bits - Set(di, 0x3f2aaaab);  // = 2/3
+diff --git a/lib/jxl/splines.cc b/lib/jxl/splines.cc
+index 8653445..5dc2404 100644
+--- a/lib/jxl/splines.cc
++++ b/lib/jxl/splines.cc
+@@ -52,7 +52,7 @@ float ContinuousIDCT(const float dct[32], float t) {
+     auto local_res = LoadU(df, dct + i) * cos;
+     result = MulAdd(Set(df, square_root<2>::value), local_res, result);
+   }
+-  return GetLane(SumOfLanes(result));
++  return GetLane(SumOfLanes(df, result));
+ }
+ 
+ template <typename DF>
+diff --git a/lib/jxl/transpose-inl.h b/lib/jxl/transpose-inl.h
+index d12b129..4674420 100644
+--- a/lib/jxl/transpose-inl.h
++++ b/lib/jxl/transpose-inl.h
+@@ -74,50 +74,51 @@ JXL_INLINE_TRANSPOSE void GenericTransposeBlock(TransposeSimdTag<true>,
+   static_assert(COLS_or_0 % 8 == 0, "Invalid number of columns");
+   for (size_t n = 0; n < ROWS; n += 8) {
+     for (size_t m = 0; m < COLS; m += 8) {
+-      auto i0 = from.LoadPart(BlockDesc<8>(), n + 0, m + 0);
+-      auto i1 = from.LoadPart(BlockDesc<8>(), n + 1, m + 0);
+-      auto i2 = from.LoadPart(BlockDesc<8>(), n + 2, m + 0);
+-      auto i3 = from.LoadPart(BlockDesc<8>(), n + 3, m + 0);
+-      auto i4 = from.LoadPart(BlockDesc<8>(), n + 4, m + 0);
+-      auto i5 = from.LoadPart(BlockDesc<8>(), n + 5, m + 0);
+-      auto i6 = from.LoadPart(BlockDesc<8>(), n + 6, m + 0);
+-      auto i7 = from.LoadPart(BlockDesc<8>(), n + 7, m + 0);
++      const BlockDesc<8> d;
++      auto i0 = from.LoadPart(d, n + 0, m + 0);
++      auto i1 = from.LoadPart(d, n + 1, m + 0);
++      auto i2 = from.LoadPart(d, n + 2, m + 0);
++      auto i3 = from.LoadPart(d, n + 3, m + 0);
++      auto i4 = from.LoadPart(d, n + 4, m + 0);
++      auto i5 = from.LoadPart(d, n + 5, m + 0);
++      auto i6 = from.LoadPart(d, n + 6, m + 0);
++      auto i7 = from.LoadPart(d, n + 7, m + 0);
+       // Surprisingly, this straightforward implementation (24 cycles on port5)
+       // is faster than load128+insert and LoadDup128+ConcatUpperLower+blend.
+-      const auto q0 = InterleaveLower(i0, i2);
+-      const auto q1 = InterleaveLower(i1, i3);
+-      const auto q2 = InterleaveUpper(i0, i2);
+-      const auto q3 = InterleaveUpper(i1, i3);
+-      const auto q4 = InterleaveLower(i4, i6);
+-      const auto q5 = InterleaveLower(i5, i7);
+-      const auto q6 = InterleaveUpper(i4, i6);
+-      const auto q7 = InterleaveUpper(i5, i7);
+-
+-      const auto r0 = InterleaveLower(q0, q1);
+-      const auto r1 = InterleaveUpper(q0, q1);
+-      const auto r2 = InterleaveLower(q2, q3);
+-      const auto r3 = InterleaveUpper(q2, q3);
+-      const auto r4 = InterleaveLower(q4, q5);
+-      const auto r5 = InterleaveUpper(q4, q5);
+-      const auto r6 = InterleaveLower(q6, q7);
+-      const auto r7 = InterleaveUpper(q6, q7);
+-
+-      i0 = ConcatLowerLower(r4, r0);
+-      i1 = ConcatLowerLower(r5, r1);
+-      i2 = ConcatLowerLower(r6, r2);
+-      i3 = ConcatLowerLower(r7, r3);
+-      i4 = ConcatUpperUpper(r4, r0);
+-      i5 = ConcatUpperUpper(r5, r1);
+-      i6 = ConcatUpperUpper(r6, r2);
+-      i7 = ConcatUpperUpper(r7, r3);
+-      to.StorePart(BlockDesc<8>(), i0, m + 0, n + 0);
+-      to.StorePart(BlockDesc<8>(), i1, m + 1, n + 0);
+-      to.StorePart(BlockDesc<8>(), i2, m + 2, n + 0);
+-      to.StorePart(BlockDesc<8>(), i3, m + 3, n + 0);
+-      to.StorePart(BlockDesc<8>(), i4, m + 4, n + 0);
+-      to.StorePart(BlockDesc<8>(), i5, m + 5, n + 0);
+-      to.StorePart(BlockDesc<8>(), i6, m + 6, n + 0);
+-      to.StorePart(BlockDesc<8>(), i7, m + 7, n + 0);
++      const auto q0 = InterleaveLower(d, i0, i2);
++      const auto q1 = InterleaveLower(d, i1, i3);
++      const auto q2 = InterleaveUpper(d, i0, i2);
++      const auto q3 = InterleaveUpper(d, i1, i3);
++      const auto q4 = InterleaveLower(d, i4, i6);
++      const auto q5 = InterleaveLower(d, i5, i7);
++      const auto q6 = InterleaveUpper(d, i4, i6);
++      const auto q7 = InterleaveUpper(d, i5, i7);
++
++      const auto r0 = InterleaveLower(d, q0, q1);
++      const auto r1 = InterleaveUpper(d, q0, q1);
++      const auto r2 = InterleaveLower(d, q2, q3);
++      const auto r3 = InterleaveUpper(d, q2, q3);
++      const auto r4 = InterleaveLower(d, q4, q5);
++      const auto r5 = InterleaveUpper(d, q4, q5);
++      const auto r6 = InterleaveLower(d, q6, q7);
++      const auto r7 = InterleaveUpper(d, q6, q7);
++
++      i0 = ConcatLowerLower(d, r4, r0);
++      i1 = ConcatLowerLower(d, r5, r1);
++      i2 = ConcatLowerLower(d, r6, r2);
++      i3 = ConcatLowerLower(d, r7, r3);
++      i4 = ConcatUpperUpper(d, r4, r0);
++      i5 = ConcatUpperUpper(d, r5, r1);
++      i6 = ConcatUpperUpper(d, r6, r2);
++      i7 = ConcatUpperUpper(d, r7, r3);
++      to.StorePart(d, i0, m + 0, n + 0);
++      to.StorePart(d, i1, m + 1, n + 0);
++      to.StorePart(d, i2, m + 2, n + 0);
++      to.StorePart(d, i3, m + 3, n + 0);
++      to.StorePart(d, i4, m + 4, n + 0);
++      to.StorePart(d, i5, m + 5, n + 0);
++      to.StorePart(d, i6, m + 6, n + 0);
++      to.StorePart(d, i7, m + 7, n + 0);
+     }
+   }
+ }
+@@ -137,25 +138,26 @@ JXL_INLINE_TRANSPOSE void GenericTransposeBlock(TransposeSimdTag<true>,
+   static_assert(COLS_or_0 % 4 == 0, "Invalid number of columns");
+   for (size_t n = 0; n < ROWS; n += 4) {
+     for (size_t m = 0; m < COLS; m += 4) {
+-      const auto p0 = from.LoadPart(BlockDesc<4>(), n + 0, m + 0);
+-      const auto p1 = from.LoadPart(BlockDesc<4>(), n + 1, m + 0);
+-      const auto p2 = from.LoadPart(BlockDesc<4>(), n + 2, m + 0);
+-      const auto p3 = from.LoadPart(BlockDesc<4>(), n + 3, m + 0);
+-
+-      const auto q0 = InterleaveLower(p0, p2);
+-      const auto q1 = InterleaveLower(p1, p3);
+-      const auto q2 = InterleaveUpper(p0, p2);
+-      const auto q3 = InterleaveUpper(p1, p3);
+-
+-      const auto r0 = InterleaveLower(q0, q1);
+-      const auto r1 = InterleaveUpper(q0, q1);
+-      const auto r2 = InterleaveLower(q2, q3);
+-      const auto r3 = InterleaveUpper(q2, q3);
+-
+-      to.StorePart(BlockDesc<4>(), r0, m + 0, n + 0);
+-      to.StorePart(BlockDesc<4>(), r1, m + 1, n + 0);
+-      to.StorePart(BlockDesc<4>(), r2, m + 2, n + 0);
+-      to.StorePart(BlockDesc<4>(), r3, m + 3, n + 0);
++      const BlockDesc<4> d;
++      const auto p0 = from.LoadPart(d, n + 0, m + 0);
++      const auto p1 = from.LoadPart(d, n + 1, m + 0);
++      const auto p2 = from.LoadPart(d, n + 2, m + 0);
++      const auto p3 = from.LoadPart(d, n + 3, m + 0);
++
++      const auto q0 = InterleaveLower(d, p0, p2);
++      const auto q1 = InterleaveLower(d, p1, p3);
++      const auto q2 = InterleaveUpper(d, p0, p2);
++      const auto q3 = InterleaveUpper(d, p1, p3);
++
++      const auto r0 = InterleaveLower(d, q0, q1);
++      const auto r1 = InterleaveUpper(d, q0, q1);
++      const auto r2 = InterleaveLower(d, q2, q3);
++      const auto r3 = InterleaveUpper(d, q2, q3);
++
++      to.StorePart(d, r0, m + 0, n + 0);
++      to.StorePart(d, r1, m + 1, n + 0);
++      to.StorePart(d, r2, m + 2, n + 0);
++      to.StorePart(d, r3, m + 3, n + 0);
+     }
+   }
+ }
+diff --git a/lib/profiler/profiler.cc b/lib/profiler/profiler.cc
+index d21ee09..186ff06 100644
+--- a/lib/profiler/profiler.cc
++++ b/lib/profiler/profiler.cc
+@@ -139,7 +139,7 @@ class Results {
+   void AnalyzePackets(const Packet* HWY_RESTRICT packets,
+                       const size_t num_packets) {
+     // Ensures prior weakly-ordered streaming stores are globally visible.
+-    hwy::StoreFence();
++    hwy::FlushStream();
+ 
+     const uint64_t t0 = TicksBefore();
+ 
+@@ -372,12 +372,12 @@ void ThreadSpecific::ComputeOverhead() {
+       const size_t kReps = 10000;
+       // Analysis time should not be included => must fit within buffer.
+       HWY_ASSERT(kReps * 2 < max_packets_);
+-      hwy::StoreFence();
++      hwy::FlushStream();
+       const uint64_t t0 = TicksBefore();
+       for (size_t i = 0; i < kReps; ++i) {
+         PROFILER_ZONE("Dummy");
+       }
+-      hwy::StoreFence();
++      hwy::FlushStream();
+       const uint64_t t1 = TicksAfter();
+       HWY_ASSERT(num_packets_ + buffer_size_ == kReps * 2);
+       buffer_size_ = 0;
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..7b2eb9844dfe
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,78 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=0.6.1
+revision=1
+#_short_version=0.6
+#wrksrc=libjxl-${_short_version}
+build_style=cmake
+configure_args="-DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF
+ -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
+hostmakedepends="tar pkg-config asciidoc"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel
+ libopenexr-devel gdk-pixbuf-devel gimp-devel"
+checkdepends="gtest-devel xdg-utils"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="BSD-3-Clause, custom:Patent grant"
+homepage="https://jpeg.org/jpegxl/"
+_lodepng_hash=48e5364ef48ec2408f44c727657ac1b6703185f8
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/v${version}.tar.gz
+ https://github.com/lvandeve/lodepng/archive/${_lodepng_hash}.tar.gz>lodepng-${_lodepng_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="ccbd5a729d730152303be399f033b905e608309d5802d77a61a95faa092592c5
+ c47c48c77a205f1af484b7b5a847290af65de3ea6f15817aa27c5ec7cc5208fd
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="lodepng-${_lodepng_hash}.tar.gz
+ skcms-${_skcms_hash}.tar.gz"
+
+if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+	makedepends+=" libatomic-devel"
+	LIBS="-latomic"
+fi
+
+# Tests fail after building with 32-bit gcc (https://github.com/libjxl/libjxl/issues/1340)
+if [ "$CROSS_BUILD" || "$XBPS_TARGET_MACHINE" == "i686" ]; then
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf lodepng-${_lodepng_hash}.tar.gz --strip-components=1 -C ${wrksrc}/third_party/lodepng
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+post_install() {
+	vlicense LICENSE
+	vlicense PATENTS
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="libjxl>=${version}_${revision} highway brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From cd3dd86309dd8811efdc6a49abe7d9ebc05bb2c6 Mon Sep 17 00:00:00 2001
From: Joshua <joshua@kraemer.link>
Date: Wed, 30 Mar 2022 21:23:16 +0200
Subject: [PATCH 3/3] kimageformats: enable JPEG XL support

---
 srcpkgs/kimageformats/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kimageformats/template b/srcpkgs/kimageformats/template
index ebd6e81db298..6965e041027c 100644
--- a/srcpkgs/kimageformats/template
+++ b/srcpkgs/kimageformats/template
@@ -1,12 +1,12 @@
 # Template file for 'kimageformats'
 pkgname=kimageformats
 version=5.92.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKIMAGEFORMATS_HEIF=ON"
 hostmakedepends="kcoreaddons extra-cmake-modules qt5-qmake qt5-host-tools
  pkg-config"
-makedepends="karchive-devel libopenexr-devel libheif-devel"
+makedepends="karchive-devel libopenexr-devel libheif-devel libjxl-devel"
 short_desc="KDE Plugins to allow QImage to support extra file formats"
 maintainer="John <me@johnnynator.dev>"
 license="LGPL-2.0-or-later"

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR PATCH] [Updated] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (16 preceding siblings ...)
  2022-04-12 15:33 ` joshuakraemer
@ 2022-04-12 15:56 ` joshuakraemer
  2022-04-12 19:16 ` joshuakraemer
                   ` (46 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-04-12 15:56 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

There is an updated pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 27254 bytes --]

From 1dc1a54dd7191d2c31c97db98115c5ae45d29bf5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-0.16.0

---
 srcpkgs/highway/template | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..a5c1bf284c68
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,17 @@
+# Template file for 'highway'
+pkgname=highway
+version=0.16.0
+revision=1
+build_style=cmake
+configure_args="-DHWY_SYSTEM_GTEST=ON"
+checkdepends="gtest-devel"
+short_desc="C++ library providing portable SIMD/vector intrinsics"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=746c9578446be6c5286e8846c5f0d4118c0c1f04219c401abadcb8a5f2051893
+
+if [ "$CROSS_BUILD" ]; then
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi

From 798116757dae6efe1bc259900e27f070dbc00485 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.6.1

---
 common/shlibs                                 |   2 +
 srcpkgs/libjxl-devel                          |   1 +
 srcpkgs/libjxl-plugins                        |   1 +
 srcpkgs/libjxl-tools                          |   1 +
 .../deprecated_highway_functions.patch        | 459 ++++++++++++++++++
 srcpkgs/libjxl/template                       |  78 +++
 6 files changed, 542 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/patches/deprecated_highway_functions.patch
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index 0ac24701898d..c60d4bac4f7b 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4147,3 +4147,5 @@ librz_search.so.0.3.4 rizin-0.3.4_1
 librz_bin.so.0.3.4 rizin-0.3.4_1
 libaravis-0.8.so.0 libaravis-0.8.21_1
 libLimeSuite.so.20.10-1 LimeSuite-20.10.0_1
+libjxl.so.0.6 libjxl-0.6.1_1
+libjxl_threads.so.0.6 libjxl-0.6.1_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/patches/deprecated_highway_functions.patch b/srcpkgs/libjxl/patches/deprecated_highway_functions.patch
new file mode 100644
index 000000000000..a775eb5a7c56
--- /dev/null
+++ b/srcpkgs/libjxl/patches/deprecated_highway_functions.patch
@@ -0,0 +1,459 @@
+diff --git a/lib/jxl/dec_reconstruct.cc b/lib/jxl/dec_reconstruct.cc
+index a1baef4..08279f8 100644
+--- a/lib/jxl/dec_reconstruct.cc
++++ b/lib/jxl/dec_reconstruct.cc
+@@ -357,8 +357,8 @@ void DoYCbCrUpsampling(size_t hs, size_t vs, ImageF* plane_in, const Rect& rect,
+         Store(left, d, out + x);
+         Store(right, d, out + x + 1);
+ #else
+-        Store(InterleaveLower(left, right), d, out + x);
+-        Store(InterleaveUpper(left, right), d, out + x + Lanes(d));
++        Store(InterleaveLower(d, left, right), d, out + x);
++        Store(InterleaveUpper(d, left, right), d, out + x + Lanes(d));
+ #endif
+       }
+     }
+diff --git a/lib/jxl/dec_upsample.cc b/lib/jxl/dec_upsample.cc
+index 7277e4f..3cb3f36 100644
+--- a/lib/jxl/dec_upsample.cc
++++ b/lib/jxl/dec_upsample.cc
+@@ -176,8 +176,8 @@ void Upsample(const ImageF& src, const Rect& src_rect, ImageF* dst,
+         min = Min(LoadU(df, raw_min_row + sx + fx), min);
+         max = Max(LoadU(df, raw_max_row + sx + fx), max);
+       }
+-      min = MinOfLanes(min);
+-      max = MaxOfLanes(max);
++      min = MinOfLanes(df, min);
++      max = MaxOfLanes(df, max);
+       for (size_t lx = 0; lx < N; lx += V) {
+         StoreU(min, df, min_row + N * sx + lx);
+         StoreU(max, df, max_row + N * sx + lx);
+diff --git a/lib/jxl/enc_ac_strategy.cc b/lib/jxl/enc_ac_strategy.cc
+index bc50465..c0ed68f 100644
+--- a/lib/jxl/enc_ac_strategy.cc
++++ b/lib/jxl/enc_ac_strategy.cc
+@@ -429,8 +429,8 @@ float EstimateEntropy(const AcStrategy& acs, size_t x, size_t y,
+     }
+     entropy_v += nzeros_v * cost1;
+ 
+-    entropy += GetLane(SumOfLanes(entropy_v));
+-    size_t num_nzeros = GetLane(SumOfLanes(nzeros_v));
++    entropy += GetLane(SumOfLanes(df, entropy_v));
++    size_t num_nzeros = GetLane(SumOfLanes(df, nzeros_v));
+     // Add #bit of num_nonzeros, as an estimate of the cost for encoding the
+     // number of non-zeros of the block.
+     size_t nbits = CeilLog2Nonzero(num_nzeros + 1) + 1;
+@@ -441,9 +441,9 @@ float EstimateEntropy(const AcStrategy& acs, size_t x, size_t y,
+   float ret =
+       entropy +
+       masking *
+-          ((config.info_loss_multiplier * GetLane(SumOfLanes(info_loss))) +
++          ((config.info_loss_multiplier * GetLane(SumOfLanes(df, info_loss))) +
+            (config.info_loss_multiplier2 *
+-            sqrt(num_blocks * GetLane(SumOfLanes(info_loss2)))));
++            sqrt(num_blocks * GetLane(SumOfLanes(df, info_loss2)))));
+   return ret;
+ }
+ 
+diff --git a/lib/jxl/enc_adaptive_quantization.cc b/lib/jxl/enc_adaptive_quantization.cc
+index f53393f..24f3d53 100644
+--- a/lib/jxl/enc_adaptive_quantization.cc
++++ b/lib/jxl/enc_adaptive_quantization.cc
+@@ -189,7 +189,7 @@ V GammaModulation(const D d, const size_t x, const size_t y,
+       overall_ratio += avg_ratio;
+     }
+   }
+-  overall_ratio = SumOfLanes(overall_ratio);
++  overall_ratio = SumOfLanes(d, overall_ratio);
+   overall_ratio *= Set(d, 1.0f / 64);
+   // ideally -1.0, but likely optimal correction adds some entropy, so slightly
+   // less than that.
+@@ -246,12 +246,12 @@ V ColorModulation(const D d, const size_t x, const size_t y,
+   // blue we consider as if it was fully red or blue.
+   static const float ratio = 30.610615782142737f;  // out of 64 pixels.
+ 
+-  auto overall_red_coverage = SumOfLanes(red_coverage);
++  auto overall_red_coverage = SumOfLanes(d, red_coverage);
+   overall_red_coverage =
+       Min(overall_red_coverage, Set(d, ratio * kRedRampLength));
+   overall_red_coverage *= Set(d, red_strength / ratio);
+ 
+-  auto overall_blue_coverage = SumOfLanes(blue_coverage);
++  auto overall_blue_coverage = SumOfLanes(d, blue_coverage);
+   overall_blue_coverage =
+       Min(overall_blue_coverage, Set(d, ratio * kBlueRampLength));
+   overall_blue_coverage *= Set(d, blue_strength / ratio);
+@@ -295,7 +295,7 @@ V HfModulation(const D d, const size_t x, const size_t y, const ImageF& xyb,
+     }
+   }
+ 
+-  sum = SumOfLanes(sum);
++  sum = SumOfLanes(d, sum);
+   return MulAdd(sum, Set(d, -2.0052193233688884f / 112), out_val);
+ }
+ 
+diff --git a/lib/jxl/enc_ar_control_field.cc b/lib/jxl/enc_ar_control_field.cc
+index f43340e..f8025ac 100644
+--- a/lib/jxl/enc_ar_control_field.cc
++++ b/lib/jxl/enc_ar_control_field.cc
+@@ -157,7 +157,7 @@ void ProcessTile(const Image3F& opsin, PassesEncoderState* enc_state,
+           sum += LoadU(df4, rows_in[iy] + x * 4 + ix + 2);
+         }
+       }
+-      row_out[x] = GetLane(Sqrt(SumOfLanes(sum))) * (1.0f / 4.0f);
++      row_out[x] = GetLane(Sqrt(SumOfLanes(df4, sum))) * (1.0f / 4.0f);
+     }
+   }
+   // Indexing iy and ix is a bit tricky as we include a 2 pixel border
+@@ -193,7 +193,7 @@ void ProcessTile(const Image3F& opsin, PassesEncoderState* enc_state,
+             sum += Load(df4, rows_in[iy] + sx + ix);
+           }
+         }
+-        row_out[x] = GetLane(Sqrt(SumOfLanes(sum))) * (1.0f / 4.0f);
++        row_out[x] = GetLane(Sqrt(SumOfLanes(df4, sum))) * (1.0f / 4.0f);
+       } else {
+         float sum = 0;
+         for (size_t iy = sy; iy < ey; iy++) {
+diff --git a/lib/jxl/enc_butteraugli_pnorm.cc b/lib/jxl/enc_butteraugli_pnorm.cc
+index 7c3fb9c..90b0440 100644
+--- a/lib/jxl/enc_butteraugli_pnorm.cc
++++ b/lib/jxl/enc_butteraugli_pnorm.cc
+@@ -95,13 +95,13 @@ double ComputeDistanceP(const ImageF& distmap, const ButteraugliParams& params,
+     }
+     double v = 0;
+     v += pow(
+-        onePerPixels * (sum1[0] + GetLane(SumOfLanes(Load(d, sum_totals0)))),
++        onePerPixels * (sum1[0] + GetLane(SumOfLanes(d, Load(d, sum_totals0)))),
+         1.0 / (p * 1.0));
+     v += pow(
+-        onePerPixels * (sum1[1] + GetLane(SumOfLanes(Load(d, sum_totals1)))),
++        onePerPixels * (sum1[1] + GetLane(SumOfLanes(d, Load(d, sum_totals1)))),
+         1.0 / (p * 2.0));
+     v += pow(
+-        onePerPixels * (sum1[2] + GetLane(SumOfLanes(Load(d, sum_totals2)))),
++        onePerPixels * (sum1[2] + GetLane(SumOfLanes(d, Load(d, sum_totals2)))),
+         1.0 / (p * 4.0));
+     v /= 3.0;
+     return v;
+diff --git a/lib/jxl/enc_chroma_from_luma.cc b/lib/jxl/enc_chroma_from_luma.cc
+index e5c3f38..370595c 100644
+--- a/lib/jxl/enc_chroma_from_luma.cc
++++ b/lib/jxl/enc_chroma_from_luma.cc
+@@ -91,9 +91,9 @@ struct CFLFunction {
+       fdme_v += IfThenElse(av >= thres, zero, dme);
+     }
+ 
+-    *fpeps = first_derivative_peps + GetLane(SumOfLanes(fdpe_v));
+-    *fmeps = first_derivative_meps + GetLane(SumOfLanes(fdme_v));
+-    return first_derivative + GetLane(SumOfLanes(fd_v));
++    *fpeps = first_derivative_peps + GetLane(SumOfLanes(df, fdpe_v));
++    *fmeps = first_derivative_meps + GetLane(SumOfLanes(df, fdme_v));
++    return first_derivative + GetLane(SumOfLanes(df, fd_v));
+   }
+ 
+   const float* JXL_RESTRICT values_m;
+@@ -124,8 +124,8 @@ int32_t FindBestMultiplier(const float* values_m, const float* values_s,
+       cb = MulAdd(a, b, cb);
+     }
+     // + distance_mul * x^2 * num
+-    x = -GetLane(SumOfLanes(cb)) /
+-        (GetLane(SumOfLanes(ca)) + num * distance_mul * 0.5f);
++    x = -GetLane(SumOfLanes(df, cb)) /
++        (GetLane(SumOfLanes(df, ca)) + num * distance_mul * 0.5f);
+   } else {
+     constexpr float eps = 1;
+     constexpr float kClamp = 20.0f;
+diff --git a/lib/jxl/enc_cluster.cc b/lib/jxl/enc_cluster.cc
+index 1f12a29..8ae863c 100644
+--- a/lib/jxl/enc_cluster.cc
++++ b/lib/jxl/enc_cluster.cc
+@@ -49,7 +49,7 @@ void HistogramEntropy(const Histogram& a) {
+     const auto counts = LoadU(di, &a.data_[i]);
+     entropy_lanes += Entropy(ConvertTo(df, counts), inv_tot, total);
+   }
+-  a.entropy_ += GetLane(SumOfLanes(entropy_lanes));
++  a.entropy_ += GetLane(SumOfLanes(df, entropy_lanes));
+ }
+ 
+ float HistogramDistance(const Histogram& a, const Histogram& b) {
+@@ -71,7 +71,7 @@ float HistogramDistance(const Histogram& a, const Histogram& b) {
+     const auto counts = ConvertTo(df, a_counts + b_counts);
+     distance_lanes += Entropy(counts, inv_tot, total);
+   }
+-  const float total_distance = GetLane(SumOfLanes(distance_lanes));
++  const float total_distance = GetLane(SumOfLanes(df, distance_lanes));
+   return total_distance - a.entropy_ - b.entropy_;
+ }
+ 
+diff --git a/lib/jxl/enc_entropy_coder.cc b/lib/jxl/enc_entropy_coder.cc
+index 0946300..07fe5a0 100644
+--- a/lib/jxl/enc_entropy_coder.cc
++++ b/lib/jxl/enc_entropy_coder.cc
+@@ -86,7 +86,7 @@ int32_t NumNonZeroExceptLLF(const size_t cx, const size_t cy,
+ 
+   // We want area - sum_zero, add because neg_sum_zero is already negated.
+   const int32_t nzeros =
+-      int32_t(cx * cy * kDCTBlockSize) + GetLane(SumOfLanes(neg_sum_zero));
++      int32_t(cx * cy * kDCTBlockSize) + GetLane(SumOfLanes(di, neg_sum_zero));
+ 
+   const int32_t shifted_nzeros = static_cast<int32_t>(
+       (nzeros + covered_blocks - 1) >> log2_covered_blocks);
+@@ -135,7 +135,7 @@ int32_t NumNonZero8x8ExceptDC(const int32_t* JXL_RESTRICT block,
+ 
+   // We want 64 - sum_zero, add because neg_sum_zero is already negated.
+   const int32_t nzeros =
+-      int32_t(kDCTBlockSize) + GetLane(SumOfLanes(neg_sum_zero));
++      int32_t(kDCTBlockSize) + GetLane(SumOfLanes(di, neg_sum_zero));
+ 
+   *nzeros_pos = nzeros;
+ 
+diff --git a/lib/jxl/enc_fast_heuristics.cc b/lib/jxl/enc_fast_heuristics.cc
+index 16f7670..0551782 100644
+--- a/lib/jxl/enc_fast_heuristics.cc
++++ b/lib/jxl/enc_fast_heuristics.cc
+@@ -94,8 +94,8 @@ Status Heuristics(PassesEncoderState* enc_state,
+               cb = MulAdd(a, b, cb);
+             }
+           }
+-          float best =
+-              -GetLane(SumOfLanes(cb)) / (GetLane(SumOfLanes(ca)) + 1e-9f);
++          float best = -GetLane(SumOfLanes(df, cb)) /
++                       (GetLane(SumOfLanes(df, ca)) + 1e-9f);
+           int8_t& res = (c == 0 ? shared.cmap.ytox_map : shared.cmap.ytob_map)
+                             .Row(ty)[tx];
+           res = std::max(-128.0f, std::min(127.0f, roundf(best)));
+@@ -124,8 +124,8 @@ Status Heuristics(PassesEncoderState* enc_state,
+                 max = IfThenElse(max > nn, max, nn);
+               }
+             }
+-            row_out_avg[x] = GetLane(SumOfLanes(sum));
+-            row_out[x] = GetLane(MaxOfLanes(max));
++            row_out_avg[x] = GetLane(SumOfLanes(df4, sum));
++            row_out[x] = GetLane(MaxOfLanes(df4, max));
+           }
+         }
+       },
+diff --git a/lib/jxl/gauss_blur.cc b/lib/jxl/gauss_blur.cc
+index f9babe7..f24a74c 100644
+--- a/lib/jxl/gauss_blur.cc
++++ b/lib/jxl/gauss_blur.cc
+@@ -421,7 +421,7 @@ ImageF ConvolveXSampleAndTranspose(const ImageF& in,
+       for (int i = -r; i <= r; i += Lanes(df)) {
+         sum = MulAdd(LoadU(df, rowp + x + i), LoadU(df, kernelp + i), sum);
+       }
+-      out.Row(ox)[y] = GetLane(SumOfLanes(sum));
++      out.Row(ox)[y] = GetLane(SumOfLanes(df, sum));
+     }
+     for (; x < in.xsize(); x += res, ++ox) {
+       float sum = 0.0f;
+diff --git a/lib/jxl/modular/encoding/enc_ma.cc b/lib/jxl/modular/encoding/enc_ma.cc
+index 0e2eaac..d485129 100644
+--- a/lib/jxl/modular/encoding/enc_ma.cc
++++ b/lib/jxl/modular/encoding/enc_ma.cc
+@@ -84,7 +84,7 @@ float EstimateBits(const int32_t *counts, int32_t *rounded_counts,
+     bits_lanes -=
+         IfThenElse(counts_v == zero, zero, counts_v * BitCast(df, nbps));
+   }
+-  return GetLane(SumOfLanes(bits_lanes));
++  return GetLane(SumOfLanes(df, bits_lanes));
+ }
+ 
+ void MakeSplitNode(size_t pos, int property, int splitval, Predictor lpred,
+diff --git a/lib/jxl/rational_polynomial_test.cc b/lib/jxl/rational_polynomial_test.cc
+index 699afd0..f985eb0 100644
+--- a/lib/jxl/rational_polynomial_test.cc
++++ b/lib/jxl/rational_polynomial_test.cc
+@@ -51,7 +51,7 @@ struct EvalLog2 {
+     const HWY_FULL(int32_t) di;
+     const auto x_bits = BitCast(di, vx);
+     // Cannot handle negative numbers / NaN.
+-    JXL_DASSERT(AllTrue(Abs(x_bits) == x_bits));
++    JXL_DASSERT(AllTrue(di, Abs(x_bits) == x_bits));
+ 
+     // Range reduction to [-1/3, 1/3] - 3 integer, 2 float ops
+     const auto exp_bits = x_bits - Set(di, 0x3f2aaaab);  // = 2/3
+diff --git a/lib/jxl/splines.cc b/lib/jxl/splines.cc
+index 8653445..5dc2404 100644
+--- a/lib/jxl/splines.cc
++++ b/lib/jxl/splines.cc
+@@ -52,7 +52,7 @@ float ContinuousIDCT(const float dct[32], float t) {
+     auto local_res = LoadU(df, dct + i) * cos;
+     result = MulAdd(Set(df, square_root<2>::value), local_res, result);
+   }
+-  return GetLane(SumOfLanes(result));
++  return GetLane(SumOfLanes(df, result));
+ }
+ 
+ template <typename DF>
+diff --git a/lib/jxl/transpose-inl.h b/lib/jxl/transpose-inl.h
+index d12b129..4674420 100644
+--- a/lib/jxl/transpose-inl.h
++++ b/lib/jxl/transpose-inl.h
+@@ -74,50 +74,51 @@ JXL_INLINE_TRANSPOSE void GenericTransposeBlock(TransposeSimdTag<true>,
+   static_assert(COLS_or_0 % 8 == 0, "Invalid number of columns");
+   for (size_t n = 0; n < ROWS; n += 8) {
+     for (size_t m = 0; m < COLS; m += 8) {
+-      auto i0 = from.LoadPart(BlockDesc<8>(), n + 0, m + 0);
+-      auto i1 = from.LoadPart(BlockDesc<8>(), n + 1, m + 0);
+-      auto i2 = from.LoadPart(BlockDesc<8>(), n + 2, m + 0);
+-      auto i3 = from.LoadPart(BlockDesc<8>(), n + 3, m + 0);
+-      auto i4 = from.LoadPart(BlockDesc<8>(), n + 4, m + 0);
+-      auto i5 = from.LoadPart(BlockDesc<8>(), n + 5, m + 0);
+-      auto i6 = from.LoadPart(BlockDesc<8>(), n + 6, m + 0);
+-      auto i7 = from.LoadPart(BlockDesc<8>(), n + 7, m + 0);
++      const BlockDesc<8> d;
++      auto i0 = from.LoadPart(d, n + 0, m + 0);
++      auto i1 = from.LoadPart(d, n + 1, m + 0);
++      auto i2 = from.LoadPart(d, n + 2, m + 0);
++      auto i3 = from.LoadPart(d, n + 3, m + 0);
++      auto i4 = from.LoadPart(d, n + 4, m + 0);
++      auto i5 = from.LoadPart(d, n + 5, m + 0);
++      auto i6 = from.LoadPart(d, n + 6, m + 0);
++      auto i7 = from.LoadPart(d, n + 7, m + 0);
+       // Surprisingly, this straightforward implementation (24 cycles on port5)
+       // is faster than load128+insert and LoadDup128+ConcatUpperLower+blend.
+-      const auto q0 = InterleaveLower(i0, i2);
+-      const auto q1 = InterleaveLower(i1, i3);
+-      const auto q2 = InterleaveUpper(i0, i2);
+-      const auto q3 = InterleaveUpper(i1, i3);
+-      const auto q4 = InterleaveLower(i4, i6);
+-      const auto q5 = InterleaveLower(i5, i7);
+-      const auto q6 = InterleaveUpper(i4, i6);
+-      const auto q7 = InterleaveUpper(i5, i7);
+-
+-      const auto r0 = InterleaveLower(q0, q1);
+-      const auto r1 = InterleaveUpper(q0, q1);
+-      const auto r2 = InterleaveLower(q2, q3);
+-      const auto r3 = InterleaveUpper(q2, q3);
+-      const auto r4 = InterleaveLower(q4, q5);
+-      const auto r5 = InterleaveUpper(q4, q5);
+-      const auto r6 = InterleaveLower(q6, q7);
+-      const auto r7 = InterleaveUpper(q6, q7);
+-
+-      i0 = ConcatLowerLower(r4, r0);
+-      i1 = ConcatLowerLower(r5, r1);
+-      i2 = ConcatLowerLower(r6, r2);
+-      i3 = ConcatLowerLower(r7, r3);
+-      i4 = ConcatUpperUpper(r4, r0);
+-      i5 = ConcatUpperUpper(r5, r1);
+-      i6 = ConcatUpperUpper(r6, r2);
+-      i7 = ConcatUpperUpper(r7, r3);
+-      to.StorePart(BlockDesc<8>(), i0, m + 0, n + 0);
+-      to.StorePart(BlockDesc<8>(), i1, m + 1, n + 0);
+-      to.StorePart(BlockDesc<8>(), i2, m + 2, n + 0);
+-      to.StorePart(BlockDesc<8>(), i3, m + 3, n + 0);
+-      to.StorePart(BlockDesc<8>(), i4, m + 4, n + 0);
+-      to.StorePart(BlockDesc<8>(), i5, m + 5, n + 0);
+-      to.StorePart(BlockDesc<8>(), i6, m + 6, n + 0);
+-      to.StorePart(BlockDesc<8>(), i7, m + 7, n + 0);
++      const auto q0 = InterleaveLower(d, i0, i2);
++      const auto q1 = InterleaveLower(d, i1, i3);
++      const auto q2 = InterleaveUpper(d, i0, i2);
++      const auto q3 = InterleaveUpper(d, i1, i3);
++      const auto q4 = InterleaveLower(d, i4, i6);
++      const auto q5 = InterleaveLower(d, i5, i7);
++      const auto q6 = InterleaveUpper(d, i4, i6);
++      const auto q7 = InterleaveUpper(d, i5, i7);
++
++      const auto r0 = InterleaveLower(d, q0, q1);
++      const auto r1 = InterleaveUpper(d, q0, q1);
++      const auto r2 = InterleaveLower(d, q2, q3);
++      const auto r3 = InterleaveUpper(d, q2, q3);
++      const auto r4 = InterleaveLower(d, q4, q5);
++      const auto r5 = InterleaveUpper(d, q4, q5);
++      const auto r6 = InterleaveLower(d, q6, q7);
++      const auto r7 = InterleaveUpper(d, q6, q7);
++
++      i0 = ConcatLowerLower(d, r4, r0);
++      i1 = ConcatLowerLower(d, r5, r1);
++      i2 = ConcatLowerLower(d, r6, r2);
++      i3 = ConcatLowerLower(d, r7, r3);
++      i4 = ConcatUpperUpper(d, r4, r0);
++      i5 = ConcatUpperUpper(d, r5, r1);
++      i6 = ConcatUpperUpper(d, r6, r2);
++      i7 = ConcatUpperUpper(d, r7, r3);
++      to.StorePart(d, i0, m + 0, n + 0);
++      to.StorePart(d, i1, m + 1, n + 0);
++      to.StorePart(d, i2, m + 2, n + 0);
++      to.StorePart(d, i3, m + 3, n + 0);
++      to.StorePart(d, i4, m + 4, n + 0);
++      to.StorePart(d, i5, m + 5, n + 0);
++      to.StorePart(d, i6, m + 6, n + 0);
++      to.StorePart(d, i7, m + 7, n + 0);
+     }
+   }
+ }
+@@ -137,25 +138,26 @@ JXL_INLINE_TRANSPOSE void GenericTransposeBlock(TransposeSimdTag<true>,
+   static_assert(COLS_or_0 % 4 == 0, "Invalid number of columns");
+   for (size_t n = 0; n < ROWS; n += 4) {
+     for (size_t m = 0; m < COLS; m += 4) {
+-      const auto p0 = from.LoadPart(BlockDesc<4>(), n + 0, m + 0);
+-      const auto p1 = from.LoadPart(BlockDesc<4>(), n + 1, m + 0);
+-      const auto p2 = from.LoadPart(BlockDesc<4>(), n + 2, m + 0);
+-      const auto p3 = from.LoadPart(BlockDesc<4>(), n + 3, m + 0);
+-
+-      const auto q0 = InterleaveLower(p0, p2);
+-      const auto q1 = InterleaveLower(p1, p3);
+-      const auto q2 = InterleaveUpper(p0, p2);
+-      const auto q3 = InterleaveUpper(p1, p3);
+-
+-      const auto r0 = InterleaveLower(q0, q1);
+-      const auto r1 = InterleaveUpper(q0, q1);
+-      const auto r2 = InterleaveLower(q2, q3);
+-      const auto r3 = InterleaveUpper(q2, q3);
+-
+-      to.StorePart(BlockDesc<4>(), r0, m + 0, n + 0);
+-      to.StorePart(BlockDesc<4>(), r1, m + 1, n + 0);
+-      to.StorePart(BlockDesc<4>(), r2, m + 2, n + 0);
+-      to.StorePart(BlockDesc<4>(), r3, m + 3, n + 0);
++      const BlockDesc<4> d;
++      const auto p0 = from.LoadPart(d, n + 0, m + 0);
++      const auto p1 = from.LoadPart(d, n + 1, m + 0);
++      const auto p2 = from.LoadPart(d, n + 2, m + 0);
++      const auto p3 = from.LoadPart(d, n + 3, m + 0);
++
++      const auto q0 = InterleaveLower(d, p0, p2);
++      const auto q1 = InterleaveLower(d, p1, p3);
++      const auto q2 = InterleaveUpper(d, p0, p2);
++      const auto q3 = InterleaveUpper(d, p1, p3);
++
++      const auto r0 = InterleaveLower(d, q0, q1);
++      const auto r1 = InterleaveUpper(d, q0, q1);
++      const auto r2 = InterleaveLower(d, q2, q3);
++      const auto r3 = InterleaveUpper(d, q2, q3);
++
++      to.StorePart(d, r0, m + 0, n + 0);
++      to.StorePart(d, r1, m + 1, n + 0);
++      to.StorePart(d, r2, m + 2, n + 0);
++      to.StorePart(d, r3, m + 3, n + 0);
+     }
+   }
+ }
+diff --git a/lib/profiler/profiler.cc b/lib/profiler/profiler.cc
+index d21ee09..186ff06 100644
+--- a/lib/profiler/profiler.cc
++++ b/lib/profiler/profiler.cc
+@@ -139,7 +139,7 @@ class Results {
+   void AnalyzePackets(const Packet* HWY_RESTRICT packets,
+                       const size_t num_packets) {
+     // Ensures prior weakly-ordered streaming stores are globally visible.
+-    hwy::StoreFence();
++    hwy::FlushStream();
+ 
+     const uint64_t t0 = TicksBefore();
+ 
+@@ -372,12 +372,12 @@ void ThreadSpecific::ComputeOverhead() {
+       const size_t kReps = 10000;
+       // Analysis time should not be included => must fit within buffer.
+       HWY_ASSERT(kReps * 2 < max_packets_);
+-      hwy::StoreFence();
++      hwy::FlushStream();
+       const uint64_t t0 = TicksBefore();
+       for (size_t i = 0; i < kReps; ++i) {
+         PROFILER_ZONE("Dummy");
+       }
+-      hwy::StoreFence();
++      hwy::FlushStream();
+       const uint64_t t1 = TicksAfter();
+       HWY_ASSERT(num_packets_ + buffer_size_ == kReps * 2);
+       buffer_size_ = 0;
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..82c38d8e7365
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,78 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=0.6.1
+revision=1
+#_short_version=0.6
+#wrksrc=libjxl-${_short_version}
+build_style=cmake
+configure_args="-DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF
+ -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
+hostmakedepends="tar pkg-config asciidoc"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel
+ libopenexr-devel gdk-pixbuf-devel gimp-devel"
+checkdepends="gtest-devel xdg-utils"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="BSD-3-Clause, custom:Patent grant"
+homepage="https://jpeg.org/jpegxl/"
+_lodepng_hash=48e5364ef48ec2408f44c727657ac1b6703185f8
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/v${version}.tar.gz
+ https://github.com/lvandeve/lodepng/archive/${_lodepng_hash}.tar.gz>lodepng-${_lodepng_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="ccbd5a729d730152303be399f033b905e608309d5802d77a61a95faa092592c5
+ c47c48c77a205f1af484b7b5a847290af65de3ea6f15817aa27c5ec7cc5208fd
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="lodepng-${_lodepng_hash}.tar.gz
+ skcms-${_skcms_hash}.tar.gz"
+
+if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+	makedepends+=" libatomic-devel"
+	LIBS="-latomic"
+fi
+
+# Tests fail after building with 32-bit gcc (https://github.com/libjxl/libjxl/issues/1340)
+if [ "$CROSS_BUILD" -o "$XBPS_TARGET_MACHINE" = "i686" ]; then
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf lodepng-${_lodepng_hash}.tar.gz --strip-components=1 -C ${wrksrc}/third_party/lodepng
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+post_install() {
+	vlicense LICENSE
+	vlicense PATENTS
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="libjxl>=${version}_${revision} highway brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From 9ef3daa905c2b3281328be6140af7aa5ab3136db Mon Sep 17 00:00:00 2001
From: Joshua <joshua@kraemer.link>
Date: Wed, 30 Mar 2022 21:23:16 +0200
Subject: [PATCH 3/3] kimageformats: enable JPEG XL support

---
 srcpkgs/kimageformats/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kimageformats/template b/srcpkgs/kimageformats/template
index ebd6e81db298..6965e041027c 100644
--- a/srcpkgs/kimageformats/template
+++ b/srcpkgs/kimageformats/template
@@ -1,12 +1,12 @@
 # Template file for 'kimageformats'
 pkgname=kimageformats
 version=5.92.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKIMAGEFORMATS_HEIF=ON"
 hostmakedepends="kcoreaddons extra-cmake-modules qt5-qmake qt5-host-tools
  pkg-config"
-makedepends="karchive-devel libopenexr-devel libheif-devel"
+makedepends="karchive-devel libopenexr-devel libheif-devel libjxl-devel"
 short_desc="KDE Plugins to allow QImage to support extra file formats"
 maintainer="John <me@johnnynator.dev>"
 license="LGPL-2.0-or-later"

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (17 preceding siblings ...)
  2022-04-12 15:56 ` joshuakraemer
@ 2022-04-12 19:16 ` joshuakraemer
  2022-04-24 17:01 ` mustaqimM
                   ` (45 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-04-12 19:16 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 229 bytes --]

New comment by joshuakraemer on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#issuecomment-1097119439

Comment:
@tibequadorian, thank you for the review and hints. I hope it is ok to merge now.

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (18 preceding siblings ...)
  2022-04-12 19:16 ` joshuakraemer
@ 2022-04-24 17:01 ` mustaqimM
  2022-04-24 17:16 ` mustaqimM
                   ` (44 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: mustaqimM @ 2022-04-24 17:01 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1102 bytes --]

New comment by mustaqimM on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#issuecomment-1107879129

Comment:
@joshuakraemer `kimageformats` now supports jxl. I don't know if you want to swap out `qt-jpegxl-image-plugin` for it:

```diff
diff --git a/srcpkgs/kimageformats/template b/srcpkgs/kimageformats/template
index bc8b9f09a2..58cb9281be 100644
--- a/srcpkgs/kimageformats/template
+++ b/srcpkgs/kimageformats/template
@@ -1,12 +1,12 @@
 # Template file for 'kimageformats'
 pkgname=kimageformats
 version=5.93.0
-revision=1
+revision=2
 build_style=cmake
-configure_args="-DKIMAGEFORMATS_HEIF=ON"
+configure_args="-DKIMAGEFORMATS_HEIF=ON -DKIMAGEFORMATS_JXL=ON"
 hostmakedepends="kcoreaddons extra-cmake-modules qt5-qmake qt5-host-tools
  pkg-config"
-makedepends="karchive-devel libopenexr-devel libheif-devel"
+makedepends="karchive-devel libopenexr-devel libheif-devel libjxl-devel highway"
 short_desc="KDE Plugins to allow QImage to support extra file formats"
 maintainer="John <me@johnnynator.dev>"
 license="LGPL-2.0-or-later"
```

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (19 preceding siblings ...)
  2022-04-24 17:01 ` mustaqimM
@ 2022-04-24 17:16 ` mustaqimM
  2022-04-25  7:48 ` [PR REVIEW] " paper42
                   ` (43 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: mustaqimM @ 2022-04-24 17:16 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1211 bytes --]

New comment by mustaqimM on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#issuecomment-1107879129

Comment:
EDIT. Sorry, just saw you're already doing that.

~@joshuakraemer `kimageformats` now supports jxl. I don't know if you want to swap out `qt-jpegxl-image-plugin` for it:~

<details>
<summary>Details</summary>

```diff
diff --git a/srcpkgs/kimageformats/template b/srcpkgs/kimageformats/template
index bc8b9f09a2..58cb9281be 100644
--- a/srcpkgs/kimageformats/template
+++ b/srcpkgs/kimageformats/template
@@ -1,12 +1,12 @@
 # Template file for 'kimageformats'
 pkgname=kimageformats
 version=5.93.0
-revision=1
+revision=2
 build_style=cmake
-configure_args="-DKIMAGEFORMATS_HEIF=ON"
+configure_args="-DKIMAGEFORMATS_HEIF=ON -DKIMAGEFORMATS_JXL=ON"
 hostmakedepends="kcoreaddons extra-cmake-modules qt5-qmake qt5-host-tools
  pkg-config"
-makedepends="karchive-devel libopenexr-devel libheif-devel"
+makedepends="karchive-devel libopenexr-devel libheif-devel libjxl-devel highway"
 short_desc="KDE Plugins to allow QImage to support extra file formats"
 maintainer="John <me@johnnynator.dev>"
 license="LGPL-2.0-or-later"
```

</details>

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR REVIEW] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (20 preceding siblings ...)
  2022-04-24 17:16 ` mustaqimM
@ 2022-04-25  7:48 ` paper42
  2022-04-25  7:48 ` paper42
                   ` (42 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: paper42 @ 2022-04-25  7:48 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 199 bytes --]

New review comment by paper42 on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#discussion_r857345990

Comment:
Could we instead use create_wrksrc and build_wrksrc?

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR REVIEW] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (21 preceding siblings ...)
  2022-04-25  7:48 ` [PR REVIEW] " paper42
@ 2022-04-25  7:48 ` paper42
  2022-04-27 17:52 ` [PR PATCH] [Updated] " joshuakraemer
                   ` (41 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: paper42 @ 2022-04-25  7:48 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 194 bytes --]

New review comment by paper42 on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#discussion_r857346353

Comment:
these comments should be removed before merging

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR PATCH] [Updated] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (22 preceding siblings ...)
  2022-04-25  7:48 ` paper42
@ 2022-04-27 17:52 ` joshuakraemer
  2022-04-27 17:54 ` [PR REVIEW] " joshuakraemer
                   ` (40 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-04-27 17:52 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

There is an updated pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 27190 bytes --]

From 54e1677a16df55cfb22872f065f6eef7c45551a0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-0.16.0

---
 srcpkgs/highway/template | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..a5c1bf284c68
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,17 @@
+# Template file for 'highway'
+pkgname=highway
+version=0.16.0
+revision=1
+build_style=cmake
+configure_args="-DHWY_SYSTEM_GTEST=ON"
+checkdepends="gtest-devel"
+short_desc="C++ library providing portable SIMD/vector intrinsics"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=746c9578446be6c5286e8846c5f0d4118c0c1f04219c401abadcb8a5f2051893
+
+if [ "$CROSS_BUILD" ]; then
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi

From 8f0bde25586e706bfd395444d8f20b302bf5b58e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.6.1

---
 common/shlibs                                 |   2 +
 srcpkgs/libjxl-devel                          |   1 +
 srcpkgs/libjxl-plugins                        |   1 +
 srcpkgs/libjxl-tools                          |   1 +
 .../deprecated_highway_functions.patch        | 459 ++++++++++++++++++
 srcpkgs/libjxl/template                       |  76 +++
 6 files changed, 540 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/patches/deprecated_highway_functions.patch
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index 60b4402c8bd2..efdeca8ad272 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4152,3 +4152,5 @@ librz_bin.so.0.3.4 rizin-0.3.4_1
 libaravis-0.8.so.0 libaravis-0.8.21_1
 libLimeSuite.so.20.10-1 LimeSuite-20.10.0_1
 libnvme.so.1 libnvme-1.0_1
+libjxl.so.0.6 libjxl-0.6.1_1
+libjxl_threads.so.0.6 libjxl-0.6.1_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/patches/deprecated_highway_functions.patch b/srcpkgs/libjxl/patches/deprecated_highway_functions.patch
new file mode 100644
index 000000000000..a775eb5a7c56
--- /dev/null
+++ b/srcpkgs/libjxl/patches/deprecated_highway_functions.patch
@@ -0,0 +1,459 @@
+diff --git a/lib/jxl/dec_reconstruct.cc b/lib/jxl/dec_reconstruct.cc
+index a1baef4..08279f8 100644
+--- a/lib/jxl/dec_reconstruct.cc
++++ b/lib/jxl/dec_reconstruct.cc
+@@ -357,8 +357,8 @@ void DoYCbCrUpsampling(size_t hs, size_t vs, ImageF* plane_in, const Rect& rect,
+         Store(left, d, out + x);
+         Store(right, d, out + x + 1);
+ #else
+-        Store(InterleaveLower(left, right), d, out + x);
+-        Store(InterleaveUpper(left, right), d, out + x + Lanes(d));
++        Store(InterleaveLower(d, left, right), d, out + x);
++        Store(InterleaveUpper(d, left, right), d, out + x + Lanes(d));
+ #endif
+       }
+     }
+diff --git a/lib/jxl/dec_upsample.cc b/lib/jxl/dec_upsample.cc
+index 7277e4f..3cb3f36 100644
+--- a/lib/jxl/dec_upsample.cc
++++ b/lib/jxl/dec_upsample.cc
+@@ -176,8 +176,8 @@ void Upsample(const ImageF& src, const Rect& src_rect, ImageF* dst,
+         min = Min(LoadU(df, raw_min_row + sx + fx), min);
+         max = Max(LoadU(df, raw_max_row + sx + fx), max);
+       }
+-      min = MinOfLanes(min);
+-      max = MaxOfLanes(max);
++      min = MinOfLanes(df, min);
++      max = MaxOfLanes(df, max);
+       for (size_t lx = 0; lx < N; lx += V) {
+         StoreU(min, df, min_row + N * sx + lx);
+         StoreU(max, df, max_row + N * sx + lx);
+diff --git a/lib/jxl/enc_ac_strategy.cc b/lib/jxl/enc_ac_strategy.cc
+index bc50465..c0ed68f 100644
+--- a/lib/jxl/enc_ac_strategy.cc
++++ b/lib/jxl/enc_ac_strategy.cc
+@@ -429,8 +429,8 @@ float EstimateEntropy(const AcStrategy& acs, size_t x, size_t y,
+     }
+     entropy_v += nzeros_v * cost1;
+ 
+-    entropy += GetLane(SumOfLanes(entropy_v));
+-    size_t num_nzeros = GetLane(SumOfLanes(nzeros_v));
++    entropy += GetLane(SumOfLanes(df, entropy_v));
++    size_t num_nzeros = GetLane(SumOfLanes(df, nzeros_v));
+     // Add #bit of num_nonzeros, as an estimate of the cost for encoding the
+     // number of non-zeros of the block.
+     size_t nbits = CeilLog2Nonzero(num_nzeros + 1) + 1;
+@@ -441,9 +441,9 @@ float EstimateEntropy(const AcStrategy& acs, size_t x, size_t y,
+   float ret =
+       entropy +
+       masking *
+-          ((config.info_loss_multiplier * GetLane(SumOfLanes(info_loss))) +
++          ((config.info_loss_multiplier * GetLane(SumOfLanes(df, info_loss))) +
+            (config.info_loss_multiplier2 *
+-            sqrt(num_blocks * GetLane(SumOfLanes(info_loss2)))));
++            sqrt(num_blocks * GetLane(SumOfLanes(df, info_loss2)))));
+   return ret;
+ }
+ 
+diff --git a/lib/jxl/enc_adaptive_quantization.cc b/lib/jxl/enc_adaptive_quantization.cc
+index f53393f..24f3d53 100644
+--- a/lib/jxl/enc_adaptive_quantization.cc
++++ b/lib/jxl/enc_adaptive_quantization.cc
+@@ -189,7 +189,7 @@ V GammaModulation(const D d, const size_t x, const size_t y,
+       overall_ratio += avg_ratio;
+     }
+   }
+-  overall_ratio = SumOfLanes(overall_ratio);
++  overall_ratio = SumOfLanes(d, overall_ratio);
+   overall_ratio *= Set(d, 1.0f / 64);
+   // ideally -1.0, but likely optimal correction adds some entropy, so slightly
+   // less than that.
+@@ -246,12 +246,12 @@ V ColorModulation(const D d, const size_t x, const size_t y,
+   // blue we consider as if it was fully red or blue.
+   static const float ratio = 30.610615782142737f;  // out of 64 pixels.
+ 
+-  auto overall_red_coverage = SumOfLanes(red_coverage);
++  auto overall_red_coverage = SumOfLanes(d, red_coverage);
+   overall_red_coverage =
+       Min(overall_red_coverage, Set(d, ratio * kRedRampLength));
+   overall_red_coverage *= Set(d, red_strength / ratio);
+ 
+-  auto overall_blue_coverage = SumOfLanes(blue_coverage);
++  auto overall_blue_coverage = SumOfLanes(d, blue_coverage);
+   overall_blue_coverage =
+       Min(overall_blue_coverage, Set(d, ratio * kBlueRampLength));
+   overall_blue_coverage *= Set(d, blue_strength / ratio);
+@@ -295,7 +295,7 @@ V HfModulation(const D d, const size_t x, const size_t y, const ImageF& xyb,
+     }
+   }
+ 
+-  sum = SumOfLanes(sum);
++  sum = SumOfLanes(d, sum);
+   return MulAdd(sum, Set(d, -2.0052193233688884f / 112), out_val);
+ }
+ 
+diff --git a/lib/jxl/enc_ar_control_field.cc b/lib/jxl/enc_ar_control_field.cc
+index f43340e..f8025ac 100644
+--- a/lib/jxl/enc_ar_control_field.cc
++++ b/lib/jxl/enc_ar_control_field.cc
+@@ -157,7 +157,7 @@ void ProcessTile(const Image3F& opsin, PassesEncoderState* enc_state,
+           sum += LoadU(df4, rows_in[iy] + x * 4 + ix + 2);
+         }
+       }
+-      row_out[x] = GetLane(Sqrt(SumOfLanes(sum))) * (1.0f / 4.0f);
++      row_out[x] = GetLane(Sqrt(SumOfLanes(df4, sum))) * (1.0f / 4.0f);
+     }
+   }
+   // Indexing iy and ix is a bit tricky as we include a 2 pixel border
+@@ -193,7 +193,7 @@ void ProcessTile(const Image3F& opsin, PassesEncoderState* enc_state,
+             sum += Load(df4, rows_in[iy] + sx + ix);
+           }
+         }
+-        row_out[x] = GetLane(Sqrt(SumOfLanes(sum))) * (1.0f / 4.0f);
++        row_out[x] = GetLane(Sqrt(SumOfLanes(df4, sum))) * (1.0f / 4.0f);
+       } else {
+         float sum = 0;
+         for (size_t iy = sy; iy < ey; iy++) {
+diff --git a/lib/jxl/enc_butteraugli_pnorm.cc b/lib/jxl/enc_butteraugli_pnorm.cc
+index 7c3fb9c..90b0440 100644
+--- a/lib/jxl/enc_butteraugli_pnorm.cc
++++ b/lib/jxl/enc_butteraugli_pnorm.cc
+@@ -95,13 +95,13 @@ double ComputeDistanceP(const ImageF& distmap, const ButteraugliParams& params,
+     }
+     double v = 0;
+     v += pow(
+-        onePerPixels * (sum1[0] + GetLane(SumOfLanes(Load(d, sum_totals0)))),
++        onePerPixels * (sum1[0] + GetLane(SumOfLanes(d, Load(d, sum_totals0)))),
+         1.0 / (p * 1.0));
+     v += pow(
+-        onePerPixels * (sum1[1] + GetLane(SumOfLanes(Load(d, sum_totals1)))),
++        onePerPixels * (sum1[1] + GetLane(SumOfLanes(d, Load(d, sum_totals1)))),
+         1.0 / (p * 2.0));
+     v += pow(
+-        onePerPixels * (sum1[2] + GetLane(SumOfLanes(Load(d, sum_totals2)))),
++        onePerPixels * (sum1[2] + GetLane(SumOfLanes(d, Load(d, sum_totals2)))),
+         1.0 / (p * 4.0));
+     v /= 3.0;
+     return v;
+diff --git a/lib/jxl/enc_chroma_from_luma.cc b/lib/jxl/enc_chroma_from_luma.cc
+index e5c3f38..370595c 100644
+--- a/lib/jxl/enc_chroma_from_luma.cc
++++ b/lib/jxl/enc_chroma_from_luma.cc
+@@ -91,9 +91,9 @@ struct CFLFunction {
+       fdme_v += IfThenElse(av >= thres, zero, dme);
+     }
+ 
+-    *fpeps = first_derivative_peps + GetLane(SumOfLanes(fdpe_v));
+-    *fmeps = first_derivative_meps + GetLane(SumOfLanes(fdme_v));
+-    return first_derivative + GetLane(SumOfLanes(fd_v));
++    *fpeps = first_derivative_peps + GetLane(SumOfLanes(df, fdpe_v));
++    *fmeps = first_derivative_meps + GetLane(SumOfLanes(df, fdme_v));
++    return first_derivative + GetLane(SumOfLanes(df, fd_v));
+   }
+ 
+   const float* JXL_RESTRICT values_m;
+@@ -124,8 +124,8 @@ int32_t FindBestMultiplier(const float* values_m, const float* values_s,
+       cb = MulAdd(a, b, cb);
+     }
+     // + distance_mul * x^2 * num
+-    x = -GetLane(SumOfLanes(cb)) /
+-        (GetLane(SumOfLanes(ca)) + num * distance_mul * 0.5f);
++    x = -GetLane(SumOfLanes(df, cb)) /
++        (GetLane(SumOfLanes(df, ca)) + num * distance_mul * 0.5f);
+   } else {
+     constexpr float eps = 1;
+     constexpr float kClamp = 20.0f;
+diff --git a/lib/jxl/enc_cluster.cc b/lib/jxl/enc_cluster.cc
+index 1f12a29..8ae863c 100644
+--- a/lib/jxl/enc_cluster.cc
++++ b/lib/jxl/enc_cluster.cc
+@@ -49,7 +49,7 @@ void HistogramEntropy(const Histogram& a) {
+     const auto counts = LoadU(di, &a.data_[i]);
+     entropy_lanes += Entropy(ConvertTo(df, counts), inv_tot, total);
+   }
+-  a.entropy_ += GetLane(SumOfLanes(entropy_lanes));
++  a.entropy_ += GetLane(SumOfLanes(df, entropy_lanes));
+ }
+ 
+ float HistogramDistance(const Histogram& a, const Histogram& b) {
+@@ -71,7 +71,7 @@ float HistogramDistance(const Histogram& a, const Histogram& b) {
+     const auto counts = ConvertTo(df, a_counts + b_counts);
+     distance_lanes += Entropy(counts, inv_tot, total);
+   }
+-  const float total_distance = GetLane(SumOfLanes(distance_lanes));
++  const float total_distance = GetLane(SumOfLanes(df, distance_lanes));
+   return total_distance - a.entropy_ - b.entropy_;
+ }
+ 
+diff --git a/lib/jxl/enc_entropy_coder.cc b/lib/jxl/enc_entropy_coder.cc
+index 0946300..07fe5a0 100644
+--- a/lib/jxl/enc_entropy_coder.cc
++++ b/lib/jxl/enc_entropy_coder.cc
+@@ -86,7 +86,7 @@ int32_t NumNonZeroExceptLLF(const size_t cx, const size_t cy,
+ 
+   // We want area - sum_zero, add because neg_sum_zero is already negated.
+   const int32_t nzeros =
+-      int32_t(cx * cy * kDCTBlockSize) + GetLane(SumOfLanes(neg_sum_zero));
++      int32_t(cx * cy * kDCTBlockSize) + GetLane(SumOfLanes(di, neg_sum_zero));
+ 
+   const int32_t shifted_nzeros = static_cast<int32_t>(
+       (nzeros + covered_blocks - 1) >> log2_covered_blocks);
+@@ -135,7 +135,7 @@ int32_t NumNonZero8x8ExceptDC(const int32_t* JXL_RESTRICT block,
+ 
+   // We want 64 - sum_zero, add because neg_sum_zero is already negated.
+   const int32_t nzeros =
+-      int32_t(kDCTBlockSize) + GetLane(SumOfLanes(neg_sum_zero));
++      int32_t(kDCTBlockSize) + GetLane(SumOfLanes(di, neg_sum_zero));
+ 
+   *nzeros_pos = nzeros;
+ 
+diff --git a/lib/jxl/enc_fast_heuristics.cc b/lib/jxl/enc_fast_heuristics.cc
+index 16f7670..0551782 100644
+--- a/lib/jxl/enc_fast_heuristics.cc
++++ b/lib/jxl/enc_fast_heuristics.cc
+@@ -94,8 +94,8 @@ Status Heuristics(PassesEncoderState* enc_state,
+               cb = MulAdd(a, b, cb);
+             }
+           }
+-          float best =
+-              -GetLane(SumOfLanes(cb)) / (GetLane(SumOfLanes(ca)) + 1e-9f);
++          float best = -GetLane(SumOfLanes(df, cb)) /
++                       (GetLane(SumOfLanes(df, ca)) + 1e-9f);
+           int8_t& res = (c == 0 ? shared.cmap.ytox_map : shared.cmap.ytob_map)
+                             .Row(ty)[tx];
+           res = std::max(-128.0f, std::min(127.0f, roundf(best)));
+@@ -124,8 +124,8 @@ Status Heuristics(PassesEncoderState* enc_state,
+                 max = IfThenElse(max > nn, max, nn);
+               }
+             }
+-            row_out_avg[x] = GetLane(SumOfLanes(sum));
+-            row_out[x] = GetLane(MaxOfLanes(max));
++            row_out_avg[x] = GetLane(SumOfLanes(df4, sum));
++            row_out[x] = GetLane(MaxOfLanes(df4, max));
+           }
+         }
+       },
+diff --git a/lib/jxl/gauss_blur.cc b/lib/jxl/gauss_blur.cc
+index f9babe7..f24a74c 100644
+--- a/lib/jxl/gauss_blur.cc
++++ b/lib/jxl/gauss_blur.cc
+@@ -421,7 +421,7 @@ ImageF ConvolveXSampleAndTranspose(const ImageF& in,
+       for (int i = -r; i <= r; i += Lanes(df)) {
+         sum = MulAdd(LoadU(df, rowp + x + i), LoadU(df, kernelp + i), sum);
+       }
+-      out.Row(ox)[y] = GetLane(SumOfLanes(sum));
++      out.Row(ox)[y] = GetLane(SumOfLanes(df, sum));
+     }
+     for (; x < in.xsize(); x += res, ++ox) {
+       float sum = 0.0f;
+diff --git a/lib/jxl/modular/encoding/enc_ma.cc b/lib/jxl/modular/encoding/enc_ma.cc
+index 0e2eaac..d485129 100644
+--- a/lib/jxl/modular/encoding/enc_ma.cc
++++ b/lib/jxl/modular/encoding/enc_ma.cc
+@@ -84,7 +84,7 @@ float EstimateBits(const int32_t *counts, int32_t *rounded_counts,
+     bits_lanes -=
+         IfThenElse(counts_v == zero, zero, counts_v * BitCast(df, nbps));
+   }
+-  return GetLane(SumOfLanes(bits_lanes));
++  return GetLane(SumOfLanes(df, bits_lanes));
+ }
+ 
+ void MakeSplitNode(size_t pos, int property, int splitval, Predictor lpred,
+diff --git a/lib/jxl/rational_polynomial_test.cc b/lib/jxl/rational_polynomial_test.cc
+index 699afd0..f985eb0 100644
+--- a/lib/jxl/rational_polynomial_test.cc
++++ b/lib/jxl/rational_polynomial_test.cc
+@@ -51,7 +51,7 @@ struct EvalLog2 {
+     const HWY_FULL(int32_t) di;
+     const auto x_bits = BitCast(di, vx);
+     // Cannot handle negative numbers / NaN.
+-    JXL_DASSERT(AllTrue(Abs(x_bits) == x_bits));
++    JXL_DASSERT(AllTrue(di, Abs(x_bits) == x_bits));
+ 
+     // Range reduction to [-1/3, 1/3] - 3 integer, 2 float ops
+     const auto exp_bits = x_bits - Set(di, 0x3f2aaaab);  // = 2/3
+diff --git a/lib/jxl/splines.cc b/lib/jxl/splines.cc
+index 8653445..5dc2404 100644
+--- a/lib/jxl/splines.cc
++++ b/lib/jxl/splines.cc
+@@ -52,7 +52,7 @@ float ContinuousIDCT(const float dct[32], float t) {
+     auto local_res = LoadU(df, dct + i) * cos;
+     result = MulAdd(Set(df, square_root<2>::value), local_res, result);
+   }
+-  return GetLane(SumOfLanes(result));
++  return GetLane(SumOfLanes(df, result));
+ }
+ 
+ template <typename DF>
+diff --git a/lib/jxl/transpose-inl.h b/lib/jxl/transpose-inl.h
+index d12b129..4674420 100644
+--- a/lib/jxl/transpose-inl.h
++++ b/lib/jxl/transpose-inl.h
+@@ -74,50 +74,51 @@ JXL_INLINE_TRANSPOSE void GenericTransposeBlock(TransposeSimdTag<true>,
+   static_assert(COLS_or_0 % 8 == 0, "Invalid number of columns");
+   for (size_t n = 0; n < ROWS; n += 8) {
+     for (size_t m = 0; m < COLS; m += 8) {
+-      auto i0 = from.LoadPart(BlockDesc<8>(), n + 0, m + 0);
+-      auto i1 = from.LoadPart(BlockDesc<8>(), n + 1, m + 0);
+-      auto i2 = from.LoadPart(BlockDesc<8>(), n + 2, m + 0);
+-      auto i3 = from.LoadPart(BlockDesc<8>(), n + 3, m + 0);
+-      auto i4 = from.LoadPart(BlockDesc<8>(), n + 4, m + 0);
+-      auto i5 = from.LoadPart(BlockDesc<8>(), n + 5, m + 0);
+-      auto i6 = from.LoadPart(BlockDesc<8>(), n + 6, m + 0);
+-      auto i7 = from.LoadPart(BlockDesc<8>(), n + 7, m + 0);
++      const BlockDesc<8> d;
++      auto i0 = from.LoadPart(d, n + 0, m + 0);
++      auto i1 = from.LoadPart(d, n + 1, m + 0);
++      auto i2 = from.LoadPart(d, n + 2, m + 0);
++      auto i3 = from.LoadPart(d, n + 3, m + 0);
++      auto i4 = from.LoadPart(d, n + 4, m + 0);
++      auto i5 = from.LoadPart(d, n + 5, m + 0);
++      auto i6 = from.LoadPart(d, n + 6, m + 0);
++      auto i7 = from.LoadPart(d, n + 7, m + 0);
+       // Surprisingly, this straightforward implementation (24 cycles on port5)
+       // is faster than load128+insert and LoadDup128+ConcatUpperLower+blend.
+-      const auto q0 = InterleaveLower(i0, i2);
+-      const auto q1 = InterleaveLower(i1, i3);
+-      const auto q2 = InterleaveUpper(i0, i2);
+-      const auto q3 = InterleaveUpper(i1, i3);
+-      const auto q4 = InterleaveLower(i4, i6);
+-      const auto q5 = InterleaveLower(i5, i7);
+-      const auto q6 = InterleaveUpper(i4, i6);
+-      const auto q7 = InterleaveUpper(i5, i7);
+-
+-      const auto r0 = InterleaveLower(q0, q1);
+-      const auto r1 = InterleaveUpper(q0, q1);
+-      const auto r2 = InterleaveLower(q2, q3);
+-      const auto r3 = InterleaveUpper(q2, q3);
+-      const auto r4 = InterleaveLower(q4, q5);
+-      const auto r5 = InterleaveUpper(q4, q5);
+-      const auto r6 = InterleaveLower(q6, q7);
+-      const auto r7 = InterleaveUpper(q6, q7);
+-
+-      i0 = ConcatLowerLower(r4, r0);
+-      i1 = ConcatLowerLower(r5, r1);
+-      i2 = ConcatLowerLower(r6, r2);
+-      i3 = ConcatLowerLower(r7, r3);
+-      i4 = ConcatUpperUpper(r4, r0);
+-      i5 = ConcatUpperUpper(r5, r1);
+-      i6 = ConcatUpperUpper(r6, r2);
+-      i7 = ConcatUpperUpper(r7, r3);
+-      to.StorePart(BlockDesc<8>(), i0, m + 0, n + 0);
+-      to.StorePart(BlockDesc<8>(), i1, m + 1, n + 0);
+-      to.StorePart(BlockDesc<8>(), i2, m + 2, n + 0);
+-      to.StorePart(BlockDesc<8>(), i3, m + 3, n + 0);
+-      to.StorePart(BlockDesc<8>(), i4, m + 4, n + 0);
+-      to.StorePart(BlockDesc<8>(), i5, m + 5, n + 0);
+-      to.StorePart(BlockDesc<8>(), i6, m + 6, n + 0);
+-      to.StorePart(BlockDesc<8>(), i7, m + 7, n + 0);
++      const auto q0 = InterleaveLower(d, i0, i2);
++      const auto q1 = InterleaveLower(d, i1, i3);
++      const auto q2 = InterleaveUpper(d, i0, i2);
++      const auto q3 = InterleaveUpper(d, i1, i3);
++      const auto q4 = InterleaveLower(d, i4, i6);
++      const auto q5 = InterleaveLower(d, i5, i7);
++      const auto q6 = InterleaveUpper(d, i4, i6);
++      const auto q7 = InterleaveUpper(d, i5, i7);
++
++      const auto r0 = InterleaveLower(d, q0, q1);
++      const auto r1 = InterleaveUpper(d, q0, q1);
++      const auto r2 = InterleaveLower(d, q2, q3);
++      const auto r3 = InterleaveUpper(d, q2, q3);
++      const auto r4 = InterleaveLower(d, q4, q5);
++      const auto r5 = InterleaveUpper(d, q4, q5);
++      const auto r6 = InterleaveLower(d, q6, q7);
++      const auto r7 = InterleaveUpper(d, q6, q7);
++
++      i0 = ConcatLowerLower(d, r4, r0);
++      i1 = ConcatLowerLower(d, r5, r1);
++      i2 = ConcatLowerLower(d, r6, r2);
++      i3 = ConcatLowerLower(d, r7, r3);
++      i4 = ConcatUpperUpper(d, r4, r0);
++      i5 = ConcatUpperUpper(d, r5, r1);
++      i6 = ConcatUpperUpper(d, r6, r2);
++      i7 = ConcatUpperUpper(d, r7, r3);
++      to.StorePart(d, i0, m + 0, n + 0);
++      to.StorePart(d, i1, m + 1, n + 0);
++      to.StorePart(d, i2, m + 2, n + 0);
++      to.StorePart(d, i3, m + 3, n + 0);
++      to.StorePart(d, i4, m + 4, n + 0);
++      to.StorePart(d, i5, m + 5, n + 0);
++      to.StorePart(d, i6, m + 6, n + 0);
++      to.StorePart(d, i7, m + 7, n + 0);
+     }
+   }
+ }
+@@ -137,25 +138,26 @@ JXL_INLINE_TRANSPOSE void GenericTransposeBlock(TransposeSimdTag<true>,
+   static_assert(COLS_or_0 % 4 == 0, "Invalid number of columns");
+   for (size_t n = 0; n < ROWS; n += 4) {
+     for (size_t m = 0; m < COLS; m += 4) {
+-      const auto p0 = from.LoadPart(BlockDesc<4>(), n + 0, m + 0);
+-      const auto p1 = from.LoadPart(BlockDesc<4>(), n + 1, m + 0);
+-      const auto p2 = from.LoadPart(BlockDesc<4>(), n + 2, m + 0);
+-      const auto p3 = from.LoadPart(BlockDesc<4>(), n + 3, m + 0);
+-
+-      const auto q0 = InterleaveLower(p0, p2);
+-      const auto q1 = InterleaveLower(p1, p3);
+-      const auto q2 = InterleaveUpper(p0, p2);
+-      const auto q3 = InterleaveUpper(p1, p3);
+-
+-      const auto r0 = InterleaveLower(q0, q1);
+-      const auto r1 = InterleaveUpper(q0, q1);
+-      const auto r2 = InterleaveLower(q2, q3);
+-      const auto r3 = InterleaveUpper(q2, q3);
+-
+-      to.StorePart(BlockDesc<4>(), r0, m + 0, n + 0);
+-      to.StorePart(BlockDesc<4>(), r1, m + 1, n + 0);
+-      to.StorePart(BlockDesc<4>(), r2, m + 2, n + 0);
+-      to.StorePart(BlockDesc<4>(), r3, m + 3, n + 0);
++      const BlockDesc<4> d;
++      const auto p0 = from.LoadPart(d, n + 0, m + 0);
++      const auto p1 = from.LoadPart(d, n + 1, m + 0);
++      const auto p2 = from.LoadPart(d, n + 2, m + 0);
++      const auto p3 = from.LoadPart(d, n + 3, m + 0);
++
++      const auto q0 = InterleaveLower(d, p0, p2);
++      const auto q1 = InterleaveLower(d, p1, p3);
++      const auto q2 = InterleaveUpper(d, p0, p2);
++      const auto q3 = InterleaveUpper(d, p1, p3);
++
++      const auto r0 = InterleaveLower(d, q0, q1);
++      const auto r1 = InterleaveUpper(d, q0, q1);
++      const auto r2 = InterleaveLower(d, q2, q3);
++      const auto r3 = InterleaveUpper(d, q2, q3);
++
++      to.StorePart(d, r0, m + 0, n + 0);
++      to.StorePart(d, r1, m + 1, n + 0);
++      to.StorePart(d, r2, m + 2, n + 0);
++      to.StorePart(d, r3, m + 3, n + 0);
+     }
+   }
+ }
+diff --git a/lib/profiler/profiler.cc b/lib/profiler/profiler.cc
+index d21ee09..186ff06 100644
+--- a/lib/profiler/profiler.cc
++++ b/lib/profiler/profiler.cc
+@@ -139,7 +139,7 @@ class Results {
+   void AnalyzePackets(const Packet* HWY_RESTRICT packets,
+                       const size_t num_packets) {
+     // Ensures prior weakly-ordered streaming stores are globally visible.
+-    hwy::StoreFence();
++    hwy::FlushStream();
+ 
+     const uint64_t t0 = TicksBefore();
+ 
+@@ -372,12 +372,12 @@ void ThreadSpecific::ComputeOverhead() {
+       const size_t kReps = 10000;
+       // Analysis time should not be included => must fit within buffer.
+       HWY_ASSERT(kReps * 2 < max_packets_);
+-      hwy::StoreFence();
++      hwy::FlushStream();
+       const uint64_t t0 = TicksBefore();
+       for (size_t i = 0; i < kReps; ++i) {
+         PROFILER_ZONE("Dummy");
+       }
+-      hwy::StoreFence();
++      hwy::FlushStream();
+       const uint64_t t1 = TicksAfter();
+       HWY_ASSERT(num_packets_ + buffer_size_ == kReps * 2);
+       buffer_size_ = 0;
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..a64f06fe29ee
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,76 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=0.6.1
+revision=1
+build_style=cmake
+configure_args="-DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF
+ -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
+hostmakedepends="tar pkg-config asciidoc"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel
+ libopenexr-devel gdk-pixbuf-devel gimp-devel"
+checkdepends="gtest-devel xdg-utils"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="BSD-3-Clause, custom:Patent grant"
+homepage="https://jpeg.org/jpegxl/"
+_lodepng_hash=48e5364ef48ec2408f44c727657ac1b6703185f8
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/v${version}.tar.gz
+ https://github.com/lvandeve/lodepng/archive/${_lodepng_hash}.tar.gz>lodepng-${_lodepng_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="ccbd5a729d730152303be399f033b905e608309d5802d77a61a95faa092592c5
+ c47c48c77a205f1af484b7b5a847290af65de3ea6f15817aa27c5ec7cc5208fd
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="lodepng-${_lodepng_hash}.tar.gz
+ skcms-${_skcms_hash}.tar.gz"
+
+if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+	makedepends+=" libatomic-devel"
+	LIBS="-latomic"
+fi
+
+# Tests fail after building with 32-bit gcc (https://github.com/libjxl/libjxl/issues/1340)
+if [ "$CROSS_BUILD" -o "$XBPS_TARGET_MACHINE" = "i686" ]; then
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf lodepng-${_lodepng_hash}.tar.gz --strip-components=1 -C ${wrksrc}/third_party/lodepng
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+post_install() {
+	vlicense LICENSE
+	vlicense PATENTS
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="libjxl>=${version}_${revision} highway brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From a27925743327a20c24b69bb8930de153a2a052c8 Mon Sep 17 00:00:00 2001
From: Joshua <joshua@kraemer.link>
Date: Wed, 30 Mar 2022 21:23:16 +0200
Subject: [PATCH 3/3] kimageformats: enable JPEG XL support

---
 srcpkgs/kimageformats/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kimageformats/template b/srcpkgs/kimageformats/template
index bc8b9f09a2c6..fbed0a41746e 100644
--- a/srcpkgs/kimageformats/template
+++ b/srcpkgs/kimageformats/template
@@ -1,12 +1,12 @@
 # Template file for 'kimageformats'
 pkgname=kimageformats
 version=5.93.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKIMAGEFORMATS_HEIF=ON"
 hostmakedepends="kcoreaddons extra-cmake-modules qt5-qmake qt5-host-tools
  pkg-config"
-makedepends="karchive-devel libopenexr-devel libheif-devel"
+makedepends="karchive-devel libopenexr-devel libheif-devel libjxl-devel"
 short_desc="KDE Plugins to allow QImage to support extra file formats"
 maintainer="John <me@johnnynator.dev>"
 license="LGPL-2.0-or-later"

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR REVIEW] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (23 preceding siblings ...)
  2022-04-27 17:52 ` [PR PATCH] [Updated] " joshuakraemer
@ 2022-04-27 17:54 ` joshuakraemer
  2022-04-27 17:56 ` joshuakraemer
                   ` (39 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-04-27 17:54 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 288 bytes --]

New review comment by joshuakraemer on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#discussion_r860098399

Comment:
It would be more complicated because the third-party packages would still need to be moved to specific subdirectories after extraction.

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR REVIEW] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (24 preceding siblings ...)
  2022-04-27 17:54 ` [PR REVIEW] " joshuakraemer
@ 2022-04-27 17:56 ` joshuakraemer
  2022-04-27 18:17 ` tibequadorian
                   ` (38 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-04-27 17:56 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 257 bytes --]

New review comment by joshuakraemer on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#discussion_r860099539

Comment:
I have removed the two lines. They will likely be needed again though with the next major version (0.7).

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR REVIEW] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (25 preceding siblings ...)
  2022-04-27 17:56 ` joshuakraemer
@ 2022-04-27 18:17 ` tibequadorian
  2022-04-27 18:18 ` tibequadorian
                   ` (37 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: tibequadorian @ 2022-04-27 18:17 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 247 bytes --]

New review comment by tibequadorian on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#discussion_r860117004

Comment:
Why? I couldn't find a release tarball where the top directory doesn't match $pkgname-$version

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR REVIEW] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (26 preceding siblings ...)
  2022-04-27 18:17 ` tibequadorian
@ 2022-04-27 18:18 ` tibequadorian
  2022-04-27 18:57 ` [PR PATCH] [Updated] " joshuakraemer
                   ` (36 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: tibequadorian @ 2022-04-27 18:18 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 248 bytes --]

New review comment by tibequadorian on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#discussion_r860117004

Comment:
Why? I couldn't find an archive tarball where the top directory doesn't match $pkgname-$version

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR PATCH] [Updated] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (27 preceding siblings ...)
  2022-04-27 18:18 ` tibequadorian
@ 2022-04-27 18:57 ` joshuakraemer
  2022-04-27 19:03 ` [PR REVIEW] " joshuakraemer
                   ` (35 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-04-27 18:57 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

There is an updated pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 27190 bytes --]

From 54e1677a16df55cfb22872f065f6eef7c45551a0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-0.16.0

---
 srcpkgs/highway/template | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..a5c1bf284c68
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,17 @@
+# Template file for 'highway'
+pkgname=highway
+version=0.16.0
+revision=1
+build_style=cmake
+configure_args="-DHWY_SYSTEM_GTEST=ON"
+checkdepends="gtest-devel"
+short_desc="C++ library providing portable SIMD/vector intrinsics"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=746c9578446be6c5286e8846c5f0d4118c0c1f04219c401abadcb8a5f2051893
+
+if [ "$CROSS_BUILD" ]; then
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi

From 1968297c53a58958097f1a040ab4e28ee09e8b49 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.6.1

---
 common/shlibs                                 |   2 +
 srcpkgs/libjxl-devel                          |   1 +
 srcpkgs/libjxl-plugins                        |   1 +
 srcpkgs/libjxl-tools                          |   1 +
 .../deprecated_highway_functions.patch        | 459 ++++++++++++++++++
 srcpkgs/libjxl/template                       |  76 +++
 6 files changed, 540 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/patches/deprecated_highway_functions.patch
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index 60b4402c8bd2..efdeca8ad272 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4152,3 +4152,5 @@ librz_bin.so.0.3.4 rizin-0.3.4_1
 libaravis-0.8.so.0 libaravis-0.8.21_1
 libLimeSuite.so.20.10-1 LimeSuite-20.10.0_1
 libnvme.so.1 libnvme-1.0_1
+libjxl.so.0.6 libjxl-0.6.1_1
+libjxl_threads.so.0.6 libjxl-0.6.1_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/patches/deprecated_highway_functions.patch b/srcpkgs/libjxl/patches/deprecated_highway_functions.patch
new file mode 100644
index 000000000000..a775eb5a7c56
--- /dev/null
+++ b/srcpkgs/libjxl/patches/deprecated_highway_functions.patch
@@ -0,0 +1,459 @@
+diff --git a/lib/jxl/dec_reconstruct.cc b/lib/jxl/dec_reconstruct.cc
+index a1baef4..08279f8 100644
+--- a/lib/jxl/dec_reconstruct.cc
++++ b/lib/jxl/dec_reconstruct.cc
+@@ -357,8 +357,8 @@ void DoYCbCrUpsampling(size_t hs, size_t vs, ImageF* plane_in, const Rect& rect,
+         Store(left, d, out + x);
+         Store(right, d, out + x + 1);
+ #else
+-        Store(InterleaveLower(left, right), d, out + x);
+-        Store(InterleaveUpper(left, right), d, out + x + Lanes(d));
++        Store(InterleaveLower(d, left, right), d, out + x);
++        Store(InterleaveUpper(d, left, right), d, out + x + Lanes(d));
+ #endif
+       }
+     }
+diff --git a/lib/jxl/dec_upsample.cc b/lib/jxl/dec_upsample.cc
+index 7277e4f..3cb3f36 100644
+--- a/lib/jxl/dec_upsample.cc
++++ b/lib/jxl/dec_upsample.cc
+@@ -176,8 +176,8 @@ void Upsample(const ImageF& src, const Rect& src_rect, ImageF* dst,
+         min = Min(LoadU(df, raw_min_row + sx + fx), min);
+         max = Max(LoadU(df, raw_max_row + sx + fx), max);
+       }
+-      min = MinOfLanes(min);
+-      max = MaxOfLanes(max);
++      min = MinOfLanes(df, min);
++      max = MaxOfLanes(df, max);
+       for (size_t lx = 0; lx < N; lx += V) {
+         StoreU(min, df, min_row + N * sx + lx);
+         StoreU(max, df, max_row + N * sx + lx);
+diff --git a/lib/jxl/enc_ac_strategy.cc b/lib/jxl/enc_ac_strategy.cc
+index bc50465..c0ed68f 100644
+--- a/lib/jxl/enc_ac_strategy.cc
++++ b/lib/jxl/enc_ac_strategy.cc
+@@ -429,8 +429,8 @@ float EstimateEntropy(const AcStrategy& acs, size_t x, size_t y,
+     }
+     entropy_v += nzeros_v * cost1;
+ 
+-    entropy += GetLane(SumOfLanes(entropy_v));
+-    size_t num_nzeros = GetLane(SumOfLanes(nzeros_v));
++    entropy += GetLane(SumOfLanes(df, entropy_v));
++    size_t num_nzeros = GetLane(SumOfLanes(df, nzeros_v));
+     // Add #bit of num_nonzeros, as an estimate of the cost for encoding the
+     // number of non-zeros of the block.
+     size_t nbits = CeilLog2Nonzero(num_nzeros + 1) + 1;
+@@ -441,9 +441,9 @@ float EstimateEntropy(const AcStrategy& acs, size_t x, size_t y,
+   float ret =
+       entropy +
+       masking *
+-          ((config.info_loss_multiplier * GetLane(SumOfLanes(info_loss))) +
++          ((config.info_loss_multiplier * GetLane(SumOfLanes(df, info_loss))) +
+            (config.info_loss_multiplier2 *
+-            sqrt(num_blocks * GetLane(SumOfLanes(info_loss2)))));
++            sqrt(num_blocks * GetLane(SumOfLanes(df, info_loss2)))));
+   return ret;
+ }
+ 
+diff --git a/lib/jxl/enc_adaptive_quantization.cc b/lib/jxl/enc_adaptive_quantization.cc
+index f53393f..24f3d53 100644
+--- a/lib/jxl/enc_adaptive_quantization.cc
++++ b/lib/jxl/enc_adaptive_quantization.cc
+@@ -189,7 +189,7 @@ V GammaModulation(const D d, const size_t x, const size_t y,
+       overall_ratio += avg_ratio;
+     }
+   }
+-  overall_ratio = SumOfLanes(overall_ratio);
++  overall_ratio = SumOfLanes(d, overall_ratio);
+   overall_ratio *= Set(d, 1.0f / 64);
+   // ideally -1.0, but likely optimal correction adds some entropy, so slightly
+   // less than that.
+@@ -246,12 +246,12 @@ V ColorModulation(const D d, const size_t x, const size_t y,
+   // blue we consider as if it was fully red or blue.
+   static const float ratio = 30.610615782142737f;  // out of 64 pixels.
+ 
+-  auto overall_red_coverage = SumOfLanes(red_coverage);
++  auto overall_red_coverage = SumOfLanes(d, red_coverage);
+   overall_red_coverage =
+       Min(overall_red_coverage, Set(d, ratio * kRedRampLength));
+   overall_red_coverage *= Set(d, red_strength / ratio);
+ 
+-  auto overall_blue_coverage = SumOfLanes(blue_coverage);
++  auto overall_blue_coverage = SumOfLanes(d, blue_coverage);
+   overall_blue_coverage =
+       Min(overall_blue_coverage, Set(d, ratio * kBlueRampLength));
+   overall_blue_coverage *= Set(d, blue_strength / ratio);
+@@ -295,7 +295,7 @@ V HfModulation(const D d, const size_t x, const size_t y, const ImageF& xyb,
+     }
+   }
+ 
+-  sum = SumOfLanes(sum);
++  sum = SumOfLanes(d, sum);
+   return MulAdd(sum, Set(d, -2.0052193233688884f / 112), out_val);
+ }
+ 
+diff --git a/lib/jxl/enc_ar_control_field.cc b/lib/jxl/enc_ar_control_field.cc
+index f43340e..f8025ac 100644
+--- a/lib/jxl/enc_ar_control_field.cc
++++ b/lib/jxl/enc_ar_control_field.cc
+@@ -157,7 +157,7 @@ void ProcessTile(const Image3F& opsin, PassesEncoderState* enc_state,
+           sum += LoadU(df4, rows_in[iy] + x * 4 + ix + 2);
+         }
+       }
+-      row_out[x] = GetLane(Sqrt(SumOfLanes(sum))) * (1.0f / 4.0f);
++      row_out[x] = GetLane(Sqrt(SumOfLanes(df4, sum))) * (1.0f / 4.0f);
+     }
+   }
+   // Indexing iy and ix is a bit tricky as we include a 2 pixel border
+@@ -193,7 +193,7 @@ void ProcessTile(const Image3F& opsin, PassesEncoderState* enc_state,
+             sum += Load(df4, rows_in[iy] + sx + ix);
+           }
+         }
+-        row_out[x] = GetLane(Sqrt(SumOfLanes(sum))) * (1.0f / 4.0f);
++        row_out[x] = GetLane(Sqrt(SumOfLanes(df4, sum))) * (1.0f / 4.0f);
+       } else {
+         float sum = 0;
+         for (size_t iy = sy; iy < ey; iy++) {
+diff --git a/lib/jxl/enc_butteraugli_pnorm.cc b/lib/jxl/enc_butteraugli_pnorm.cc
+index 7c3fb9c..90b0440 100644
+--- a/lib/jxl/enc_butteraugli_pnorm.cc
++++ b/lib/jxl/enc_butteraugli_pnorm.cc
+@@ -95,13 +95,13 @@ double ComputeDistanceP(const ImageF& distmap, const ButteraugliParams& params,
+     }
+     double v = 0;
+     v += pow(
+-        onePerPixels * (sum1[0] + GetLane(SumOfLanes(Load(d, sum_totals0)))),
++        onePerPixels * (sum1[0] + GetLane(SumOfLanes(d, Load(d, sum_totals0)))),
+         1.0 / (p * 1.0));
+     v += pow(
+-        onePerPixels * (sum1[1] + GetLane(SumOfLanes(Load(d, sum_totals1)))),
++        onePerPixels * (sum1[1] + GetLane(SumOfLanes(d, Load(d, sum_totals1)))),
+         1.0 / (p * 2.0));
+     v += pow(
+-        onePerPixels * (sum1[2] + GetLane(SumOfLanes(Load(d, sum_totals2)))),
++        onePerPixels * (sum1[2] + GetLane(SumOfLanes(d, Load(d, sum_totals2)))),
+         1.0 / (p * 4.0));
+     v /= 3.0;
+     return v;
+diff --git a/lib/jxl/enc_chroma_from_luma.cc b/lib/jxl/enc_chroma_from_luma.cc
+index e5c3f38..370595c 100644
+--- a/lib/jxl/enc_chroma_from_luma.cc
++++ b/lib/jxl/enc_chroma_from_luma.cc
+@@ -91,9 +91,9 @@ struct CFLFunction {
+       fdme_v += IfThenElse(av >= thres, zero, dme);
+     }
+ 
+-    *fpeps = first_derivative_peps + GetLane(SumOfLanes(fdpe_v));
+-    *fmeps = first_derivative_meps + GetLane(SumOfLanes(fdme_v));
+-    return first_derivative + GetLane(SumOfLanes(fd_v));
++    *fpeps = first_derivative_peps + GetLane(SumOfLanes(df, fdpe_v));
++    *fmeps = first_derivative_meps + GetLane(SumOfLanes(df, fdme_v));
++    return first_derivative + GetLane(SumOfLanes(df, fd_v));
+   }
+ 
+   const float* JXL_RESTRICT values_m;
+@@ -124,8 +124,8 @@ int32_t FindBestMultiplier(const float* values_m, const float* values_s,
+       cb = MulAdd(a, b, cb);
+     }
+     // + distance_mul * x^2 * num
+-    x = -GetLane(SumOfLanes(cb)) /
+-        (GetLane(SumOfLanes(ca)) + num * distance_mul * 0.5f);
++    x = -GetLane(SumOfLanes(df, cb)) /
++        (GetLane(SumOfLanes(df, ca)) + num * distance_mul * 0.5f);
+   } else {
+     constexpr float eps = 1;
+     constexpr float kClamp = 20.0f;
+diff --git a/lib/jxl/enc_cluster.cc b/lib/jxl/enc_cluster.cc
+index 1f12a29..8ae863c 100644
+--- a/lib/jxl/enc_cluster.cc
++++ b/lib/jxl/enc_cluster.cc
+@@ -49,7 +49,7 @@ void HistogramEntropy(const Histogram& a) {
+     const auto counts = LoadU(di, &a.data_[i]);
+     entropy_lanes += Entropy(ConvertTo(df, counts), inv_tot, total);
+   }
+-  a.entropy_ += GetLane(SumOfLanes(entropy_lanes));
++  a.entropy_ += GetLane(SumOfLanes(df, entropy_lanes));
+ }
+ 
+ float HistogramDistance(const Histogram& a, const Histogram& b) {
+@@ -71,7 +71,7 @@ float HistogramDistance(const Histogram& a, const Histogram& b) {
+     const auto counts = ConvertTo(df, a_counts + b_counts);
+     distance_lanes += Entropy(counts, inv_tot, total);
+   }
+-  const float total_distance = GetLane(SumOfLanes(distance_lanes));
++  const float total_distance = GetLane(SumOfLanes(df, distance_lanes));
+   return total_distance - a.entropy_ - b.entropy_;
+ }
+ 
+diff --git a/lib/jxl/enc_entropy_coder.cc b/lib/jxl/enc_entropy_coder.cc
+index 0946300..07fe5a0 100644
+--- a/lib/jxl/enc_entropy_coder.cc
++++ b/lib/jxl/enc_entropy_coder.cc
+@@ -86,7 +86,7 @@ int32_t NumNonZeroExceptLLF(const size_t cx, const size_t cy,
+ 
+   // We want area - sum_zero, add because neg_sum_zero is already negated.
+   const int32_t nzeros =
+-      int32_t(cx * cy * kDCTBlockSize) + GetLane(SumOfLanes(neg_sum_zero));
++      int32_t(cx * cy * kDCTBlockSize) + GetLane(SumOfLanes(di, neg_sum_zero));
+ 
+   const int32_t shifted_nzeros = static_cast<int32_t>(
+       (nzeros + covered_blocks - 1) >> log2_covered_blocks);
+@@ -135,7 +135,7 @@ int32_t NumNonZero8x8ExceptDC(const int32_t* JXL_RESTRICT block,
+ 
+   // We want 64 - sum_zero, add because neg_sum_zero is already negated.
+   const int32_t nzeros =
+-      int32_t(kDCTBlockSize) + GetLane(SumOfLanes(neg_sum_zero));
++      int32_t(kDCTBlockSize) + GetLane(SumOfLanes(di, neg_sum_zero));
+ 
+   *nzeros_pos = nzeros;
+ 
+diff --git a/lib/jxl/enc_fast_heuristics.cc b/lib/jxl/enc_fast_heuristics.cc
+index 16f7670..0551782 100644
+--- a/lib/jxl/enc_fast_heuristics.cc
++++ b/lib/jxl/enc_fast_heuristics.cc
+@@ -94,8 +94,8 @@ Status Heuristics(PassesEncoderState* enc_state,
+               cb = MulAdd(a, b, cb);
+             }
+           }
+-          float best =
+-              -GetLane(SumOfLanes(cb)) / (GetLane(SumOfLanes(ca)) + 1e-9f);
++          float best = -GetLane(SumOfLanes(df, cb)) /
++                       (GetLane(SumOfLanes(df, ca)) + 1e-9f);
+           int8_t& res = (c == 0 ? shared.cmap.ytox_map : shared.cmap.ytob_map)
+                             .Row(ty)[tx];
+           res = std::max(-128.0f, std::min(127.0f, roundf(best)));
+@@ -124,8 +124,8 @@ Status Heuristics(PassesEncoderState* enc_state,
+                 max = IfThenElse(max > nn, max, nn);
+               }
+             }
+-            row_out_avg[x] = GetLane(SumOfLanes(sum));
+-            row_out[x] = GetLane(MaxOfLanes(max));
++            row_out_avg[x] = GetLane(SumOfLanes(df4, sum));
++            row_out[x] = GetLane(MaxOfLanes(df4, max));
+           }
+         }
+       },
+diff --git a/lib/jxl/gauss_blur.cc b/lib/jxl/gauss_blur.cc
+index f9babe7..f24a74c 100644
+--- a/lib/jxl/gauss_blur.cc
++++ b/lib/jxl/gauss_blur.cc
+@@ -421,7 +421,7 @@ ImageF ConvolveXSampleAndTranspose(const ImageF& in,
+       for (int i = -r; i <= r; i += Lanes(df)) {
+         sum = MulAdd(LoadU(df, rowp + x + i), LoadU(df, kernelp + i), sum);
+       }
+-      out.Row(ox)[y] = GetLane(SumOfLanes(sum));
++      out.Row(ox)[y] = GetLane(SumOfLanes(df, sum));
+     }
+     for (; x < in.xsize(); x += res, ++ox) {
+       float sum = 0.0f;
+diff --git a/lib/jxl/modular/encoding/enc_ma.cc b/lib/jxl/modular/encoding/enc_ma.cc
+index 0e2eaac..d485129 100644
+--- a/lib/jxl/modular/encoding/enc_ma.cc
++++ b/lib/jxl/modular/encoding/enc_ma.cc
+@@ -84,7 +84,7 @@ float EstimateBits(const int32_t *counts, int32_t *rounded_counts,
+     bits_lanes -=
+         IfThenElse(counts_v == zero, zero, counts_v * BitCast(df, nbps));
+   }
+-  return GetLane(SumOfLanes(bits_lanes));
++  return GetLane(SumOfLanes(df, bits_lanes));
+ }
+ 
+ void MakeSplitNode(size_t pos, int property, int splitval, Predictor lpred,
+diff --git a/lib/jxl/rational_polynomial_test.cc b/lib/jxl/rational_polynomial_test.cc
+index 699afd0..f985eb0 100644
+--- a/lib/jxl/rational_polynomial_test.cc
++++ b/lib/jxl/rational_polynomial_test.cc
+@@ -51,7 +51,7 @@ struct EvalLog2 {
+     const HWY_FULL(int32_t) di;
+     const auto x_bits = BitCast(di, vx);
+     // Cannot handle negative numbers / NaN.
+-    JXL_DASSERT(AllTrue(Abs(x_bits) == x_bits));
++    JXL_DASSERT(AllTrue(di, Abs(x_bits) == x_bits));
+ 
+     // Range reduction to [-1/3, 1/3] - 3 integer, 2 float ops
+     const auto exp_bits = x_bits - Set(di, 0x3f2aaaab);  // = 2/3
+diff --git a/lib/jxl/splines.cc b/lib/jxl/splines.cc
+index 8653445..5dc2404 100644
+--- a/lib/jxl/splines.cc
++++ b/lib/jxl/splines.cc
+@@ -52,7 +52,7 @@ float ContinuousIDCT(const float dct[32], float t) {
+     auto local_res = LoadU(df, dct + i) * cos;
+     result = MulAdd(Set(df, square_root<2>::value), local_res, result);
+   }
+-  return GetLane(SumOfLanes(result));
++  return GetLane(SumOfLanes(df, result));
+ }
+ 
+ template <typename DF>
+diff --git a/lib/jxl/transpose-inl.h b/lib/jxl/transpose-inl.h
+index d12b129..4674420 100644
+--- a/lib/jxl/transpose-inl.h
++++ b/lib/jxl/transpose-inl.h
+@@ -74,50 +74,51 @@ JXL_INLINE_TRANSPOSE void GenericTransposeBlock(TransposeSimdTag<true>,
+   static_assert(COLS_or_0 % 8 == 0, "Invalid number of columns");
+   for (size_t n = 0; n < ROWS; n += 8) {
+     for (size_t m = 0; m < COLS; m += 8) {
+-      auto i0 = from.LoadPart(BlockDesc<8>(), n + 0, m + 0);
+-      auto i1 = from.LoadPart(BlockDesc<8>(), n + 1, m + 0);
+-      auto i2 = from.LoadPart(BlockDesc<8>(), n + 2, m + 0);
+-      auto i3 = from.LoadPart(BlockDesc<8>(), n + 3, m + 0);
+-      auto i4 = from.LoadPart(BlockDesc<8>(), n + 4, m + 0);
+-      auto i5 = from.LoadPart(BlockDesc<8>(), n + 5, m + 0);
+-      auto i6 = from.LoadPart(BlockDesc<8>(), n + 6, m + 0);
+-      auto i7 = from.LoadPart(BlockDesc<8>(), n + 7, m + 0);
++      const BlockDesc<8> d;
++      auto i0 = from.LoadPart(d, n + 0, m + 0);
++      auto i1 = from.LoadPart(d, n + 1, m + 0);
++      auto i2 = from.LoadPart(d, n + 2, m + 0);
++      auto i3 = from.LoadPart(d, n + 3, m + 0);
++      auto i4 = from.LoadPart(d, n + 4, m + 0);
++      auto i5 = from.LoadPart(d, n + 5, m + 0);
++      auto i6 = from.LoadPart(d, n + 6, m + 0);
++      auto i7 = from.LoadPart(d, n + 7, m + 0);
+       // Surprisingly, this straightforward implementation (24 cycles on port5)
+       // is faster than load128+insert and LoadDup128+ConcatUpperLower+blend.
+-      const auto q0 = InterleaveLower(i0, i2);
+-      const auto q1 = InterleaveLower(i1, i3);
+-      const auto q2 = InterleaveUpper(i0, i2);
+-      const auto q3 = InterleaveUpper(i1, i3);
+-      const auto q4 = InterleaveLower(i4, i6);
+-      const auto q5 = InterleaveLower(i5, i7);
+-      const auto q6 = InterleaveUpper(i4, i6);
+-      const auto q7 = InterleaveUpper(i5, i7);
+-
+-      const auto r0 = InterleaveLower(q0, q1);
+-      const auto r1 = InterleaveUpper(q0, q1);
+-      const auto r2 = InterleaveLower(q2, q3);
+-      const auto r3 = InterleaveUpper(q2, q3);
+-      const auto r4 = InterleaveLower(q4, q5);
+-      const auto r5 = InterleaveUpper(q4, q5);
+-      const auto r6 = InterleaveLower(q6, q7);
+-      const auto r7 = InterleaveUpper(q6, q7);
+-
+-      i0 = ConcatLowerLower(r4, r0);
+-      i1 = ConcatLowerLower(r5, r1);
+-      i2 = ConcatLowerLower(r6, r2);
+-      i3 = ConcatLowerLower(r7, r3);
+-      i4 = ConcatUpperUpper(r4, r0);
+-      i5 = ConcatUpperUpper(r5, r1);
+-      i6 = ConcatUpperUpper(r6, r2);
+-      i7 = ConcatUpperUpper(r7, r3);
+-      to.StorePart(BlockDesc<8>(), i0, m + 0, n + 0);
+-      to.StorePart(BlockDesc<8>(), i1, m + 1, n + 0);
+-      to.StorePart(BlockDesc<8>(), i2, m + 2, n + 0);
+-      to.StorePart(BlockDesc<8>(), i3, m + 3, n + 0);
+-      to.StorePart(BlockDesc<8>(), i4, m + 4, n + 0);
+-      to.StorePart(BlockDesc<8>(), i5, m + 5, n + 0);
+-      to.StorePart(BlockDesc<8>(), i6, m + 6, n + 0);
+-      to.StorePart(BlockDesc<8>(), i7, m + 7, n + 0);
++      const auto q0 = InterleaveLower(d, i0, i2);
++      const auto q1 = InterleaveLower(d, i1, i3);
++      const auto q2 = InterleaveUpper(d, i0, i2);
++      const auto q3 = InterleaveUpper(d, i1, i3);
++      const auto q4 = InterleaveLower(d, i4, i6);
++      const auto q5 = InterleaveLower(d, i5, i7);
++      const auto q6 = InterleaveUpper(d, i4, i6);
++      const auto q7 = InterleaveUpper(d, i5, i7);
++
++      const auto r0 = InterleaveLower(d, q0, q1);
++      const auto r1 = InterleaveUpper(d, q0, q1);
++      const auto r2 = InterleaveLower(d, q2, q3);
++      const auto r3 = InterleaveUpper(d, q2, q3);
++      const auto r4 = InterleaveLower(d, q4, q5);
++      const auto r5 = InterleaveUpper(d, q4, q5);
++      const auto r6 = InterleaveLower(d, q6, q7);
++      const auto r7 = InterleaveUpper(d, q6, q7);
++
++      i0 = ConcatLowerLower(d, r4, r0);
++      i1 = ConcatLowerLower(d, r5, r1);
++      i2 = ConcatLowerLower(d, r6, r2);
++      i3 = ConcatLowerLower(d, r7, r3);
++      i4 = ConcatUpperUpper(d, r4, r0);
++      i5 = ConcatUpperUpper(d, r5, r1);
++      i6 = ConcatUpperUpper(d, r6, r2);
++      i7 = ConcatUpperUpper(d, r7, r3);
++      to.StorePart(d, i0, m + 0, n + 0);
++      to.StorePart(d, i1, m + 1, n + 0);
++      to.StorePart(d, i2, m + 2, n + 0);
++      to.StorePart(d, i3, m + 3, n + 0);
++      to.StorePart(d, i4, m + 4, n + 0);
++      to.StorePart(d, i5, m + 5, n + 0);
++      to.StorePart(d, i6, m + 6, n + 0);
++      to.StorePart(d, i7, m + 7, n + 0);
+     }
+   }
+ }
+@@ -137,25 +138,26 @@ JXL_INLINE_TRANSPOSE void GenericTransposeBlock(TransposeSimdTag<true>,
+   static_assert(COLS_or_0 % 4 == 0, "Invalid number of columns");
+   for (size_t n = 0; n < ROWS; n += 4) {
+     for (size_t m = 0; m < COLS; m += 4) {
+-      const auto p0 = from.LoadPart(BlockDesc<4>(), n + 0, m + 0);
+-      const auto p1 = from.LoadPart(BlockDesc<4>(), n + 1, m + 0);
+-      const auto p2 = from.LoadPart(BlockDesc<4>(), n + 2, m + 0);
+-      const auto p3 = from.LoadPart(BlockDesc<4>(), n + 3, m + 0);
+-
+-      const auto q0 = InterleaveLower(p0, p2);
+-      const auto q1 = InterleaveLower(p1, p3);
+-      const auto q2 = InterleaveUpper(p0, p2);
+-      const auto q3 = InterleaveUpper(p1, p3);
+-
+-      const auto r0 = InterleaveLower(q0, q1);
+-      const auto r1 = InterleaveUpper(q0, q1);
+-      const auto r2 = InterleaveLower(q2, q3);
+-      const auto r3 = InterleaveUpper(q2, q3);
+-
+-      to.StorePart(BlockDesc<4>(), r0, m + 0, n + 0);
+-      to.StorePart(BlockDesc<4>(), r1, m + 1, n + 0);
+-      to.StorePart(BlockDesc<4>(), r2, m + 2, n + 0);
+-      to.StorePart(BlockDesc<4>(), r3, m + 3, n + 0);
++      const BlockDesc<4> d;
++      const auto p0 = from.LoadPart(d, n + 0, m + 0);
++      const auto p1 = from.LoadPart(d, n + 1, m + 0);
++      const auto p2 = from.LoadPart(d, n + 2, m + 0);
++      const auto p3 = from.LoadPart(d, n + 3, m + 0);
++
++      const auto q0 = InterleaveLower(d, p0, p2);
++      const auto q1 = InterleaveLower(d, p1, p3);
++      const auto q2 = InterleaveUpper(d, p0, p2);
++      const auto q3 = InterleaveUpper(d, p1, p3);
++
++      const auto r0 = InterleaveLower(d, q0, q1);
++      const auto r1 = InterleaveUpper(d, q0, q1);
++      const auto r2 = InterleaveLower(d, q2, q3);
++      const auto r3 = InterleaveUpper(d, q2, q3);
++
++      to.StorePart(d, r0, m + 0, n + 0);
++      to.StorePart(d, r1, m + 1, n + 0);
++      to.StorePart(d, r2, m + 2, n + 0);
++      to.StorePart(d, r3, m + 3, n + 0);
+     }
+   }
+ }
+diff --git a/lib/profiler/profiler.cc b/lib/profiler/profiler.cc
+index d21ee09..186ff06 100644
+--- a/lib/profiler/profiler.cc
++++ b/lib/profiler/profiler.cc
+@@ -139,7 +139,7 @@ class Results {
+   void AnalyzePackets(const Packet* HWY_RESTRICT packets,
+                       const size_t num_packets) {
+     // Ensures prior weakly-ordered streaming stores are globally visible.
+-    hwy::StoreFence();
++    hwy::FlushStream();
+ 
+     const uint64_t t0 = TicksBefore();
+ 
+@@ -372,12 +372,12 @@ void ThreadSpecific::ComputeOverhead() {
+       const size_t kReps = 10000;
+       // Analysis time should not be included => must fit within buffer.
+       HWY_ASSERT(kReps * 2 < max_packets_);
+-      hwy::StoreFence();
++      hwy::FlushStream();
+       const uint64_t t0 = TicksBefore();
+       for (size_t i = 0; i < kReps; ++i) {
+         PROFILER_ZONE("Dummy");
+       }
+-      hwy::StoreFence();
++      hwy::FlushStream();
+       const uint64_t t1 = TicksAfter();
+       HWY_ASSERT(num_packets_ + buffer_size_ == kReps * 2);
+       buffer_size_ = 0;
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..fb9807463a12
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,76 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=0.6.1
+revision=1
+build_style=cmake
+configure_args="-DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF
+ -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
+hostmakedepends="tar pkg-config asciidoc"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel
+ libopenexr-devel gdk-pixbuf-devel gimp-devel gtest-devel"
+checkdepends="xdg-utils"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="BSD-3-Clause, custom:Patent grant"
+homepage="https://jpeg.org/jpegxl/"
+_lodepng_hash=48e5364ef48ec2408f44c727657ac1b6703185f8
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/v${version}.tar.gz
+ https://github.com/lvandeve/lodepng/archive/${_lodepng_hash}.tar.gz>lodepng-${_lodepng_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="ccbd5a729d730152303be399f033b905e608309d5802d77a61a95faa092592c5
+ c47c48c77a205f1af484b7b5a847290af65de3ea6f15817aa27c5ec7cc5208fd
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="lodepng-${_lodepng_hash}.tar.gz
+ skcms-${_skcms_hash}.tar.gz"
+
+if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+	makedepends+=" libatomic-devel"
+	LIBS="-latomic"
+fi
+
+# Tests fail after building with 32-bit gcc (https://github.com/libjxl/libjxl/issues/1340)
+if [ "$CROSS_BUILD" -o "$XBPS_TARGET_MACHINE" = "i686" ]; then
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf lodepng-${_lodepng_hash}.tar.gz --strip-components=1 -C ${wrksrc}/third_party/lodepng
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+post_install() {
+	vlicense LICENSE
+	vlicense PATENTS
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="libjxl>=${version}_${revision} highway brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From 43a8ce519f7893786aa68a75bcd43a0ca79e904b Mon Sep 17 00:00:00 2001
From: Joshua <joshua@kraemer.link>
Date: Wed, 30 Mar 2022 21:23:16 +0200
Subject: [PATCH 3/3] kimageformats: enable JPEG XL support

---
 srcpkgs/kimageformats/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kimageformats/template b/srcpkgs/kimageformats/template
index bc8b9f09a2c6..fbed0a41746e 100644
--- a/srcpkgs/kimageformats/template
+++ b/srcpkgs/kimageformats/template
@@ -1,12 +1,12 @@
 # Template file for 'kimageformats'
 pkgname=kimageformats
 version=5.93.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKIMAGEFORMATS_HEIF=ON"
 hostmakedepends="kcoreaddons extra-cmake-modules qt5-qmake qt5-host-tools
  pkg-config"
-makedepends="karchive-devel libopenexr-devel libheif-devel"
+makedepends="karchive-devel libopenexr-devel libheif-devel libjxl-devel"
 short_desc="KDE Plugins to allow QImage to support extra file formats"
 maintainer="John <me@johnnynator.dev>"
 license="LGPL-2.0-or-later"

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR REVIEW] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (28 preceding siblings ...)
  2022-04-27 18:57 ` [PR PATCH] [Updated] " joshuakraemer
@ 2022-04-27 19:03 ` joshuakraemer
  2022-05-24 18:13 ` tibequadorian
                   ` (34 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-04-27 19:03 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 247 bytes --]

New review comment by joshuakraemer on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#discussion_r860152507

Comment:
Sorry, it seems you're right, I don't know why I had a problem with one of the older versions.

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (29 preceding siblings ...)
  2022-04-27 19:03 ` [PR REVIEW] " joshuakraemer
@ 2022-05-24 18:13 ` tibequadorian
  2022-05-30 14:18 ` [PR PATCH] [Updated] " joshuakraemer
                   ` (33 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: tibequadorian @ 2022-05-24 18:13 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 231 bytes --]

New comment by tibequadorian on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#issuecomment-1136282438

Comment:
@joshuakraemer can you resolve conflicts?
@paper42 do you think this is mergeable?

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR PATCH] [Updated] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (30 preceding siblings ...)
  2022-05-24 18:13 ` tibequadorian
@ 2022-05-30 14:18 ` joshuakraemer
  2022-05-30 14:52 ` joshuakraemer
                   ` (32 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-05-30 14:18 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

There is an updated pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 27170 bytes --]

From 371a5113252622dfdc56b950601aeb36f96156c4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-0.16.0

---
 srcpkgs/highway/template | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..a5c1bf284c68
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,17 @@
+# Template file for 'highway'
+pkgname=highway
+version=0.16.0
+revision=1
+build_style=cmake
+configure_args="-DHWY_SYSTEM_GTEST=ON"
+checkdepends="gtest-devel"
+short_desc="C++ library providing portable SIMD/vector intrinsics"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=746c9578446be6c5286e8846c5f0d4118c0c1f04219c401abadcb8a5f2051893
+
+if [ "$CROSS_BUILD" ]; then
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi

From 1f74574a34a183760b6208bcae6be3c2b999e9e3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.6.1

---
 common/shlibs                                 |   2 +
 srcpkgs/libjxl-devel                          |   1 +
 srcpkgs/libjxl-plugins                        |   1 +
 srcpkgs/libjxl-tools                          |   1 +
 .../deprecated_highway_functions.patch        | 459 ++++++++++++++++++
 srcpkgs/libjxl/template                       |  76 +++
 6 files changed, 540 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/patches/deprecated_highway_functions.patch
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index 8ed7c948eed0..23c769367841 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4171,3 +4171,5 @@ libTMVA.so root-6.24.06_1
 libMathCore.so root-6.24.06_1
 liblowdown.so lowdown-0.11.2_1
 libjaylink.so.0 libjaylink-0.2.0_1
+libjxl.so.0.6 libjxl-0.6.1_1
+libjxl_threads.so.0.6 libjxl-0.6.1_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/patches/deprecated_highway_functions.patch b/srcpkgs/libjxl/patches/deprecated_highway_functions.patch
new file mode 100644
index 000000000000..a775eb5a7c56
--- /dev/null
+++ b/srcpkgs/libjxl/patches/deprecated_highway_functions.patch
@@ -0,0 +1,459 @@
+diff --git a/lib/jxl/dec_reconstruct.cc b/lib/jxl/dec_reconstruct.cc
+index a1baef4..08279f8 100644
+--- a/lib/jxl/dec_reconstruct.cc
++++ b/lib/jxl/dec_reconstruct.cc
+@@ -357,8 +357,8 @@ void DoYCbCrUpsampling(size_t hs, size_t vs, ImageF* plane_in, const Rect& rect,
+         Store(left, d, out + x);
+         Store(right, d, out + x + 1);
+ #else
+-        Store(InterleaveLower(left, right), d, out + x);
+-        Store(InterleaveUpper(left, right), d, out + x + Lanes(d));
++        Store(InterleaveLower(d, left, right), d, out + x);
++        Store(InterleaveUpper(d, left, right), d, out + x + Lanes(d));
+ #endif
+       }
+     }
+diff --git a/lib/jxl/dec_upsample.cc b/lib/jxl/dec_upsample.cc
+index 7277e4f..3cb3f36 100644
+--- a/lib/jxl/dec_upsample.cc
++++ b/lib/jxl/dec_upsample.cc
+@@ -176,8 +176,8 @@ void Upsample(const ImageF& src, const Rect& src_rect, ImageF* dst,
+         min = Min(LoadU(df, raw_min_row + sx + fx), min);
+         max = Max(LoadU(df, raw_max_row + sx + fx), max);
+       }
+-      min = MinOfLanes(min);
+-      max = MaxOfLanes(max);
++      min = MinOfLanes(df, min);
++      max = MaxOfLanes(df, max);
+       for (size_t lx = 0; lx < N; lx += V) {
+         StoreU(min, df, min_row + N * sx + lx);
+         StoreU(max, df, max_row + N * sx + lx);
+diff --git a/lib/jxl/enc_ac_strategy.cc b/lib/jxl/enc_ac_strategy.cc
+index bc50465..c0ed68f 100644
+--- a/lib/jxl/enc_ac_strategy.cc
++++ b/lib/jxl/enc_ac_strategy.cc
+@@ -429,8 +429,8 @@ float EstimateEntropy(const AcStrategy& acs, size_t x, size_t y,
+     }
+     entropy_v += nzeros_v * cost1;
+ 
+-    entropy += GetLane(SumOfLanes(entropy_v));
+-    size_t num_nzeros = GetLane(SumOfLanes(nzeros_v));
++    entropy += GetLane(SumOfLanes(df, entropy_v));
++    size_t num_nzeros = GetLane(SumOfLanes(df, nzeros_v));
+     // Add #bit of num_nonzeros, as an estimate of the cost for encoding the
+     // number of non-zeros of the block.
+     size_t nbits = CeilLog2Nonzero(num_nzeros + 1) + 1;
+@@ -441,9 +441,9 @@ float EstimateEntropy(const AcStrategy& acs, size_t x, size_t y,
+   float ret =
+       entropy +
+       masking *
+-          ((config.info_loss_multiplier * GetLane(SumOfLanes(info_loss))) +
++          ((config.info_loss_multiplier * GetLane(SumOfLanes(df, info_loss))) +
+            (config.info_loss_multiplier2 *
+-            sqrt(num_blocks * GetLane(SumOfLanes(info_loss2)))));
++            sqrt(num_blocks * GetLane(SumOfLanes(df, info_loss2)))));
+   return ret;
+ }
+ 
+diff --git a/lib/jxl/enc_adaptive_quantization.cc b/lib/jxl/enc_adaptive_quantization.cc
+index f53393f..24f3d53 100644
+--- a/lib/jxl/enc_adaptive_quantization.cc
++++ b/lib/jxl/enc_adaptive_quantization.cc
+@@ -189,7 +189,7 @@ V GammaModulation(const D d, const size_t x, const size_t y,
+       overall_ratio += avg_ratio;
+     }
+   }
+-  overall_ratio = SumOfLanes(overall_ratio);
++  overall_ratio = SumOfLanes(d, overall_ratio);
+   overall_ratio *= Set(d, 1.0f / 64);
+   // ideally -1.0, but likely optimal correction adds some entropy, so slightly
+   // less than that.
+@@ -246,12 +246,12 @@ V ColorModulation(const D d, const size_t x, const size_t y,
+   // blue we consider as if it was fully red or blue.
+   static const float ratio = 30.610615782142737f;  // out of 64 pixels.
+ 
+-  auto overall_red_coverage = SumOfLanes(red_coverage);
++  auto overall_red_coverage = SumOfLanes(d, red_coverage);
+   overall_red_coverage =
+       Min(overall_red_coverage, Set(d, ratio * kRedRampLength));
+   overall_red_coverage *= Set(d, red_strength / ratio);
+ 
+-  auto overall_blue_coverage = SumOfLanes(blue_coverage);
++  auto overall_blue_coverage = SumOfLanes(d, blue_coverage);
+   overall_blue_coverage =
+       Min(overall_blue_coverage, Set(d, ratio * kBlueRampLength));
+   overall_blue_coverage *= Set(d, blue_strength / ratio);
+@@ -295,7 +295,7 @@ V HfModulation(const D d, const size_t x, const size_t y, const ImageF& xyb,
+     }
+   }
+ 
+-  sum = SumOfLanes(sum);
++  sum = SumOfLanes(d, sum);
+   return MulAdd(sum, Set(d, -2.0052193233688884f / 112), out_val);
+ }
+ 
+diff --git a/lib/jxl/enc_ar_control_field.cc b/lib/jxl/enc_ar_control_field.cc
+index f43340e..f8025ac 100644
+--- a/lib/jxl/enc_ar_control_field.cc
++++ b/lib/jxl/enc_ar_control_field.cc
+@@ -157,7 +157,7 @@ void ProcessTile(const Image3F& opsin, PassesEncoderState* enc_state,
+           sum += LoadU(df4, rows_in[iy] + x * 4 + ix + 2);
+         }
+       }
+-      row_out[x] = GetLane(Sqrt(SumOfLanes(sum))) * (1.0f / 4.0f);
++      row_out[x] = GetLane(Sqrt(SumOfLanes(df4, sum))) * (1.0f / 4.0f);
+     }
+   }
+   // Indexing iy and ix is a bit tricky as we include a 2 pixel border
+@@ -193,7 +193,7 @@ void ProcessTile(const Image3F& opsin, PassesEncoderState* enc_state,
+             sum += Load(df4, rows_in[iy] + sx + ix);
+           }
+         }
+-        row_out[x] = GetLane(Sqrt(SumOfLanes(sum))) * (1.0f / 4.0f);
++        row_out[x] = GetLane(Sqrt(SumOfLanes(df4, sum))) * (1.0f / 4.0f);
+       } else {
+         float sum = 0;
+         for (size_t iy = sy; iy < ey; iy++) {
+diff --git a/lib/jxl/enc_butteraugli_pnorm.cc b/lib/jxl/enc_butteraugli_pnorm.cc
+index 7c3fb9c..90b0440 100644
+--- a/lib/jxl/enc_butteraugli_pnorm.cc
++++ b/lib/jxl/enc_butteraugli_pnorm.cc
+@@ -95,13 +95,13 @@ double ComputeDistanceP(const ImageF& distmap, const ButteraugliParams& params,
+     }
+     double v = 0;
+     v += pow(
+-        onePerPixels * (sum1[0] + GetLane(SumOfLanes(Load(d, sum_totals0)))),
++        onePerPixels * (sum1[0] + GetLane(SumOfLanes(d, Load(d, sum_totals0)))),
+         1.0 / (p * 1.0));
+     v += pow(
+-        onePerPixels * (sum1[1] + GetLane(SumOfLanes(Load(d, sum_totals1)))),
++        onePerPixels * (sum1[1] + GetLane(SumOfLanes(d, Load(d, sum_totals1)))),
+         1.0 / (p * 2.0));
+     v += pow(
+-        onePerPixels * (sum1[2] + GetLane(SumOfLanes(Load(d, sum_totals2)))),
++        onePerPixels * (sum1[2] + GetLane(SumOfLanes(d, Load(d, sum_totals2)))),
+         1.0 / (p * 4.0));
+     v /= 3.0;
+     return v;
+diff --git a/lib/jxl/enc_chroma_from_luma.cc b/lib/jxl/enc_chroma_from_luma.cc
+index e5c3f38..370595c 100644
+--- a/lib/jxl/enc_chroma_from_luma.cc
++++ b/lib/jxl/enc_chroma_from_luma.cc
+@@ -91,9 +91,9 @@ struct CFLFunction {
+       fdme_v += IfThenElse(av >= thres, zero, dme);
+     }
+ 
+-    *fpeps = first_derivative_peps + GetLane(SumOfLanes(fdpe_v));
+-    *fmeps = first_derivative_meps + GetLane(SumOfLanes(fdme_v));
+-    return first_derivative + GetLane(SumOfLanes(fd_v));
++    *fpeps = first_derivative_peps + GetLane(SumOfLanes(df, fdpe_v));
++    *fmeps = first_derivative_meps + GetLane(SumOfLanes(df, fdme_v));
++    return first_derivative + GetLane(SumOfLanes(df, fd_v));
+   }
+ 
+   const float* JXL_RESTRICT values_m;
+@@ -124,8 +124,8 @@ int32_t FindBestMultiplier(const float* values_m, const float* values_s,
+       cb = MulAdd(a, b, cb);
+     }
+     // + distance_mul * x^2 * num
+-    x = -GetLane(SumOfLanes(cb)) /
+-        (GetLane(SumOfLanes(ca)) + num * distance_mul * 0.5f);
++    x = -GetLane(SumOfLanes(df, cb)) /
++        (GetLane(SumOfLanes(df, ca)) + num * distance_mul * 0.5f);
+   } else {
+     constexpr float eps = 1;
+     constexpr float kClamp = 20.0f;
+diff --git a/lib/jxl/enc_cluster.cc b/lib/jxl/enc_cluster.cc
+index 1f12a29..8ae863c 100644
+--- a/lib/jxl/enc_cluster.cc
++++ b/lib/jxl/enc_cluster.cc
+@@ -49,7 +49,7 @@ void HistogramEntropy(const Histogram& a) {
+     const auto counts = LoadU(di, &a.data_[i]);
+     entropy_lanes += Entropy(ConvertTo(df, counts), inv_tot, total);
+   }
+-  a.entropy_ += GetLane(SumOfLanes(entropy_lanes));
++  a.entropy_ += GetLane(SumOfLanes(df, entropy_lanes));
+ }
+ 
+ float HistogramDistance(const Histogram& a, const Histogram& b) {
+@@ -71,7 +71,7 @@ float HistogramDistance(const Histogram& a, const Histogram& b) {
+     const auto counts = ConvertTo(df, a_counts + b_counts);
+     distance_lanes += Entropy(counts, inv_tot, total);
+   }
+-  const float total_distance = GetLane(SumOfLanes(distance_lanes));
++  const float total_distance = GetLane(SumOfLanes(df, distance_lanes));
+   return total_distance - a.entropy_ - b.entropy_;
+ }
+ 
+diff --git a/lib/jxl/enc_entropy_coder.cc b/lib/jxl/enc_entropy_coder.cc
+index 0946300..07fe5a0 100644
+--- a/lib/jxl/enc_entropy_coder.cc
++++ b/lib/jxl/enc_entropy_coder.cc
+@@ -86,7 +86,7 @@ int32_t NumNonZeroExceptLLF(const size_t cx, const size_t cy,
+ 
+   // We want area - sum_zero, add because neg_sum_zero is already negated.
+   const int32_t nzeros =
+-      int32_t(cx * cy * kDCTBlockSize) + GetLane(SumOfLanes(neg_sum_zero));
++      int32_t(cx * cy * kDCTBlockSize) + GetLane(SumOfLanes(di, neg_sum_zero));
+ 
+   const int32_t shifted_nzeros = static_cast<int32_t>(
+       (nzeros + covered_blocks - 1) >> log2_covered_blocks);
+@@ -135,7 +135,7 @@ int32_t NumNonZero8x8ExceptDC(const int32_t* JXL_RESTRICT block,
+ 
+   // We want 64 - sum_zero, add because neg_sum_zero is already negated.
+   const int32_t nzeros =
+-      int32_t(kDCTBlockSize) + GetLane(SumOfLanes(neg_sum_zero));
++      int32_t(kDCTBlockSize) + GetLane(SumOfLanes(di, neg_sum_zero));
+ 
+   *nzeros_pos = nzeros;
+ 
+diff --git a/lib/jxl/enc_fast_heuristics.cc b/lib/jxl/enc_fast_heuristics.cc
+index 16f7670..0551782 100644
+--- a/lib/jxl/enc_fast_heuristics.cc
++++ b/lib/jxl/enc_fast_heuristics.cc
+@@ -94,8 +94,8 @@ Status Heuristics(PassesEncoderState* enc_state,
+               cb = MulAdd(a, b, cb);
+             }
+           }
+-          float best =
+-              -GetLane(SumOfLanes(cb)) / (GetLane(SumOfLanes(ca)) + 1e-9f);
++          float best = -GetLane(SumOfLanes(df, cb)) /
++                       (GetLane(SumOfLanes(df, ca)) + 1e-9f);
+           int8_t& res = (c == 0 ? shared.cmap.ytox_map : shared.cmap.ytob_map)
+                             .Row(ty)[tx];
+           res = std::max(-128.0f, std::min(127.0f, roundf(best)));
+@@ -124,8 +124,8 @@ Status Heuristics(PassesEncoderState* enc_state,
+                 max = IfThenElse(max > nn, max, nn);
+               }
+             }
+-            row_out_avg[x] = GetLane(SumOfLanes(sum));
+-            row_out[x] = GetLane(MaxOfLanes(max));
++            row_out_avg[x] = GetLane(SumOfLanes(df4, sum));
++            row_out[x] = GetLane(MaxOfLanes(df4, max));
+           }
+         }
+       },
+diff --git a/lib/jxl/gauss_blur.cc b/lib/jxl/gauss_blur.cc
+index f9babe7..f24a74c 100644
+--- a/lib/jxl/gauss_blur.cc
++++ b/lib/jxl/gauss_blur.cc
+@@ -421,7 +421,7 @@ ImageF ConvolveXSampleAndTranspose(const ImageF& in,
+       for (int i = -r; i <= r; i += Lanes(df)) {
+         sum = MulAdd(LoadU(df, rowp + x + i), LoadU(df, kernelp + i), sum);
+       }
+-      out.Row(ox)[y] = GetLane(SumOfLanes(sum));
++      out.Row(ox)[y] = GetLane(SumOfLanes(df, sum));
+     }
+     for (; x < in.xsize(); x += res, ++ox) {
+       float sum = 0.0f;
+diff --git a/lib/jxl/modular/encoding/enc_ma.cc b/lib/jxl/modular/encoding/enc_ma.cc
+index 0e2eaac..d485129 100644
+--- a/lib/jxl/modular/encoding/enc_ma.cc
++++ b/lib/jxl/modular/encoding/enc_ma.cc
+@@ -84,7 +84,7 @@ float EstimateBits(const int32_t *counts, int32_t *rounded_counts,
+     bits_lanes -=
+         IfThenElse(counts_v == zero, zero, counts_v * BitCast(df, nbps));
+   }
+-  return GetLane(SumOfLanes(bits_lanes));
++  return GetLane(SumOfLanes(df, bits_lanes));
+ }
+ 
+ void MakeSplitNode(size_t pos, int property, int splitval, Predictor lpred,
+diff --git a/lib/jxl/rational_polynomial_test.cc b/lib/jxl/rational_polynomial_test.cc
+index 699afd0..f985eb0 100644
+--- a/lib/jxl/rational_polynomial_test.cc
++++ b/lib/jxl/rational_polynomial_test.cc
+@@ -51,7 +51,7 @@ struct EvalLog2 {
+     const HWY_FULL(int32_t) di;
+     const auto x_bits = BitCast(di, vx);
+     // Cannot handle negative numbers / NaN.
+-    JXL_DASSERT(AllTrue(Abs(x_bits) == x_bits));
++    JXL_DASSERT(AllTrue(di, Abs(x_bits) == x_bits));
+ 
+     // Range reduction to [-1/3, 1/3] - 3 integer, 2 float ops
+     const auto exp_bits = x_bits - Set(di, 0x3f2aaaab);  // = 2/3
+diff --git a/lib/jxl/splines.cc b/lib/jxl/splines.cc
+index 8653445..5dc2404 100644
+--- a/lib/jxl/splines.cc
++++ b/lib/jxl/splines.cc
+@@ -52,7 +52,7 @@ float ContinuousIDCT(const float dct[32], float t) {
+     auto local_res = LoadU(df, dct + i) * cos;
+     result = MulAdd(Set(df, square_root<2>::value), local_res, result);
+   }
+-  return GetLane(SumOfLanes(result));
++  return GetLane(SumOfLanes(df, result));
+ }
+ 
+ template <typename DF>
+diff --git a/lib/jxl/transpose-inl.h b/lib/jxl/transpose-inl.h
+index d12b129..4674420 100644
+--- a/lib/jxl/transpose-inl.h
++++ b/lib/jxl/transpose-inl.h
+@@ -74,50 +74,51 @@ JXL_INLINE_TRANSPOSE void GenericTransposeBlock(TransposeSimdTag<true>,
+   static_assert(COLS_or_0 % 8 == 0, "Invalid number of columns");
+   for (size_t n = 0; n < ROWS; n += 8) {
+     for (size_t m = 0; m < COLS; m += 8) {
+-      auto i0 = from.LoadPart(BlockDesc<8>(), n + 0, m + 0);
+-      auto i1 = from.LoadPart(BlockDesc<8>(), n + 1, m + 0);
+-      auto i2 = from.LoadPart(BlockDesc<8>(), n + 2, m + 0);
+-      auto i3 = from.LoadPart(BlockDesc<8>(), n + 3, m + 0);
+-      auto i4 = from.LoadPart(BlockDesc<8>(), n + 4, m + 0);
+-      auto i5 = from.LoadPart(BlockDesc<8>(), n + 5, m + 0);
+-      auto i6 = from.LoadPart(BlockDesc<8>(), n + 6, m + 0);
+-      auto i7 = from.LoadPart(BlockDesc<8>(), n + 7, m + 0);
++      const BlockDesc<8> d;
++      auto i0 = from.LoadPart(d, n + 0, m + 0);
++      auto i1 = from.LoadPart(d, n + 1, m + 0);
++      auto i2 = from.LoadPart(d, n + 2, m + 0);
++      auto i3 = from.LoadPart(d, n + 3, m + 0);
++      auto i4 = from.LoadPart(d, n + 4, m + 0);
++      auto i5 = from.LoadPart(d, n + 5, m + 0);
++      auto i6 = from.LoadPart(d, n + 6, m + 0);
++      auto i7 = from.LoadPart(d, n + 7, m + 0);
+       // Surprisingly, this straightforward implementation (24 cycles on port5)
+       // is faster than load128+insert and LoadDup128+ConcatUpperLower+blend.
+-      const auto q0 = InterleaveLower(i0, i2);
+-      const auto q1 = InterleaveLower(i1, i3);
+-      const auto q2 = InterleaveUpper(i0, i2);
+-      const auto q3 = InterleaveUpper(i1, i3);
+-      const auto q4 = InterleaveLower(i4, i6);
+-      const auto q5 = InterleaveLower(i5, i7);
+-      const auto q6 = InterleaveUpper(i4, i6);
+-      const auto q7 = InterleaveUpper(i5, i7);
+-
+-      const auto r0 = InterleaveLower(q0, q1);
+-      const auto r1 = InterleaveUpper(q0, q1);
+-      const auto r2 = InterleaveLower(q2, q3);
+-      const auto r3 = InterleaveUpper(q2, q3);
+-      const auto r4 = InterleaveLower(q4, q5);
+-      const auto r5 = InterleaveUpper(q4, q5);
+-      const auto r6 = InterleaveLower(q6, q7);
+-      const auto r7 = InterleaveUpper(q6, q7);
+-
+-      i0 = ConcatLowerLower(r4, r0);
+-      i1 = ConcatLowerLower(r5, r1);
+-      i2 = ConcatLowerLower(r6, r2);
+-      i3 = ConcatLowerLower(r7, r3);
+-      i4 = ConcatUpperUpper(r4, r0);
+-      i5 = ConcatUpperUpper(r5, r1);
+-      i6 = ConcatUpperUpper(r6, r2);
+-      i7 = ConcatUpperUpper(r7, r3);
+-      to.StorePart(BlockDesc<8>(), i0, m + 0, n + 0);
+-      to.StorePart(BlockDesc<8>(), i1, m + 1, n + 0);
+-      to.StorePart(BlockDesc<8>(), i2, m + 2, n + 0);
+-      to.StorePart(BlockDesc<8>(), i3, m + 3, n + 0);
+-      to.StorePart(BlockDesc<8>(), i4, m + 4, n + 0);
+-      to.StorePart(BlockDesc<8>(), i5, m + 5, n + 0);
+-      to.StorePart(BlockDesc<8>(), i6, m + 6, n + 0);
+-      to.StorePart(BlockDesc<8>(), i7, m + 7, n + 0);
++      const auto q0 = InterleaveLower(d, i0, i2);
++      const auto q1 = InterleaveLower(d, i1, i3);
++      const auto q2 = InterleaveUpper(d, i0, i2);
++      const auto q3 = InterleaveUpper(d, i1, i3);
++      const auto q4 = InterleaveLower(d, i4, i6);
++      const auto q5 = InterleaveLower(d, i5, i7);
++      const auto q6 = InterleaveUpper(d, i4, i6);
++      const auto q7 = InterleaveUpper(d, i5, i7);
++
++      const auto r0 = InterleaveLower(d, q0, q1);
++      const auto r1 = InterleaveUpper(d, q0, q1);
++      const auto r2 = InterleaveLower(d, q2, q3);
++      const auto r3 = InterleaveUpper(d, q2, q3);
++      const auto r4 = InterleaveLower(d, q4, q5);
++      const auto r5 = InterleaveUpper(d, q4, q5);
++      const auto r6 = InterleaveLower(d, q6, q7);
++      const auto r7 = InterleaveUpper(d, q6, q7);
++
++      i0 = ConcatLowerLower(d, r4, r0);
++      i1 = ConcatLowerLower(d, r5, r1);
++      i2 = ConcatLowerLower(d, r6, r2);
++      i3 = ConcatLowerLower(d, r7, r3);
++      i4 = ConcatUpperUpper(d, r4, r0);
++      i5 = ConcatUpperUpper(d, r5, r1);
++      i6 = ConcatUpperUpper(d, r6, r2);
++      i7 = ConcatUpperUpper(d, r7, r3);
++      to.StorePart(d, i0, m + 0, n + 0);
++      to.StorePart(d, i1, m + 1, n + 0);
++      to.StorePart(d, i2, m + 2, n + 0);
++      to.StorePart(d, i3, m + 3, n + 0);
++      to.StorePart(d, i4, m + 4, n + 0);
++      to.StorePart(d, i5, m + 5, n + 0);
++      to.StorePart(d, i6, m + 6, n + 0);
++      to.StorePart(d, i7, m + 7, n + 0);
+     }
+   }
+ }
+@@ -137,25 +138,26 @@ JXL_INLINE_TRANSPOSE void GenericTransposeBlock(TransposeSimdTag<true>,
+   static_assert(COLS_or_0 % 4 == 0, "Invalid number of columns");
+   for (size_t n = 0; n < ROWS; n += 4) {
+     for (size_t m = 0; m < COLS; m += 4) {
+-      const auto p0 = from.LoadPart(BlockDesc<4>(), n + 0, m + 0);
+-      const auto p1 = from.LoadPart(BlockDesc<4>(), n + 1, m + 0);
+-      const auto p2 = from.LoadPart(BlockDesc<4>(), n + 2, m + 0);
+-      const auto p3 = from.LoadPart(BlockDesc<4>(), n + 3, m + 0);
+-
+-      const auto q0 = InterleaveLower(p0, p2);
+-      const auto q1 = InterleaveLower(p1, p3);
+-      const auto q2 = InterleaveUpper(p0, p2);
+-      const auto q3 = InterleaveUpper(p1, p3);
+-
+-      const auto r0 = InterleaveLower(q0, q1);
+-      const auto r1 = InterleaveUpper(q0, q1);
+-      const auto r2 = InterleaveLower(q2, q3);
+-      const auto r3 = InterleaveUpper(q2, q3);
+-
+-      to.StorePart(BlockDesc<4>(), r0, m + 0, n + 0);
+-      to.StorePart(BlockDesc<4>(), r1, m + 1, n + 0);
+-      to.StorePart(BlockDesc<4>(), r2, m + 2, n + 0);
+-      to.StorePart(BlockDesc<4>(), r3, m + 3, n + 0);
++      const BlockDesc<4> d;
++      const auto p0 = from.LoadPart(d, n + 0, m + 0);
++      const auto p1 = from.LoadPart(d, n + 1, m + 0);
++      const auto p2 = from.LoadPart(d, n + 2, m + 0);
++      const auto p3 = from.LoadPart(d, n + 3, m + 0);
++
++      const auto q0 = InterleaveLower(d, p0, p2);
++      const auto q1 = InterleaveLower(d, p1, p3);
++      const auto q2 = InterleaveUpper(d, p0, p2);
++      const auto q3 = InterleaveUpper(d, p1, p3);
++
++      const auto r0 = InterleaveLower(d, q0, q1);
++      const auto r1 = InterleaveUpper(d, q0, q1);
++      const auto r2 = InterleaveLower(d, q2, q3);
++      const auto r3 = InterleaveUpper(d, q2, q3);
++
++      to.StorePart(d, r0, m + 0, n + 0);
++      to.StorePart(d, r1, m + 1, n + 0);
++      to.StorePart(d, r2, m + 2, n + 0);
++      to.StorePart(d, r3, m + 3, n + 0);
+     }
+   }
+ }
+diff --git a/lib/profiler/profiler.cc b/lib/profiler/profiler.cc
+index d21ee09..186ff06 100644
+--- a/lib/profiler/profiler.cc
++++ b/lib/profiler/profiler.cc
+@@ -139,7 +139,7 @@ class Results {
+   void AnalyzePackets(const Packet* HWY_RESTRICT packets,
+                       const size_t num_packets) {
+     // Ensures prior weakly-ordered streaming stores are globally visible.
+-    hwy::StoreFence();
++    hwy::FlushStream();
+ 
+     const uint64_t t0 = TicksBefore();
+ 
+@@ -372,12 +372,12 @@ void ThreadSpecific::ComputeOverhead() {
+       const size_t kReps = 10000;
+       // Analysis time should not be included => must fit within buffer.
+       HWY_ASSERT(kReps * 2 < max_packets_);
+-      hwy::StoreFence();
++      hwy::FlushStream();
+       const uint64_t t0 = TicksBefore();
+       for (size_t i = 0; i < kReps; ++i) {
+         PROFILER_ZONE("Dummy");
+       }
+-      hwy::StoreFence();
++      hwy::FlushStream();
+       const uint64_t t1 = TicksAfter();
+       HWY_ASSERT(num_packets_ + buffer_size_ == kReps * 2);
+       buffer_size_ = 0;
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..fb9807463a12
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,76 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=0.6.1
+revision=1
+build_style=cmake
+configure_args="-DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF
+ -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
+hostmakedepends="tar pkg-config asciidoc"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel
+ libopenexr-devel gdk-pixbuf-devel gimp-devel gtest-devel"
+checkdepends="xdg-utils"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="BSD-3-Clause, custom:Patent grant"
+homepage="https://jpeg.org/jpegxl/"
+_lodepng_hash=48e5364ef48ec2408f44c727657ac1b6703185f8
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/v${version}.tar.gz
+ https://github.com/lvandeve/lodepng/archive/${_lodepng_hash}.tar.gz>lodepng-${_lodepng_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="ccbd5a729d730152303be399f033b905e608309d5802d77a61a95faa092592c5
+ c47c48c77a205f1af484b7b5a847290af65de3ea6f15817aa27c5ec7cc5208fd
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="lodepng-${_lodepng_hash}.tar.gz
+ skcms-${_skcms_hash}.tar.gz"
+
+if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+	makedepends+=" libatomic-devel"
+	LIBS="-latomic"
+fi
+
+# Tests fail after building with 32-bit gcc (https://github.com/libjxl/libjxl/issues/1340)
+if [ "$CROSS_BUILD" -o "$XBPS_TARGET_MACHINE" = "i686" ]; then
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf lodepng-${_lodepng_hash}.tar.gz --strip-components=1 -C ${wrksrc}/third_party/lodepng
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+post_install() {
+	vlicense LICENSE
+	vlicense PATENTS
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="libjxl>=${version}_${revision} highway brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From cf826227de43ac575110e3d05cde26c7bad051e1 Mon Sep 17 00:00:00 2001
From: Joshua <joshua@kraemer.link>
Date: Wed, 30 Mar 2022 21:23:16 +0200
Subject: [PATCH 3/3] kimageformats: enable JPEG XL support

---
 srcpkgs/kimageformats/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kimageformats/template b/srcpkgs/kimageformats/template
index d94eb968f1c7..69856e7d2d9a 100644
--- a/srcpkgs/kimageformats/template
+++ b/srcpkgs/kimageformats/template
@@ -1,12 +1,12 @@
 # Template file for 'kimageformats'
 pkgname=kimageformats
 version=5.94.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKIMAGEFORMATS_HEIF=ON"
 hostmakedepends="kcoreaddons extra-cmake-modules qt5-qmake qt5-host-tools
  pkg-config"
-makedepends="karchive-devel libopenexr-devel libheif-devel"
+makedepends="karchive-devel libopenexr-devel libheif-devel libjxl-devel"
 short_desc="KDE Plugins to allow QImage to support extra file formats"
 maintainer="John <me@johnnynator.dev>"
 license="LGPL-2.0-or-later"

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (31 preceding siblings ...)
  2022-05-30 14:18 ` [PR PATCH] [Updated] " joshuakraemer
@ 2022-05-30 14:52 ` joshuakraemer
  2022-05-30 14:52 ` joshuakraemer
                   ` (31 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-05-30 14:52 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 198 bytes --]

New comment by joshuakraemer on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#issuecomment-1141245971

Comment:
> @joshuakraemer can you resolve conflicts?
Done.

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (32 preceding siblings ...)
  2022-05-30 14:52 ` joshuakraemer
@ 2022-05-30 14:52 ` joshuakraemer
  2022-05-30 14:52 ` joshuakraemer
                   ` (30 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-05-30 14:52 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 198 bytes --]

New comment by joshuakraemer on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#issuecomment-1141245971

Comment:
> @joshuakraemer can you resolve conflicts?
Done.

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (33 preceding siblings ...)
  2022-05-30 14:52 ` joshuakraemer
@ 2022-05-30 14:52 ` joshuakraemer
  2022-08-29  2:14 ` github-actions
                   ` (29 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-05-30 14:52 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 200 bytes --]

New comment by joshuakraemer on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#issuecomment-1141246661

Comment:
> @joshuakraemer can you resolve conflicts?

Done.

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (34 preceding siblings ...)
  2022-05-30 14:52 ` joshuakraemer
@ 2022-08-29  2:14 ` github-actions
  2022-08-29  5:33 ` mustaqimM
                   ` (28 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: github-actions @ 2022-08-29  2:14 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 305 bytes --]

New comment by github-actions[bot] on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#issuecomment-1229666351

Comment:
Pull Requests become stale 90 days after last activity and are closed 14 days after that.  If this pull request is still relevant bump it or assign it.

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (35 preceding siblings ...)
  2022-08-29  2:14 ` github-actions
@ 2022-08-29  5:33 ` mustaqimM
  2022-10-16 18:26 ` [PR PATCH] [Updated] " joshuakraemer
                   ` (27 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: mustaqimM @ 2022-08-29  5:33 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 313 bytes --]

New comment by mustaqimM on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#issuecomment-1229798067

Comment:
Commenting to keep this open.

@joshuakraemer Thank you for keeping up with this, though this should have been merged a while back. There seems to already be `0.7 RC`.

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR PATCH] [Updated] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (36 preceding siblings ...)
  2022-08-29  5:33 ` mustaqimM
@ 2022-10-16 18:26 ` joshuakraemer
  2022-10-16 18:51 ` joshuakraemer
                   ` (26 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-10-16 18:26 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

There is an updated pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 6135 bytes --]

From ac00c385d8b13a3b14249a2da6afd151e8fa2588 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-1.0.1

---
 srcpkgs/highway/template | 13 +++++++++++++
 1 file changed, 13 insertions(+)
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..bd45136dcb27
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,13 @@
+# Template file for 'highway'
+pkgname=highway
+version=1.0.1
+revision=1
+build_style=cmake
+configure_args="-DHWY_SYSTEM_GTEST=ON -DHWY_ENABLE_EXAMPLES=OFF"
+makedepends="gtest-devel libatomic-devel"
+short_desc="C++ library providing portable SIMD/vector intrinsics"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=7ca6af7dc2e3e054de9e17b9dfd88609a7fd202812b1c216f43cc41647c97311

From 2b345b2a7c56f56b58c9a7f789282943de89e6f4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.7.0

---
 common/shlibs           |  2 ++
 srcpkgs/libjxl-devel    |  1 +
 srcpkgs/libjxl-plugins  |  1 +
 srcpkgs/libjxl-tools    |  1 +
 srcpkgs/libjxl/template | 65 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 70 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index 02780902e137..f519077a77c3 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4186,3 +4186,5 @@ libabsl_strings.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_throw_delegate.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_time_zone.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_spinlock_wait.so.2206.0.0 abseil-cpp-20220623.1_1
+libjxl.so.0.7 libjxl-0.7.0_1
+libjxl_threads.so.0.7 libjxl-0.7.0_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..4be8594a43ca
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,65 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=0.7.0
+revision=1
+build_style=cmake
+configure_args="-DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF
+ -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
+hostmakedepends="tar pkg-config asciidoc"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel
+ libopenexr-devel libwebp-devel gdk-pixbuf-devel gimp-devel gtest-devel
+ xdg-utils"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="BSD-3-Clause, custom:Patent grant"
+homepage="https://jpeg.org/jpegxl/"
+_testdata_hash=d81acaca8e037d9514f3211045c77e7467bcb814
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/v${version}.tar.gz
+ https://github.com/libjxl/testdata/archive/${_testdata_hash}.tar.gz>testdata-${_testdata_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="3114bba1fabb36f6f4adc2632717209aa6f84077bc4e93b420e0d63fa0455c5e
+ 1a4d4be37f9a4dd69134832665fda8a772eeb95cbcdaa79d9b1850c23ae50521
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="testdata-${_testdata_hash}.tar.gz skcms-${_skcms_hash}.tar.gz"
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf testdata-${_testdata_hash}.tar.gz --strip-components=1 -C ${wrksrc}/testdata
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+post_install() {
+	vlicense LICENSE
+	vlicense PATENTS
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="libjxl>=${version}_${revision} highway brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From 9542c54f8e177feb3b779779df10a22392115d82 Mon Sep 17 00:00:00 2001
From: Joshua <joshua@kraemer.link>
Date: Wed, 30 Mar 2022 21:23:16 +0200
Subject: [PATCH 3/3] kimageformats: enable JPEG XL support

---
 srcpkgs/kimageformats/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kimageformats/template b/srcpkgs/kimageformats/template
index 8af5fe7f53e7..19eb5c6a227d 100644
--- a/srcpkgs/kimageformats/template
+++ b/srcpkgs/kimageformats/template
@@ -1,12 +1,12 @@
 # Template file for 'kimageformats'
 pkgname=kimageformats
 version=5.98.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKIMAGEFORMATS_HEIF=ON"
 hostmakedepends="kcoreaddons extra-cmake-modules qt5-qmake qt5-host-tools
  pkg-config"
-makedepends="karchive-devel libopenexr-devel libheif-devel"
+makedepends="karchive-devel libopenexr-devel libheif-devel libjxl-devel"
 short_desc="KDE Plugins to allow QImage to support extra file formats"
 maintainer="John <me@johnnynator.dev>"
 license="LGPL-2.0-or-later"

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR PATCH] [Updated] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (37 preceding siblings ...)
  2022-10-16 18:26 ` [PR PATCH] [Updated] " joshuakraemer
@ 2022-10-16 18:51 ` joshuakraemer
  2022-10-17 14:41 ` joshuakraemer
                   ` (25 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-10-16 18:51 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

There is an updated pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 6158 bytes --]

From ac00c385d8b13a3b14249a2da6afd151e8fa2588 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-1.0.1

---
 srcpkgs/highway/template | 13 +++++++++++++
 1 file changed, 13 insertions(+)
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..bd45136dcb27
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,13 @@
+# Template file for 'highway'
+pkgname=highway
+version=1.0.1
+revision=1
+build_style=cmake
+configure_args="-DHWY_SYSTEM_GTEST=ON -DHWY_ENABLE_EXAMPLES=OFF"
+makedepends="gtest-devel libatomic-devel"
+short_desc="C++ library providing portable SIMD/vector intrinsics"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=7ca6af7dc2e3e054de9e17b9dfd88609a7fd202812b1c216f43cc41647c97311

From 3d292e4ce4638e483242bd57743f809e76751483 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.7.0

---
 common/shlibs           |  2 ++
 srcpkgs/libjxl-devel    |  1 +
 srcpkgs/libjxl-plugins  |  1 +
 srcpkgs/libjxl-tools    |  1 +
 srcpkgs/libjxl/template | 65 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 70 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index 02780902e137..f519077a77c3 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4186,3 +4186,5 @@ libabsl_strings.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_throw_delegate.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_time_zone.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_spinlock_wait.so.2206.0.0 abseil-cpp-20220623.1_1
+libjxl.so.0.7 libjxl-0.7.0_1
+libjxl_threads.so.0.7 libjxl-0.7.0_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..d602fc93816f
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,65 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=0.7.0
+revision=1
+build_style=cmake
+configure_args="-DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF
+ -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON -DJPEGXL_FORCE_NEON=ON"
+hostmakedepends="tar pkg-config asciidoc"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel
+ libopenexr-devel libwebp-devel gdk-pixbuf-devel gimp-devel gtest-devel
+ xdg-utils"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="BSD-3-Clause, custom:Patent grant"
+homepage="https://jpeg.org/jpegxl/"
+_testdata_hash=d81acaca8e037d9514f3211045c77e7467bcb814
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/v${version}.tar.gz
+ https://github.com/libjxl/testdata/archive/${_testdata_hash}.tar.gz>testdata-${_testdata_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="3114bba1fabb36f6f4adc2632717209aa6f84077bc4e93b420e0d63fa0455c5e
+ 1a4d4be37f9a4dd69134832665fda8a772eeb95cbcdaa79d9b1850c23ae50521
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="testdata-${_testdata_hash}.tar.gz skcms-${_skcms_hash}.tar.gz"
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf testdata-${_testdata_hash}.tar.gz --strip-components=1 -C ${wrksrc}/testdata
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+post_install() {
+	vlicense LICENSE
+	vlicense PATENTS
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="libjxl>=${version}_${revision} highway brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From 9567200e318e1da2a766d1a00703959c74baa78a Mon Sep 17 00:00:00 2001
From: Joshua <joshua@kraemer.link>
Date: Wed, 30 Mar 2022 21:23:16 +0200
Subject: [PATCH 3/3] kimageformats: enable JPEG XL support

---
 srcpkgs/kimageformats/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kimageformats/template b/srcpkgs/kimageformats/template
index 8af5fe7f53e7..19eb5c6a227d 100644
--- a/srcpkgs/kimageformats/template
+++ b/srcpkgs/kimageformats/template
@@ -1,12 +1,12 @@
 # Template file for 'kimageformats'
 pkgname=kimageformats
 version=5.98.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKIMAGEFORMATS_HEIF=ON"
 hostmakedepends="kcoreaddons extra-cmake-modules qt5-qmake qt5-host-tools
  pkg-config"
-makedepends="karchive-devel libopenexr-devel libheif-devel"
+makedepends="karchive-devel libopenexr-devel libheif-devel libjxl-devel"
 short_desc="KDE Plugins to allow QImage to support extra file formats"
 maintainer="John <me@johnnynator.dev>"
 license="LGPL-2.0-or-later"

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR PATCH] [Updated] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (38 preceding siblings ...)
  2022-10-16 18:51 ` joshuakraemer
@ 2022-10-17 14:41 ` joshuakraemer
  2022-10-17 15:30 ` joshuakraemer
                   ` (24 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-10-17 14:41 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

There is an updated pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 6215 bytes --]

From 307ad709dbdb447184ef794ce3db25f0ecdcee9a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-1.0.1

---
 srcpkgs/highway/template | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..d3d264dfe4c3
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,17 @@
+# Template file for 'highway'
+pkgname=highway
+version=1.0.1
+revision=1
+build_style=cmake
+configure_args="-DHWY_SYSTEM_GTEST=ON -DHWY_ENABLE_EXAMPLES=OFF"
+makedepends="gtest-devel libatomic-devel"
+short_desc="C++ library providing portable SIMD/vector intrinsics"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=7ca6af7dc2e3e054de9e17b9dfd88609a7fd202812b1c216f43cc41647c97311
+
+if [ "$CROSS_BUILD" ]; then
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi

From a99e6f1125cd9f5021a5747806d91f6e98b569f8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.7.0

---
 common/shlibs           |  2 ++
 srcpkgs/libjxl-devel    |  1 +
 srcpkgs/libjxl-plugins  |  1 +
 srcpkgs/libjxl-tools    |  1 +
 srcpkgs/libjxl/template | 65 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 70 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index 02780902e137..f519077a77c3 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4186,3 +4186,5 @@ libabsl_strings.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_throw_delegate.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_time_zone.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_spinlock_wait.so.2206.0.0 abseil-cpp-20220623.1_1
+libjxl.so.0.7 libjxl-0.7.0_1
+libjxl_threads.so.0.7 libjxl-0.7.0_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..4be8594a43ca
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,65 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=0.7.0
+revision=1
+build_style=cmake
+configure_args="-DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF
+ -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
+hostmakedepends="tar pkg-config asciidoc"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel
+ libopenexr-devel libwebp-devel gdk-pixbuf-devel gimp-devel gtest-devel
+ xdg-utils"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="BSD-3-Clause, custom:Patent grant"
+homepage="https://jpeg.org/jpegxl/"
+_testdata_hash=d81acaca8e037d9514f3211045c77e7467bcb814
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/v${version}.tar.gz
+ https://github.com/libjxl/testdata/archive/${_testdata_hash}.tar.gz>testdata-${_testdata_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="3114bba1fabb36f6f4adc2632717209aa6f84077bc4e93b420e0d63fa0455c5e
+ 1a4d4be37f9a4dd69134832665fda8a772eeb95cbcdaa79d9b1850c23ae50521
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="testdata-${_testdata_hash}.tar.gz skcms-${_skcms_hash}.tar.gz"
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf testdata-${_testdata_hash}.tar.gz --strip-components=1 -C ${wrksrc}/testdata
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+post_install() {
+	vlicense LICENSE
+	vlicense PATENTS
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="libjxl>=${version}_${revision} highway brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From 8f55dce518343bd59e1af8a6f4c260e0d73f1e6f Mon Sep 17 00:00:00 2001
From: Joshua <joshua@kraemer.link>
Date: Wed, 30 Mar 2022 21:23:16 +0200
Subject: [PATCH 3/3] kimageformats: enable JPEG XL support

---
 srcpkgs/kimageformats/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kimageformats/template b/srcpkgs/kimageformats/template
index 8af5fe7f53e7..19eb5c6a227d 100644
--- a/srcpkgs/kimageformats/template
+++ b/srcpkgs/kimageformats/template
@@ -1,12 +1,12 @@
 # Template file for 'kimageformats'
 pkgname=kimageformats
 version=5.98.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKIMAGEFORMATS_HEIF=ON"
 hostmakedepends="kcoreaddons extra-cmake-modules qt5-qmake qt5-host-tools
  pkg-config"
-makedepends="karchive-devel libopenexr-devel libheif-devel"
+makedepends="karchive-devel libopenexr-devel libheif-devel libjxl-devel"
 short_desc="KDE Plugins to allow QImage to support extra file formats"
 maintainer="John <me@johnnynator.dev>"
 license="LGPL-2.0-or-later"

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR PATCH] [Updated] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (39 preceding siblings ...)
  2022-10-17 14:41 ` joshuakraemer
@ 2022-10-17 15:30 ` joshuakraemer
  2022-10-17 16:02 ` joshuakraemer
                   ` (23 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-10-17 15:30 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

There is an updated pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 6215 bytes --]

From 307ad709dbdb447184ef794ce3db25f0ecdcee9a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-1.0.1

---
 srcpkgs/highway/template | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..d3d264dfe4c3
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,17 @@
+# Template file for 'highway'
+pkgname=highway
+version=1.0.1
+revision=1
+build_style=cmake
+configure_args="-DHWY_SYSTEM_GTEST=ON -DHWY_ENABLE_EXAMPLES=OFF"
+makedepends="gtest-devel libatomic-devel"
+short_desc="C++ library providing portable SIMD/vector intrinsics"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=7ca6af7dc2e3e054de9e17b9dfd88609a7fd202812b1c216f43cc41647c97311
+
+if [ "$CROSS_BUILD" ]; then
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi

From a99e6f1125cd9f5021a5747806d91f6e98b569f8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.7.0

---
 common/shlibs           |  2 ++
 srcpkgs/libjxl-devel    |  1 +
 srcpkgs/libjxl-plugins  |  1 +
 srcpkgs/libjxl-tools    |  1 +
 srcpkgs/libjxl/template | 65 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 70 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index 02780902e137..f519077a77c3 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4186,3 +4186,5 @@ libabsl_strings.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_throw_delegate.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_time_zone.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_spinlock_wait.so.2206.0.0 abseil-cpp-20220623.1_1
+libjxl.so.0.7 libjxl-0.7.0_1
+libjxl_threads.so.0.7 libjxl-0.7.0_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..4be8594a43ca
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,65 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=0.7.0
+revision=1
+build_style=cmake
+configure_args="-DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF
+ -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
+hostmakedepends="tar pkg-config asciidoc"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel
+ libopenexr-devel libwebp-devel gdk-pixbuf-devel gimp-devel gtest-devel
+ xdg-utils"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="BSD-3-Clause, custom:Patent grant"
+homepage="https://jpeg.org/jpegxl/"
+_testdata_hash=d81acaca8e037d9514f3211045c77e7467bcb814
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/v${version}.tar.gz
+ https://github.com/libjxl/testdata/archive/${_testdata_hash}.tar.gz>testdata-${_testdata_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="3114bba1fabb36f6f4adc2632717209aa6f84077bc4e93b420e0d63fa0455c5e
+ 1a4d4be37f9a4dd69134832665fda8a772eeb95cbcdaa79d9b1850c23ae50521
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="testdata-${_testdata_hash}.tar.gz skcms-${_skcms_hash}.tar.gz"
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf testdata-${_testdata_hash}.tar.gz --strip-components=1 -C ${wrksrc}/testdata
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+post_install() {
+	vlicense LICENSE
+	vlicense PATENTS
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="libjxl>=${version}_${revision} highway brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From 8f55dce518343bd59e1af8a6f4c260e0d73f1e6f Mon Sep 17 00:00:00 2001
From: Joshua <joshua@kraemer.link>
Date: Wed, 30 Mar 2022 21:23:16 +0200
Subject: [PATCH 3/3] kimageformats: enable JPEG XL support

---
 srcpkgs/kimageformats/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kimageformats/template b/srcpkgs/kimageformats/template
index 8af5fe7f53e7..19eb5c6a227d 100644
--- a/srcpkgs/kimageformats/template
+++ b/srcpkgs/kimageformats/template
@@ -1,12 +1,12 @@
 # Template file for 'kimageformats'
 pkgname=kimageformats
 version=5.98.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKIMAGEFORMATS_HEIF=ON"
 hostmakedepends="kcoreaddons extra-cmake-modules qt5-qmake qt5-host-tools
  pkg-config"
-makedepends="karchive-devel libopenexr-devel libheif-devel"
+makedepends="karchive-devel libopenexr-devel libheif-devel libjxl-devel"
 short_desc="KDE Plugins to allow QImage to support extra file formats"
 maintainer="John <me@johnnynator.dev>"
 license="LGPL-2.0-or-later"

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR PATCH] [Updated] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (40 preceding siblings ...)
  2022-10-17 15:30 ` joshuakraemer
@ 2022-10-17 16:02 ` joshuakraemer
  2022-10-17 16:15 ` joshuakraemer
                   ` (22 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-10-17 16:02 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

There is an updated pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 8567 bytes --]

From 98b8b54de4642be73086ed60f07fee11bc1d3f6a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-1.0.1

---
 srcpkgs/highway/patches/armv7-fix.patch | 40 +++++++++++++++++++++++++
 srcpkgs/highway/patches/armv7-fpu.patch | 13 ++++++++
 srcpkgs/highway/template                | 17 +++++++++++
 3 files changed, 70 insertions(+)
 create mode 100644 srcpkgs/highway/patches/armv7-fix.patch
 create mode 100644 srcpkgs/highway/patches/armv7-fpu.patch
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/patches/armv7-fix.patch b/srcpkgs/highway/patches/armv7-fix.patch
new file mode 100644
index 000000000000..9696ff4a8197
--- /dev/null
+++ b/srcpkgs/highway/patches/armv7-fix.patch
@@ -0,0 +1,40 @@
+From b09d551afc2b3295096ded1d32ae51fda596570b Mon Sep 17 00:00:00 2001
+From: Jan Wassenberg <janwas@google.com>
+Date: Tue, 6 Sep 2022 07:24:46 -0700
+Subject: [PATCH] fix for armv7 compiled with default vfpv3. Refs #834
+
+PiperOrigin-RevId: 472452069
+---
+ hwy/ops/arm_neon-inl.h | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/hwy/ops/arm_neon-inl.h b/hwy/ops/arm_neon-inl.h
+index e1aa4c0..7c7e272 100644
+--- a/hwy/ops/arm_neon-inl.h
++++ b/hwy/ops/arm_neon-inl.h
+@@ -22,16 +22,18 @@
+ #include <stddef.h>
+ #include <stdint.h>
+ 
+-#include "hwy/base.h"  // before HWY_DIAGNOSTICS
++#include "hwy/ops/shared-inl.h"
++
++HWY_BEFORE_NAMESPACE();
+ 
++// Must come after HWY_BEFORE_NAMESPACE so that the intrinsics are compiled with
++// the same target attribute as our code, see #834.
+ HWY_DIAGNOSTICS(push)
+ HWY_DIAGNOSTICS_OFF(disable : 4701, ignored "-Wuninitialized")
+ #include <arm_neon.h>
+ HWY_DIAGNOSTICS(pop)
+ 
+-#include "hwy/ops/shared-inl.h"
+-
+-HWY_BEFORE_NAMESPACE();
++// Must come after arm_neon.h.
+ namespace hwy {
+ namespace HWY_NAMESPACE {
+ 
+-- 
+2.38.0
+
diff --git a/srcpkgs/highway/patches/armv7-fpu.patch b/srcpkgs/highway/patches/armv7-fpu.patch
new file mode 100644
index 000000000000..4521da49a633
--- /dev/null
+++ b/srcpkgs/highway/patches/armv7-fpu.patch
@@ -0,0 +1,13 @@
+diff --git a/hwy/ops/set_macros-inl.h b/hwy/ops/set_macros-inl.h
+index c118960..f42babf 100644
+--- a/hwy/ops/set_macros-inl.h
++++ b/hwy/ops/set_macros-inl.h
+@@ -230,7 +230,7 @@
+ // Can use pragmas instead of -march compiler flag
+ #if HWY_HAVE_RUNTIME_DISPATCH
+ #if HWY_ARCH_ARM_V7
+-#define HWY_TARGET_STR "+neon-vfpv4"
++#define HWY_TARGET_STR "+vfpv3"
+ #else
+ #define HWY_TARGET_STR "+crypto"
+ #endif  // HWY_ARCH_ARM_V7
diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..d3d264dfe4c3
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,17 @@
+# Template file for 'highway'
+pkgname=highway
+version=1.0.1
+revision=1
+build_style=cmake
+configure_args="-DHWY_SYSTEM_GTEST=ON -DHWY_ENABLE_EXAMPLES=OFF"
+makedepends="gtest-devel libatomic-devel"
+short_desc="C++ library providing portable SIMD/vector intrinsics"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=7ca6af7dc2e3e054de9e17b9dfd88609a7fd202812b1c216f43cc41647c97311
+
+if [ "$CROSS_BUILD" ]; then
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi

From a403cec27c8e1b53b4b1ee77487fb46826a083f2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.7.0

---
 common/shlibs           |  2 ++
 srcpkgs/libjxl-devel    |  1 +
 srcpkgs/libjxl-plugins  |  1 +
 srcpkgs/libjxl-tools    |  1 +
 srcpkgs/libjxl/template | 70 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 75 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index 02780902e137..f519077a77c3 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4186,3 +4186,5 @@ libabsl_strings.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_throw_delegate.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_time_zone.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_spinlock_wait.so.2206.0.0 abseil-cpp-20220623.1_1
+libjxl.so.0.7 libjxl-0.7.0_1
+libjxl_threads.so.0.7 libjxl-0.7.0_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..0a178e4423d2
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,70 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=0.7.0
+revision=1
+build_style=cmake
+configure_args="-DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF
+ -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
+hostmakedepends="tar pkg-config asciidoc"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel
+ libopenexr-devel libwebp-devel gdk-pixbuf-devel gimp-devel gtest-devel
+ xdg-utils"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="BSD-3-Clause, custom:Patent grant"
+homepage="https://jpeg.org/jpegxl/"
+_testdata_hash=d81acaca8e037d9514f3211045c77e7467bcb814
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/v${version}.tar.gz
+ https://github.com/libjxl/testdata/archive/${_testdata_hash}.tar.gz>testdata-${_testdata_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="3114bba1fabb36f6f4adc2632717209aa6f84077bc4e93b420e0d63fa0455c5e
+ 1a4d4be37f9a4dd69134832665fda8a772eeb95cbcdaa79d9b1850c23ae50521
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="testdata-${_testdata_hash}.tar.gz skcms-${_skcms_hash}.tar.gz"
+
+
+if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+	makedepends+=" libatomic-devel"
+fi
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf testdata-${_testdata_hash}.tar.gz --strip-components=1 -C ${wrksrc}/testdata
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+post_install() {
+	vlicense LICENSE
+	vlicense PATENTS
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="libjxl>=${version}_${revision} highway brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From d71eb78830d18e3a8721a2037af140f4e42409cf Mon Sep 17 00:00:00 2001
From: Joshua <joshua@kraemer.link>
Date: Wed, 30 Mar 2022 21:23:16 +0200
Subject: [PATCH 3/3] kimageformats: enable JPEG XL support

---
 srcpkgs/kimageformats/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kimageformats/template b/srcpkgs/kimageformats/template
index 8af5fe7f53e7..19eb5c6a227d 100644
--- a/srcpkgs/kimageformats/template
+++ b/srcpkgs/kimageformats/template
@@ -1,12 +1,12 @@
 # Template file for 'kimageformats'
 pkgname=kimageformats
 version=5.98.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKIMAGEFORMATS_HEIF=ON"
 hostmakedepends="kcoreaddons extra-cmake-modules qt5-qmake qt5-host-tools
  pkg-config"
-makedepends="karchive-devel libopenexr-devel libheif-devel"
+makedepends="karchive-devel libopenexr-devel libheif-devel libjxl-devel"
 short_desc="KDE Plugins to allow QImage to support extra file formats"
 maintainer="John <me@johnnynator.dev>"
 license="LGPL-2.0-or-later"

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR PATCH] [Updated] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (41 preceding siblings ...)
  2022-10-17 16:02 ` joshuakraemer
@ 2022-10-17 16:15 ` joshuakraemer
  2022-10-17 16:19 ` joshuakraemer
                   ` (21 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-10-17 16:15 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

There is an updated pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 6557 bytes --]

From 9b5a532042b48f557e3dfcfe98e01b41d86c998f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-1.0.1

---
 srcpkgs/highway/template | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..7c15688ae658
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,19 @@
+# Template file for 'highway'
+pkgname=highway
+version=1.0.1
+revision=1
+build_style=cmake
+configure_args="-DHWY_SYSTEM_GTEST=ON -DHWY_ENABLE_EXAMPLES=OFF"
+makedepends="gtest-devel libatomic-devel"
+short_desc="C++ library providing portable SIMD/vector intrinsics"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=7ca6af7dc2e3e054de9e17b9dfd88609a7fd202812b1c216f43cc41647c97311
+# Build fails for armv7, see https://github.com/google/highway/issues/834
+archs="~armv7l"
+
+if [ "$CROSS_BUILD" ]; then
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi

From 99c5a9fa4a5d82d5bdc27dc48efdba4ef9fdfc9e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.7.0

---
 common/shlibs           |  2 ++
 srcpkgs/libjxl-devel    |  1 +
 srcpkgs/libjxl-plugins  |  1 +
 srcpkgs/libjxl-tools    |  1 +
 srcpkgs/libjxl/template | 75 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 80 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index 02780902e137..f519077a77c3 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4186,3 +4186,5 @@ libabsl_strings.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_throw_delegate.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_time_zone.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_spinlock_wait.so.2206.0.0 abseil-cpp-20220623.1_1
+libjxl.so.0.7 libjxl-0.7.0_1
+libjxl_threads.so.0.7 libjxl-0.7.0_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..677c29f83471
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,75 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=0.7.0
+revision=1
+build_style=cmake
+configure_args="-DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF
+ -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
+hostmakedepends="tar pkg-config asciidoc"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel
+ libopenexr-devel libwebp-devel gdk-pixbuf-devel gimp-devel gtest-devel
+ xdg-utils"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="BSD-3-Clause, custom:Patent grant"
+homepage="https://jpeg.org/jpegxl/"
+_testdata_hash=d81acaca8e037d9514f3211045c77e7467bcb814
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/v${version}.tar.gz
+ https://github.com/libjxl/testdata/archive/${_testdata_hash}.tar.gz>testdata-${_testdata_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="3114bba1fabb36f6f4adc2632717209aa6f84077bc4e93b420e0d63fa0455c5e
+ 1a4d4be37f9a4dd69134832665fda8a772eeb95cbcdaa79d9b1850c23ae50521
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="testdata-${_testdata_hash}.tar.gz skcms-${_skcms_hash}.tar.gz"
+# Build fails for armv7, see https://github.com/libjxl/libjxl/issues/1748
+archs="~armv7l"
+
+if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+	makedepends+=" libatomic-devel"
+fi
+
+if [ "$CROSS_BUILD" ]; then
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf testdata-${_testdata_hash}.tar.gz --strip-components=1 -C ${wrksrc}/testdata
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+post_install() {
+	vlicense LICENSE
+	vlicense PATENTS
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="libjxl>=${version}_${revision} highway brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From ccb40c12dcd43b01518600e1f6753800187a5c5d Mon Sep 17 00:00:00 2001
From: Joshua <joshua@kraemer.link>
Date: Wed, 30 Mar 2022 21:23:16 +0200
Subject: [PATCH 3/3] kimageformats: enable JPEG XL support

---
 srcpkgs/kimageformats/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kimageformats/template b/srcpkgs/kimageformats/template
index 8af5fe7f53e7..19eb5c6a227d 100644
--- a/srcpkgs/kimageformats/template
+++ b/srcpkgs/kimageformats/template
@@ -1,12 +1,12 @@
 # Template file for 'kimageformats'
 pkgname=kimageformats
 version=5.98.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKIMAGEFORMATS_HEIF=ON"
 hostmakedepends="kcoreaddons extra-cmake-modules qt5-qmake qt5-host-tools
  pkg-config"
-makedepends="karchive-devel libopenexr-devel libheif-devel"
+makedepends="karchive-devel libopenexr-devel libheif-devel libjxl-devel"
 short_desc="KDE Plugins to allow QImage to support extra file formats"
 maintainer="John <me@johnnynator.dev>"
 license="LGPL-2.0-or-later"

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR PATCH] [Updated] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (42 preceding siblings ...)
  2022-10-17 16:15 ` joshuakraemer
@ 2022-10-17 16:19 ` joshuakraemer
  2022-10-17 16:57 ` joshuakraemer
                   ` (20 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-10-17 16:19 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

There is an updated pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 6557 bytes --]

From d1ef0550697bbe67d93a7591e04bc8d4a710f122 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-1.0.1

---
 srcpkgs/highway/template | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..1e0debf57da8
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,19 @@
+# Template file for 'highway'
+pkgname=highway
+version=1.0.1
+revision=1
+# Build fails for armv7, see https://github.com/google/highway/issues/834
+archs="~armv7l"
+build_style=cmake
+configure_args="-DHWY_SYSTEM_GTEST=ON -DHWY_ENABLE_EXAMPLES=OFF"
+makedepends="gtest-devel libatomic-devel"
+short_desc="C++ library providing portable SIMD/vector intrinsics"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=7ca6af7dc2e3e054de9e17b9dfd88609a7fd202812b1c216f43cc41647c97311
+
+if [ "$CROSS_BUILD" ]; then
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi

From 234a5184fae0d7103318aba584ea2ce55220a270 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.7.0

---
 common/shlibs           |  2 ++
 srcpkgs/libjxl-devel    |  1 +
 srcpkgs/libjxl-plugins  |  1 +
 srcpkgs/libjxl-tools    |  1 +
 srcpkgs/libjxl/template | 75 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 80 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index 02780902e137..f519077a77c3 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4186,3 +4186,5 @@ libabsl_strings.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_throw_delegate.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_time_zone.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_spinlock_wait.so.2206.0.0 abseil-cpp-20220623.1_1
+libjxl.so.0.7 libjxl-0.7.0_1
+libjxl_threads.so.0.7 libjxl-0.7.0_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..706d37bb10ae
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,75 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=0.7.0
+revision=1
+# Build fails for armv7, see https://github.com/libjxl/libjxl/issues/1748
+archs="~armv7l"
+build_style=cmake
+configure_args="-DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF
+ -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
+hostmakedepends="tar pkg-config asciidoc"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel
+ libopenexr-devel libwebp-devel gdk-pixbuf-devel gimp-devel gtest-devel
+ xdg-utils"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="BSD-3-Clause, custom:Patent grant"
+homepage="https://jpeg.org/jpegxl/"
+_testdata_hash=d81acaca8e037d9514f3211045c77e7467bcb814
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/v${version}.tar.gz
+ https://github.com/libjxl/testdata/archive/${_testdata_hash}.tar.gz>testdata-${_testdata_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="3114bba1fabb36f6f4adc2632717209aa6f84077bc4e93b420e0d63fa0455c5e
+ 1a4d4be37f9a4dd69134832665fda8a772eeb95cbcdaa79d9b1850c23ae50521
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="testdata-${_testdata_hash}.tar.gz skcms-${_skcms_hash}.tar.gz"
+
+if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+	makedepends+=" libatomic-devel"
+fi
+
+if [ "$CROSS_BUILD" ]; then
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf testdata-${_testdata_hash}.tar.gz --strip-components=1 -C ${wrksrc}/testdata
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+post_install() {
+	vlicense LICENSE
+	vlicense PATENTS
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="libjxl>=${version}_${revision} highway brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From 0a8bb7432c74499deb887e1d35dc021d676ab7be Mon Sep 17 00:00:00 2001
From: Joshua <joshua@kraemer.link>
Date: Wed, 30 Mar 2022 21:23:16 +0200
Subject: [PATCH 3/3] kimageformats: enable JPEG XL support

---
 srcpkgs/kimageformats/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kimageformats/template b/srcpkgs/kimageformats/template
index 8af5fe7f53e7..19eb5c6a227d 100644
--- a/srcpkgs/kimageformats/template
+++ b/srcpkgs/kimageformats/template
@@ -1,12 +1,12 @@
 # Template file for 'kimageformats'
 pkgname=kimageformats
 version=5.98.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKIMAGEFORMATS_HEIF=ON"
 hostmakedepends="kcoreaddons extra-cmake-modules qt5-qmake qt5-host-tools
  pkg-config"
-makedepends="karchive-devel libopenexr-devel libheif-devel"
+makedepends="karchive-devel libopenexr-devel libheif-devel libjxl-devel"
 short_desc="KDE Plugins to allow QImage to support extra file formats"
 maintainer="John <me@johnnynator.dev>"
 license="LGPL-2.0-or-later"

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR PATCH] [Updated] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (43 preceding siblings ...)
  2022-10-17 16:19 ` joshuakraemer
@ 2022-10-17 16:57 ` joshuakraemer
  2022-10-17 17:42 ` joshuakraemer
                   ` (19 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-10-17 16:57 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

There is an updated pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 6575 bytes --]

From d1ef0550697bbe67d93a7591e04bc8d4a710f122 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-1.0.1

---
 srcpkgs/highway/template | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..1e0debf57da8
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,19 @@
+# Template file for 'highway'
+pkgname=highway
+version=1.0.1
+revision=1
+# Build fails for armv7, see https://github.com/google/highway/issues/834
+archs="~armv7l"
+build_style=cmake
+configure_args="-DHWY_SYSTEM_GTEST=ON -DHWY_ENABLE_EXAMPLES=OFF"
+makedepends="gtest-devel libatomic-devel"
+short_desc="C++ library providing portable SIMD/vector intrinsics"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=7ca6af7dc2e3e054de9e17b9dfd88609a7fd202812b1c216f43cc41647c97311
+
+if [ "$CROSS_BUILD" ]; then
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi

From 57d3134722df21a648b4e517ffc22eac4d38cef8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.7.0

---
 common/shlibs           |  2 ++
 srcpkgs/libjxl-devel    |  1 +
 srcpkgs/libjxl-plugins  |  1 +
 srcpkgs/libjxl-tools    |  1 +
 srcpkgs/libjxl/template | 76 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 81 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index 02780902e137..f519077a77c3 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4186,3 +4186,5 @@ libabsl_strings.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_throw_delegate.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_time_zone.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_spinlock_wait.so.2206.0.0 abseil-cpp-20220623.1_1
+libjxl.so.0.7 libjxl-0.7.0_1
+libjxl_threads.so.0.7 libjxl-0.7.0_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..8c7698657d47
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,76 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=0.7.0
+revision=1
+# Build fails for armv7, see https://github.com/libjxl/libjxl/issues/1748
+archs="~armv7l"
+build_style=cmake
+configure_args="-DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF
+ -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
+hostmakedepends="tar pkg-config asciidoc"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel
+ libopenexr-devel libwebp-devel gdk-pixbuf-devel gimp-devel gtest-devel
+ xdg-utils"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="BSD-3-Clause, custom:Patent grant"
+homepage="https://jpeg.org/jpegxl/"
+_testdata_hash=d81acaca8e037d9514f3211045c77e7467bcb814
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/v${version}.tar.gz
+ https://github.com/libjxl/testdata/archive/${_testdata_hash}.tar.gz>testdata-${_testdata_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="3114bba1fabb36f6f4adc2632717209aa6f84077bc4e93b420e0d63fa0455c5e
+ 1a4d4be37f9a4dd69134832665fda8a772eeb95cbcdaa79d9b1850c23ae50521
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="testdata-${_testdata_hash}.tar.gz skcms-${_skcms_hash}.tar.gz"
+
+if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+	makedepends+=" libatomic-devel"
+	LIBS="-latomic"
+fi
+
+if [ "$CROSS_BUILD" ]; then
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf testdata-${_testdata_hash}.tar.gz --strip-components=1 -C ${wrksrc}/testdata
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+post_install() {
+	vlicense LICENSE
+	vlicense PATENTS
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="libjxl>=${version}_${revision} highway brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From 687d58c92f515e983cce0ea1be549b593b0238ca Mon Sep 17 00:00:00 2001
From: Joshua <joshua@kraemer.link>
Date: Wed, 30 Mar 2022 21:23:16 +0200
Subject: [PATCH 3/3] kimageformats: enable JPEG XL support

---
 srcpkgs/kimageformats/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kimageformats/template b/srcpkgs/kimageformats/template
index 8af5fe7f53e7..19eb5c6a227d 100644
--- a/srcpkgs/kimageformats/template
+++ b/srcpkgs/kimageformats/template
@@ -1,12 +1,12 @@
 # Template file for 'kimageformats'
 pkgname=kimageformats
 version=5.98.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKIMAGEFORMATS_HEIF=ON"
 hostmakedepends="kcoreaddons extra-cmake-modules qt5-qmake qt5-host-tools
  pkg-config"
-makedepends="karchive-devel libopenexr-devel libheif-devel"
+makedepends="karchive-devel libopenexr-devel libheif-devel libjxl-devel"
 short_desc="KDE Plugins to allow QImage to support extra file formats"
 maintainer="John <me@johnnynator.dev>"
 license="LGPL-2.0-or-later"

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (44 preceding siblings ...)
  2022-10-17 16:57 ` joshuakraemer
@ 2022-10-17 17:42 ` joshuakraemer
  2022-10-19 15:49 ` [PR REVIEW] " classabbyamp
                   ` (18 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-10-17 17:42 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 549 bytes --]

New comment by joshuakraemer on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#issuecomment-1281229674

Comment:
I've updated to highway 1.0.1 and libjxl 0.7.0. Unfortunately, the new releases don't build for armv7 (see https://github.com/google/highway/issues/834 and https://github.com/libjxl/libjxl/issues/1748). Even with these issues fixed upstream, it probably won't work for us (without patching at least), because highway seems to expect neon capabilities for the armv7 target, but Void uses `-mfpu=vfpv3`.

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR REVIEW] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (45 preceding siblings ...)
  2022-10-17 17:42 ` joshuakraemer
@ 2022-10-19 15:49 ` classabbyamp
  2022-10-19 15:49 ` classabbyamp
                   ` (17 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: classabbyamp @ 2022-10-19 15:49 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 311 bytes --]

New review comment by classabbyamp on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#discussion_r999634868

Comment:
```suggestion
case "$XBPS_TARGET_MACHINE" in
	armv7*) broken=https://github.com/google/highway/issues/834
esac
```
and move this down below the main block

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR REVIEW] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (50 preceding siblings ...)
  2022-10-19 15:49 ` classabbyamp
@ 2022-10-19 15:49 ` classabbyamp
  2022-10-20  8:13 ` [PR PATCH] [Updated] " joshuakraemer
                   ` (12 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: classabbyamp @ 2022-10-19 15:49 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 184 bytes --]

New review comment by classabbyamp on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#discussion_r999636111

Comment:
same thing as comment on highway

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR REVIEW] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (47 preceding siblings ...)
  2022-10-19 15:49 ` classabbyamp
@ 2022-10-19 15:49 ` classabbyamp
  2022-10-19 15:49 ` classabbyamp
                   ` (15 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: classabbyamp @ 2022-10-19 15:49 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 206 bytes --]

New review comment by classabbyamp on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#discussion_r999640668

Comment:
```suggestion
if [ -z "$XBPS_CHECK_PKGS" ]; then
```

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR REVIEW] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (48 preceding siblings ...)
  2022-10-19 15:49 ` classabbyamp
@ 2022-10-19 15:49 ` classabbyamp
  2022-10-19 15:49 ` classabbyamp
                   ` (14 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: classabbyamp @ 2022-10-19 15:49 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 375 bytes --]

New review comment by classabbyamp on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#discussion_r999641538

Comment:
I agree with paper, use `create_wrksrc` and `build_wrksrc` to extract these, then mv them to the right place. it's not more complex, it's more idiomatic within void-packages.

it also means you don't need to depend on tar

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR REVIEW] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (46 preceding siblings ...)
  2022-10-19 15:49 ` [PR REVIEW] " classabbyamp
@ 2022-10-19 15:49 ` classabbyamp
  2022-10-19 15:49 ` classabbyamp
                   ` (16 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: classabbyamp @ 2022-10-19 15:49 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 240 bytes --]

New review comment by classabbyamp on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#discussion_r999642034

Comment:
```suggestion
	depends="${sourcepkg}>=${version}_${revision} highway brotli-devel"
```

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR REVIEW] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (49 preceding siblings ...)
  2022-10-19 15:49 ` classabbyamp
@ 2022-10-19 15:49 ` classabbyamp
  2022-10-19 15:49 ` classabbyamp
                   ` (13 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: classabbyamp @ 2022-10-19 15:49 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 277 bytes --]

New review comment by classabbyamp on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#discussion_r999643147

Comment:
```suggestion
		vmove usr/share/man/man1
```
if, e.g., they add man pages in section 3, we don't want them in this package

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR PATCH] [Updated] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (51 preceding siblings ...)
  2022-10-19 15:49 ` classabbyamp
@ 2022-10-20  8:13 ` joshuakraemer
  2022-10-20  8:27 ` joshuakraemer
                   ` (11 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-10-20  8:13 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

There is an updated pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 6626 bytes --]

From 4f4372a608fc683a92167b4ed940ce32b12d9757 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-1.0.1

---
 srcpkgs/highway/template | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..6fc990d01d50
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,21 @@
+# Template file for 'highway'
+pkgname=highway
+version=1.0.1
+revision=1
+build_style=cmake
+configure_args="-DHWY_SYSTEM_GTEST=ON -DHWY_ENABLE_EXAMPLES=OFF"
+makedepends="gtest-devel libatomic-devel"
+short_desc="C++ library providing portable SIMD/vector intrinsics"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=7ca6af7dc2e3e054de9e17b9dfd88609a7fd202812b1c216f43cc41647c97311
+
+case "$XBPS_TARGET_MACHINE" in
+	armv7*) broken="https://github.com/google/highway/issues/834"
+esac
+
+if [ -z "$XBPS_CHECK_PKGS" ]; then
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi

From 97b81b1a6e5d249ff4f97d131764939189211990 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.7.0

---
 common/shlibs           |  2 ++
 srcpkgs/libjxl-devel    |  1 +
 srcpkgs/libjxl-plugins  |  1 +
 srcpkgs/libjxl-tools    |  1 +
 srcpkgs/libjxl/template | 78 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 83 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index ecab4d8f7ecc..fac9ae515e56 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4186,3 +4186,5 @@ libabsl_strings.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_throw_delegate.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_time_zone.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_spinlock_wait.so.2206.0.0 abseil-cpp-20220623.1_1
+libjxl.so.0.7 libjxl-0.7.0_1
+libjxl_threads.so.0.7 libjxl-0.7.0_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..70af696c1c38
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,78 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=0.7.0
+revision=1
+build_style=cmake
+configure_args="-DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF
+ -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
+hostmakedepends="tar pkg-config asciidoc"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel
+ libopenexr-devel libwebp-devel gdk-pixbuf-devel gimp-devel gtest-devel
+ xdg-utils"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="BSD-3-Clause, custom:Patent grant"
+homepage="https://jpeg.org/jpegxl/"
+_testdata_hash=d81acaca8e037d9514f3211045c77e7467bcb814
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/v${version}.tar.gz
+ https://github.com/libjxl/testdata/archive/${_testdata_hash}.tar.gz>testdata-${_testdata_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="3114bba1fabb36f6f4adc2632717209aa6f84077bc4e93b420e0d63fa0455c5e
+ 1a4d4be37f9a4dd69134832665fda8a772eeb95cbcdaa79d9b1850c23ae50521
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="testdata-${_testdata_hash}.tar.gz skcms-${_skcms_hash}.tar.gz"
+
+if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+	makedepends+=" libatomic-devel"
+	LIBS="-latomic"
+fi
+
+case "$XBPS_TARGET_MACHINE" in
+	armv7*) broken="https://github.com/libjxl/libjxl/issues/1748"
+esac
+
+if [ -z "$XBPS_CHECK_PKGS" ]; then
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf testdata-${_testdata_hash}.tar.gz --strip-components=1 -C ${wrksrc}/testdata
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+post_install() {
+	vlicense LICENSE
+	vlicense PATENTS
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="${sourcepkg}>=${version}_${revision} highway brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man/man1
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From 7ba2a7ee2b9dd9a6223bcb8b6850ad721724c2b0 Mon Sep 17 00:00:00 2001
From: Joshua <joshua@kraemer.link>
Date: Wed, 30 Mar 2022 21:23:16 +0200
Subject: [PATCH 3/3] kimageformats: enable JPEG XL support

---
 srcpkgs/kimageformats/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kimageformats/template b/srcpkgs/kimageformats/template
index 8af5fe7f53e7..19eb5c6a227d 100644
--- a/srcpkgs/kimageformats/template
+++ b/srcpkgs/kimageformats/template
@@ -1,12 +1,12 @@
 # Template file for 'kimageformats'
 pkgname=kimageformats
 version=5.98.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKIMAGEFORMATS_HEIF=ON"
 hostmakedepends="kcoreaddons extra-cmake-modules qt5-qmake qt5-host-tools
  pkg-config"
-makedepends="karchive-devel libopenexr-devel libheif-devel"
+makedepends="karchive-devel libopenexr-devel libheif-devel libjxl-devel"
 short_desc="KDE Plugins to allow QImage to support extra file formats"
 maintainer="John <me@johnnynator.dev>"
 license="LGPL-2.0-or-later"

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR PATCH] [Updated] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (52 preceding siblings ...)
  2022-10-20  8:13 ` [PR PATCH] [Updated] " joshuakraemer
@ 2022-10-20  8:27 ` joshuakraemer
  2022-10-20  8:32 ` joshuakraemer
                   ` (10 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-10-20  8:27 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

There is an updated pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 6652 bytes --]

From cd2d6867303d78a2f5228c65e5f2359a6d839b06 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-1.0.1

---
 srcpkgs/highway/template | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..f176bb05489c
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,22 @@
+# Template file for 'highway'
+pkgname=highway
+version=1.0.1
+revision=1
+build_style=cmake
+configure_args="-DHWY_SYSTEM_GTEST=ON -DHWY_ENABLE_EXAMPLES=OFF"
+short_desc="C++ library providing portable SIMD/vector intrinsics"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=7ca6af7dc2e3e054de9e17b9dfd88609a7fd202812b1c216f43cc41647c97311
+
+case "$XBPS_TARGET_MACHINE" in
+	armv7*) broken="https://github.com/google/highway/issues/834"
+esac
+
+if [ "$XBPS_CHECK_PKGS" ]; then
+	makedepends+=" gtest-devel libatomic-devel"
+else
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi

From 68057e2bc072fbe29677fe69122d3c7a9c44c185 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.7.0

---
 common/shlibs           |  2 ++
 srcpkgs/libjxl-devel    |  1 +
 srcpkgs/libjxl-plugins  |  1 +
 srcpkgs/libjxl-tools    |  1 +
 srcpkgs/libjxl/template | 79 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 84 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index ecab4d8f7ecc..fac9ae515e56 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4186,3 +4186,5 @@ libabsl_strings.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_throw_delegate.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_time_zone.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_spinlock_wait.so.2206.0.0 abseil-cpp-20220623.1_1
+libjxl.so.0.7 libjxl-0.7.0_1
+libjxl_threads.so.0.7 libjxl-0.7.0_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..60c229bc666c
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,79 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=0.7.0
+revision=1
+build_style=cmake
+configure_args="-DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF
+ -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
+hostmakedepends="tar pkg-config asciidoc"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel
+ libopenexr-devel libwebp-devel gdk-pixbuf-devel gimp-devel"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="BSD-3-Clause, custom:Patent grant"
+homepage="https://jpeg.org/jpegxl/"
+_testdata_hash=d81acaca8e037d9514f3211045c77e7467bcb814
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/v${version}.tar.gz
+ https://github.com/libjxl/testdata/archive/${_testdata_hash}.tar.gz>testdata-${_testdata_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="3114bba1fabb36f6f4adc2632717209aa6f84077bc4e93b420e0d63fa0455c5e
+ 1a4d4be37f9a4dd69134832665fda8a772eeb95cbcdaa79d9b1850c23ae50521
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="testdata-${_testdata_hash}.tar.gz skcms-${_skcms_hash}.tar.gz"
+
+if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+	makedepends+=" libatomic-devel"
+	LIBS="-latomic"
+fi
+
+if [ "$XBPS_CHECK_PKGS" ]; then
+	makedepends+=" gtest-devel xdg-utils"
+else
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi
+
+case "$XBPS_TARGET_MACHINE" in
+	armv7*) broken="https://github.com/libjxl/libjxl/issues/1748"
+esac
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf testdata-${_testdata_hash}.tar.gz --strip-components=1 -C ${wrksrc}/testdata
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+post_install() {
+	vlicense LICENSE
+	vlicense PATENTS
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="${sourcepkg}>=${version}_${revision} highway brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man/man1
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From c526d4f757c467275326207a1b11771783d2039d Mon Sep 17 00:00:00 2001
From: Joshua <joshua@kraemer.link>
Date: Wed, 30 Mar 2022 21:23:16 +0200
Subject: [PATCH 3/3] kimageformats: enable JPEG XL support

---
 srcpkgs/kimageformats/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kimageformats/template b/srcpkgs/kimageformats/template
index 8af5fe7f53e7..19eb5c6a227d 100644
--- a/srcpkgs/kimageformats/template
+++ b/srcpkgs/kimageformats/template
@@ -1,12 +1,12 @@
 # Template file for 'kimageformats'
 pkgname=kimageformats
 version=5.98.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKIMAGEFORMATS_HEIF=ON"
 hostmakedepends="kcoreaddons extra-cmake-modules qt5-qmake qt5-host-tools
  pkg-config"
-makedepends="karchive-devel libopenexr-devel libheif-devel"
+makedepends="karchive-devel libopenexr-devel libheif-devel libjxl-devel"
 short_desc="KDE Plugins to allow QImage to support extra file formats"
 maintainer="John <me@johnnynator.dev>"
 license="LGPL-2.0-or-later"

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR PATCH] [Updated] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (53 preceding siblings ...)
  2022-10-20  8:27 ` joshuakraemer
@ 2022-10-20  8:32 ` joshuakraemer
  2022-10-20  8:41 ` joshuakraemer
                   ` (9 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-10-20  8:32 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

There is an updated pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 6720 bytes --]

From 258c2812afa4d72de4a2921ad52daa8dc363276d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-1.0.1

---
 srcpkgs/highway/template | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..f9e697a5cfdf
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,26 @@
+# Template file for 'highway'
+pkgname=highway
+version=1.0.1
+revision=1
+build_style=cmake
+configure_args="-DHWY_SYSTEM_GTEST=ON -DHWY_ENABLE_EXAMPLES=OFF"
+short_desc="C++ library providing portable SIMD/vector intrinsics"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=7ca6af7dc2e3e054de9e17b9dfd88609a7fd202812b1c216f43cc41647c97311
+
+if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+	makedepends+=" libatomic-devel"
+fi
+
+if [ "$XBPS_CHECK_PKGS" ]; then
+	makedepends+=" gtest-devel"
+else
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi
+
+case "$XBPS_TARGET_MACHINE" in
+	armv7*) broken="https://github.com/google/highway/issues/834"
+esac

From 18f77db059ae833e544263c6000ad2e2590d4160 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.7.0

---
 common/shlibs           |  2 ++
 srcpkgs/libjxl-devel    |  1 +
 srcpkgs/libjxl-plugins  |  1 +
 srcpkgs/libjxl-tools    |  1 +
 srcpkgs/libjxl/template | 79 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 84 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index ecab4d8f7ecc..fac9ae515e56 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4186,3 +4186,5 @@ libabsl_strings.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_throw_delegate.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_time_zone.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_spinlock_wait.so.2206.0.0 abseil-cpp-20220623.1_1
+libjxl.so.0.7 libjxl-0.7.0_1
+libjxl_threads.so.0.7 libjxl-0.7.0_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..60c229bc666c
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,79 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=0.7.0
+revision=1
+build_style=cmake
+configure_args="-DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF
+ -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
+hostmakedepends="tar pkg-config asciidoc"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel
+ libopenexr-devel libwebp-devel gdk-pixbuf-devel gimp-devel"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="BSD-3-Clause, custom:Patent grant"
+homepage="https://jpeg.org/jpegxl/"
+_testdata_hash=d81acaca8e037d9514f3211045c77e7467bcb814
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/v${version}.tar.gz
+ https://github.com/libjxl/testdata/archive/${_testdata_hash}.tar.gz>testdata-${_testdata_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="3114bba1fabb36f6f4adc2632717209aa6f84077bc4e93b420e0d63fa0455c5e
+ 1a4d4be37f9a4dd69134832665fda8a772eeb95cbcdaa79d9b1850c23ae50521
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="testdata-${_testdata_hash}.tar.gz skcms-${_skcms_hash}.tar.gz"
+
+if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+	makedepends+=" libatomic-devel"
+	LIBS="-latomic"
+fi
+
+if [ "$XBPS_CHECK_PKGS" ]; then
+	makedepends+=" gtest-devel xdg-utils"
+else
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi
+
+case "$XBPS_TARGET_MACHINE" in
+	armv7*) broken="https://github.com/libjxl/libjxl/issues/1748"
+esac
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf testdata-${_testdata_hash}.tar.gz --strip-components=1 -C ${wrksrc}/testdata
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+post_install() {
+	vlicense LICENSE
+	vlicense PATENTS
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="${sourcepkg}>=${version}_${revision} highway brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man/man1
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From 225fed9da4b0122376cc2df98510a48a3b1252dd Mon Sep 17 00:00:00 2001
From: Joshua <joshua@kraemer.link>
Date: Wed, 30 Mar 2022 21:23:16 +0200
Subject: [PATCH 3/3] kimageformats: enable JPEG XL support

---
 srcpkgs/kimageformats/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kimageformats/template b/srcpkgs/kimageformats/template
index 8af5fe7f53e7..19eb5c6a227d 100644
--- a/srcpkgs/kimageformats/template
+++ b/srcpkgs/kimageformats/template
@@ -1,12 +1,12 @@
 # Template file for 'kimageformats'
 pkgname=kimageformats
 version=5.98.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKIMAGEFORMATS_HEIF=ON"
 hostmakedepends="kcoreaddons extra-cmake-modules qt5-qmake qt5-host-tools
  pkg-config"
-makedepends="karchive-devel libopenexr-devel libheif-devel"
+makedepends="karchive-devel libopenexr-devel libheif-devel libjxl-devel"
 short_desc="KDE Plugins to allow QImage to support extra file formats"
 maintainer="John <me@johnnynator.dev>"
 license="LGPL-2.0-or-later"

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR PATCH] [Updated] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (54 preceding siblings ...)
  2022-10-20  8:32 ` joshuakraemer
@ 2022-10-20  8:41 ` joshuakraemer
  2022-10-20  9:27 ` [PR REVIEW] " joshuakraemer
                   ` (8 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-10-20  8:41 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

There is an updated pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 6668 bytes --]

From 285a6b6abfef10130721a0f86d4421ce1a44855e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-1.0.1

---
 srcpkgs/highway/template | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..8871cccc8def
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,23 @@
+# Template file for 'highway'
+pkgname=highway
+version=1.0.1
+revision=1
+build_style=cmake
+configure_args="-DHWY_SYSTEM_GTEST=ON -DHWY_ENABLE_EXAMPLES=OFF"
+makedepends="libatomic-devel"
+short_desc="C++ library providing portable SIMD/vector intrinsics"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=7ca6af7dc2e3e054de9e17b9dfd88609a7fd202812b1c216f43cc41647c97311
+
+if [ "$XBPS_CHECK_PKGS" ]; then
+	makedepends+=" gtest-devel"
+else
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi
+
+case "$XBPS_TARGET_MACHINE" in
+	armv7*) broken="https://github.com/google/highway/issues/834"
+esac

From 94853ff0eb7ea9a75949d421646ec38f15d2d638 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.7.0

---
 common/shlibs           |  2 ++
 srcpkgs/libjxl-devel    |  1 +
 srcpkgs/libjxl-plugins  |  1 +
 srcpkgs/libjxl-tools    |  1 +
 srcpkgs/libjxl/template | 79 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 84 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index ecab4d8f7ecc..fac9ae515e56 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4186,3 +4186,5 @@ libabsl_strings.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_throw_delegate.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_time_zone.so.2206.0.0 abseil-cpp-20220623.1_1
 libabsl_spinlock_wait.so.2206.0.0 abseil-cpp-20220623.1_1
+libjxl.so.0.7 libjxl-0.7.0_1
+libjxl_threads.so.0.7 libjxl-0.7.0_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..60c229bc666c
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,79 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=0.7.0
+revision=1
+build_style=cmake
+configure_args="-DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF
+ -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
+hostmakedepends="tar pkg-config asciidoc"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel
+ libopenexr-devel libwebp-devel gdk-pixbuf-devel gimp-devel"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="BSD-3-Clause, custom:Patent grant"
+homepage="https://jpeg.org/jpegxl/"
+_testdata_hash=d81acaca8e037d9514f3211045c77e7467bcb814
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/v${version}.tar.gz
+ https://github.com/libjxl/testdata/archive/${_testdata_hash}.tar.gz>testdata-${_testdata_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="3114bba1fabb36f6f4adc2632717209aa6f84077bc4e93b420e0d63fa0455c5e
+ 1a4d4be37f9a4dd69134832665fda8a772eeb95cbcdaa79d9b1850c23ae50521
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="testdata-${_testdata_hash}.tar.gz skcms-${_skcms_hash}.tar.gz"
+
+if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+	makedepends+=" libatomic-devel"
+	LIBS="-latomic"
+fi
+
+if [ "$XBPS_CHECK_PKGS" ]; then
+	makedepends+=" gtest-devel xdg-utils"
+else
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi
+
+case "$XBPS_TARGET_MACHINE" in
+	armv7*) broken="https://github.com/libjxl/libjxl/issues/1748"
+esac
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf testdata-${_testdata_hash}.tar.gz --strip-components=1 -C ${wrksrc}/testdata
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+post_install() {
+	vlicense LICENSE
+	vlicense PATENTS
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="${sourcepkg}>=${version}_${revision} highway brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man/man1
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From e61da5081621a5adbb53ef3e519ab8b48ad838f7 Mon Sep 17 00:00:00 2001
From: Joshua <joshua@kraemer.link>
Date: Wed, 30 Mar 2022 21:23:16 +0200
Subject: [PATCH 3/3] kimageformats: enable JPEG XL support

---
 srcpkgs/kimageformats/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kimageformats/template b/srcpkgs/kimageformats/template
index 8af5fe7f53e7..19eb5c6a227d 100644
--- a/srcpkgs/kimageformats/template
+++ b/srcpkgs/kimageformats/template
@@ -1,12 +1,12 @@
 # Template file for 'kimageformats'
 pkgname=kimageformats
 version=5.98.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DKIMAGEFORMATS_HEIF=ON"
 hostmakedepends="kcoreaddons extra-cmake-modules qt5-qmake qt5-host-tools
  pkg-config"
-makedepends="karchive-devel libopenexr-devel libheif-devel"
+makedepends="karchive-devel libopenexr-devel libheif-devel libjxl-devel"
 short_desc="KDE Plugins to allow QImage to support extra file formats"
 maintainer="John <me@johnnynator.dev>"
 license="LGPL-2.0-or-later"

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR REVIEW] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (55 preceding siblings ...)
  2022-10-20  8:41 ` joshuakraemer
@ 2022-10-20  9:27 ` joshuakraemer
  2022-10-20  9:27 ` joshuakraemer
                   ` (7 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-10-20  9:27 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 159 bytes --]

New review comment by joshuakraemer on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#discussion_r1000384059

Comment:
Done.

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR REVIEW] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (56 preceding siblings ...)
  2022-10-20  9:27 ` [PR REVIEW] " joshuakraemer
@ 2022-10-20  9:27 ` joshuakraemer
  2022-10-20  9:29 ` joshuakraemer
                   ` (6 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-10-20  9:27 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 159 bytes --]

New review comment by joshuakraemer on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#discussion_r1000384531

Comment:
Done.

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR REVIEW] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (57 preceding siblings ...)
  2022-10-20  9:27 ` joshuakraemer
@ 2022-10-20  9:29 ` joshuakraemer
  2022-10-20  9:30 ` joshuakraemer
                   ` (5 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-10-20  9:29 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 251 bytes --]

New review comment by joshuakraemer on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#discussion_r1000386855

Comment:
Done (and I've also added a condition to only add the pertinent dependencies if tests are built).

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR REVIEW] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (58 preceding siblings ...)
  2022-10-20  9:29 ` joshuakraemer
@ 2022-10-20  9:30 ` joshuakraemer
  2022-10-20  9:30 ` joshuakraemer
                   ` (4 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-10-20  9:30 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 354 bytes --]

New review comment by joshuakraemer on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#discussion_r1000387296

Comment:
The skcms archive doesn't have a root directory; therefore, I think it would be necessary to move every single file after automatic extraction with the `create_worksrc` method. Or how would you do it?

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR REVIEW] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (59 preceding siblings ...)
  2022-10-20  9:30 ` joshuakraemer
@ 2022-10-20  9:30 ` joshuakraemer
  2022-10-20  9:30 ` joshuakraemer
                   ` (3 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-10-20  9:30 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 159 bytes --]

New review comment by joshuakraemer on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#discussion_r1000387598

Comment:
Done.

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR REVIEW] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (60 preceding siblings ...)
  2022-10-20  9:30 ` joshuakraemer
@ 2022-10-20  9:30 ` joshuakraemer
  2022-10-20  9:31 ` joshuakraemer
                   ` (2 subsequent siblings)
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-10-20  9:30 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 159 bytes --]

New review comment by joshuakraemer on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#discussion_r1000387814

Comment:
Done.

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (61 preceding siblings ...)
  2022-10-20  9:30 ` joshuakraemer
@ 2022-10-20  9:31 ` joshuakraemer
  2023-01-19  2:00 ` github-actions
  2023-01-22 10:53 ` [PR PATCH] [Updated] " joshuakraemer
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2022-10-20  9:31 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 229 bytes --]

New comment by joshuakraemer on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#issuecomment-1285224227

Comment:
@classabbyamp, thank you very much for your review. Please see my comments above.

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (62 preceding siblings ...)
  2022-10-20  9:31 ` joshuakraemer
@ 2023-01-19  2:00 ` github-actions
  2023-01-22 10:53 ` [PR PATCH] [Updated] " joshuakraemer
  64 siblings, 0 replies; 66+ messages in thread
From: github-actions @ 2023-01-19  2:00 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 305 bytes --]

New comment by github-actions[bot] on void-packages repository

https://github.com/void-linux/void-packages/pull/31397#issuecomment-1396344597

Comment:
Pull Requests become stale 90 days after last activity and are closed 14 days after that.  If this pull request is still relevant bump it or assign it.

^ permalink raw reply	[flat|nested] 66+ messages in thread

* Re: [PR PATCH] [Updated] New packages: highway, libjxl, qt-jpegxl-image-plugin
  2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
                   ` (63 preceding siblings ...)
  2023-01-19  2:00 ` github-actions
@ 2023-01-22 10:53 ` joshuakraemer
  64 siblings, 0 replies; 66+ messages in thread
From: joshuakraemer @ 2023-01-22 10:53 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 767 bytes --]

There is an updated pull request by joshuakraemer against master on the void-packages repository

https://github.com/joshuakraemer/void-packages jpeg-xl
https://github.com/void-linux/void-packages/pull/31397

New packages: highway, libjxl, qt-jpegxl-image-plugin
#### General
- [x] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)

#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me

These packages provide support for the JPEG XL image format.

A patch file from https://github.com/void-linux/void-packages/pull/31397.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jpeg-xl-31397.patch --]
[-- Type: text/x-diff, Size: 6616 bytes --]

From 211f52178073d3a67e33864bdbef786d384bdb0e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 00:44:37 +0200
Subject: [PATCH 1/3] New package: highway-1.0.1

---
 srcpkgs/highway/template | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
 create mode 100644 srcpkgs/highway/template

diff --git a/srcpkgs/highway/template b/srcpkgs/highway/template
new file mode 100644
index 000000000000..8871cccc8def
--- /dev/null
+++ b/srcpkgs/highway/template
@@ -0,0 +1,23 @@
+# Template file for 'highway'
+pkgname=highway
+version=1.0.1
+revision=1
+build_style=cmake
+configure_args="-DHWY_SYSTEM_GTEST=ON -DHWY_ENABLE_EXAMPLES=OFF"
+makedepends="libatomic-devel"
+short_desc="C++ library providing portable SIMD/vector intrinsics"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="Apache-2.0"
+homepage="https://github.com/google/highway"
+distfiles="https://github.com/google/highway/archive/${version}.tar.gz"
+checksum=7ca6af7dc2e3e054de9e17b9dfd88609a7fd202812b1c216f43cc41647c97311
+
+if [ "$XBPS_CHECK_PKGS" ]; then
+	makedepends+=" gtest-devel"
+else
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi
+
+case "$XBPS_TARGET_MACHINE" in
+	armv7*) broken="https://github.com/google/highway/issues/834"
+esac

From 6042a35db745cadbe940fb0f6fc5ad3cd69b4a42 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joshua=20Kr=C3=A4mer?= <joshua@kraemer.link>
Date: Wed, 9 Jun 2021 01:52:29 +0200
Subject: [PATCH 2/3] New package: libjxl-0.7.0

---
 common/shlibs           |  2 ++
 srcpkgs/libjxl-devel    |  1 +
 srcpkgs/libjxl-plugins  |  1 +
 srcpkgs/libjxl-tools    |  1 +
 srcpkgs/libjxl/template | 79 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 84 insertions(+)
 create mode 120000 srcpkgs/libjxl-devel
 create mode 120000 srcpkgs/libjxl-plugins
 create mode 120000 srcpkgs/libjxl-tools
 create mode 100644 srcpkgs/libjxl/template

diff --git a/common/shlibs b/common/shlibs
index ca4bda546fe7..c165217dfc8c 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4224,3 +4224,5 @@ libIlmThread-3_1.so.30 libopenexr-3.1.5_1
 libOpenEXR-3_1.so.30 libopenexr-3.1.5_1
 libOpenEXRCore-3_1.so.30 libopenexr-3.1.5_1
 libOpenEXRUtil-3_1.so.30 libopenexr-3.1.5_1
+libjxl.so.0.7 libjxl-0.7.0_1
+libjxl_threads.so.0.7 libjxl-0.7.0_1
diff --git a/srcpkgs/libjxl-devel b/srcpkgs/libjxl-devel
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-devel
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-plugins b/srcpkgs/libjxl-plugins
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-plugins
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl-tools b/srcpkgs/libjxl-tools
new file mode 120000
index 000000000000..ddc1abf827d9
--- /dev/null
+++ b/srcpkgs/libjxl-tools
@@ -0,0 +1 @@
+libjxl
\ No newline at end of file
diff --git a/srcpkgs/libjxl/template b/srcpkgs/libjxl/template
new file mode 100644
index 000000000000..60c229bc666c
--- /dev/null
+++ b/srcpkgs/libjxl/template
@@ -0,0 +1,79 @@
+# Template file for 'libjxl'
+pkgname=libjxl
+version=0.7.0
+revision=1
+build_style=cmake
+configure_args="-DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF
+ -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_PLUGINS=ON"
+hostmakedepends="tar pkg-config asciidoc"
+makedepends="brotli-devel highway libpng-devel giflib-devel libjpeg-turbo-devel
+ libopenexr-devel libwebp-devel gdk-pixbuf-devel gimp-devel"
+short_desc="JPEG XL image format reference implementation"
+maintainer="Joshua Krämer <joshua@kraemer.link>"
+license="BSD-3-Clause, custom:Patent grant"
+homepage="https://jpeg.org/jpegxl/"
+_testdata_hash=d81acaca8e037d9514f3211045c77e7467bcb814
+_skcms_hash=64374756e03700d649f897dbd98c95e78c30c7da
+distfiles="https://github.com/libjxl/libjxl/archive/v${version}.tar.gz
+ https://github.com/libjxl/testdata/archive/${_testdata_hash}.tar.gz>testdata-${_testdata_hash}.tar.gz
+ https://skia.googlesource.com/skcms/+archive/${_skcms_hash}.tar.gz>skcms-${_skcms_hash}.tar.gz"
+checksum="3114bba1fabb36f6f4adc2632717209aa6f84077bc4e93b420e0d63fa0455c5e
+ 1a4d4be37f9a4dd69134832665fda8a772eeb95cbcdaa79d9b1850c23ae50521
+ @a69230c7b6f03a178c93abc6edc832c040d6e198340193b27c3d04afecf8f617"
+skip_extraction="testdata-${_testdata_hash}.tar.gz skcms-${_skcms_hash}.tar.gz"
+
+if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+	makedepends+=" libatomic-devel"
+	LIBS="-latomic"
+fi
+
+if [ "$XBPS_CHECK_PKGS" ]; then
+	makedepends+=" gtest-devel xdg-utils"
+else
+	configure_args+=" -DBUILD_TESTING=OFF"
+fi
+
+case "$XBPS_TARGET_MACHINE" in
+	armv7*) broken="https://github.com/libjxl/libjxl/issues/1748"
+esac
+
+post_extract() {
+	cd ${XBPS_SRCDISTDIR}/libjxl-${version}
+	tar -xf testdata-${_testdata_hash}.tar.gz --strip-components=1 -C ${wrksrc}/testdata
+	tar -xf skcms-${_skcms_hash}.tar.gz -C ${wrksrc}/third_party/skcms
+}
+
+post_install() {
+	vlicense LICENSE
+	vlicense PATENTS
+}
+
+libjxl-devel_package() {
+	short_desc+=" - development files"
+	depends="${sourcepkg}>=${version}_${revision} highway brotli-devel"
+	pkg_install() {
+		vmove usr/include
+		vmove "usr/lib/*.a"
+		vmove "usr/lib/*.so"
+		vmove usr/lib/pkgconfig
+	}
+}
+
+libjxl-tools_package() {
+	short_desc+=" - tools"
+	pkg_install() {
+		vmove usr/bin
+		vmove usr/share/man/man1
+	}
+}
+
+libjxl-plugins_package() {
+	short_desc+=" - plugins"
+	depends="desktop-file-utils"
+	pkg_install() {
+		vmove usr/lib/gdk-pixbuf-2.0
+		vmove usr/lib/gimp
+		vmove usr/share/mime
+		vmove usr/share/thumbnailers
+	}
+}

From 5c3c21bf3bff96b902aa2ec1514c9ca5830af8b2 Mon Sep 17 00:00:00 2001
From: Joshua <joshua@kraemer.link>
Date: Wed, 30 Mar 2022 21:23:16 +0200
Subject: [PATCH 3/3] kimageformats: enable JPEG XL support

---
 srcpkgs/kimageformats/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kimageformats/template b/srcpkgs/kimageformats/template
index e48144056dd5..5a8d5358717b 100644
--- a/srcpkgs/kimageformats/template
+++ b/srcpkgs/kimageformats/template
@@ -1,12 +1,12 @@
 # Template file for 'kimageformats'
 pkgname=kimageformats
 version=5.101.0
-revision=2
+revision=3
 build_style=cmake
 configure_args="-DKIMAGEFORMATS_HEIF=ON"
 hostmakedepends="kcoreaddons extra-cmake-modules qt5-qmake qt5-host-tools
  pkg-config"
-makedepends="karchive-devel libopenexr-devel libheif-devel"
+makedepends="karchive-devel libopenexr-devel libheif-devel libjxl-devel"
 short_desc="KDE Plugins to allow QImage to support extra file formats"
 maintainer="John <me@johnnynator.dev>"
 license="LGPL-2.0-or-later"

^ permalink raw reply	[flat|nested] 66+ messages in thread

end of thread, other threads:[~2023-01-22 10:53 UTC | newest]

Thread overview: 66+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-10  9:12 [PR PATCH] New packages: highway, libjxl, qt-jpegxl-image-plugin joshuakraemer
2021-06-10  9:30 ` [PR PATCH] [Updated] " joshuakraemer
2021-06-11 22:29 ` joshuakraemer
2021-08-06 19:49 ` joshuakraemer
2021-08-06 20:20 ` joshuakraemer
2021-11-08 18:00 ` mustaqimM
2022-03-30 10:42 ` tibequadorian
2022-03-30 10:46 ` tibequadorian
2022-03-30 18:48 ` [PR PATCH] [Updated] " joshuakraemer
2022-03-30 19:06 ` joshuakraemer
2022-03-30 19:23 ` [PR REVIEW] " tibequadorian
2022-03-30 19:23 ` tibequadorian
2022-03-30 19:25 ` tibequadorian
2022-03-30 20:24 ` tibequadorian
2022-03-31  9:54 ` [PR PATCH] [Updated] " joshuakraemer
2022-03-31 13:36 ` [PR REVIEW] " tibequadorian
2022-04-01 10:01 ` [PR PATCH] [Updated] " joshuakraemer
2022-04-12 15:33 ` joshuakraemer
2022-04-12 15:56 ` joshuakraemer
2022-04-12 19:16 ` joshuakraemer
2022-04-24 17:01 ` mustaqimM
2022-04-24 17:16 ` mustaqimM
2022-04-25  7:48 ` [PR REVIEW] " paper42
2022-04-25  7:48 ` paper42
2022-04-27 17:52 ` [PR PATCH] [Updated] " joshuakraemer
2022-04-27 17:54 ` [PR REVIEW] " joshuakraemer
2022-04-27 17:56 ` joshuakraemer
2022-04-27 18:17 ` tibequadorian
2022-04-27 18:18 ` tibequadorian
2022-04-27 18:57 ` [PR PATCH] [Updated] " joshuakraemer
2022-04-27 19:03 ` [PR REVIEW] " joshuakraemer
2022-05-24 18:13 ` tibequadorian
2022-05-30 14:18 ` [PR PATCH] [Updated] " joshuakraemer
2022-05-30 14:52 ` joshuakraemer
2022-05-30 14:52 ` joshuakraemer
2022-05-30 14:52 ` joshuakraemer
2022-08-29  2:14 ` github-actions
2022-08-29  5:33 ` mustaqimM
2022-10-16 18:26 ` [PR PATCH] [Updated] " joshuakraemer
2022-10-16 18:51 ` joshuakraemer
2022-10-17 14:41 ` joshuakraemer
2022-10-17 15:30 ` joshuakraemer
2022-10-17 16:02 ` joshuakraemer
2022-10-17 16:15 ` joshuakraemer
2022-10-17 16:19 ` joshuakraemer
2022-10-17 16:57 ` joshuakraemer
2022-10-17 17:42 ` joshuakraemer
2022-10-19 15:49 ` [PR REVIEW] " classabbyamp
2022-10-19 15:49 ` classabbyamp
2022-10-19 15:49 ` classabbyamp
2022-10-19 15:49 ` classabbyamp
2022-10-19 15:49 ` classabbyamp
2022-10-19 15:49 ` classabbyamp
2022-10-20  8:13 ` [PR PATCH] [Updated] " joshuakraemer
2022-10-20  8:27 ` joshuakraemer
2022-10-20  8:32 ` joshuakraemer
2022-10-20  8:41 ` joshuakraemer
2022-10-20  9:27 ` [PR REVIEW] " joshuakraemer
2022-10-20  9:27 ` joshuakraemer
2022-10-20  9:29 ` joshuakraemer
2022-10-20  9:30 ` joshuakraemer
2022-10-20  9:30 ` joshuakraemer
2022-10-20  9:30 ` joshuakraemer
2022-10-20  9:31 ` joshuakraemer
2023-01-19  2:00 ` github-actions
2023-01-22 10:53 ` [PR PATCH] [Updated] " joshuakraemer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).