aboutsummaryrefslogtreecommitdiff
path: root/extra
diff options
context:
space:
mode:
Diffstat (limited to 'extra')
-rwxr-xr-xextra/Vulkan-Headers/build9
-rw-r--r--extra/Vulkan-Headers/checksums2
-rw-r--r--extra/Vulkan-Headers/depends1
-rw-r--r--extra/Vulkan-Headers/meta3
-rw-r--r--extra/Vulkan-Headers/sources1
-rw-r--r--extra/Vulkan-Headers/version1
-rw-r--r--extra/alsa-lib/checksums2
-rw-r--r--extra/alsa-lib/sources2
-rw-r--r--extra/alsa-lib/version2
-rw-r--r--extra/alsa-utils/checksums2
-rw-r--r--extra/alsa-utils/sources2
-rw-r--r--extra/alsa-utils/version2
-rw-r--r--extra/bash/checksums22
-rw-r--r--extra/bash/sources22
-rw-r--r--extra/bash/version2
-rw-r--r--extra/bind/checksums2
-rw-r--r--extra/bind/sources2
-rw-r--r--extra/bind/version2
-rw-r--r--extra/bmake/checksums2
-rw-r--r--extra/bmake/sources2
-rw-r--r--extra/bmake/version2
-rwxr-xr-xextra/brotli/build20
-rw-r--r--extra/brotli/checksums2
-rw-r--r--extra/brotli/depends1
-rw-r--r--extra/brotli/meta3
-rw-r--r--extra/brotli/sources1
-rw-r--r--extra/brotli/version1
-rwxr-xr-xextra/cairo/build37
-rw-r--r--extra/cairo/checksums3
-rw-r--r--extra/cairo/sources2
-rw-r--r--extra/cairo/version2
-rwxr-xr-xextra/catgirl/build1
-rw-r--r--extra/catgirl/checksums2
-rw-r--r--extra/catgirl/sources2
-rw-r--r--extra/catgirl/version2
-rw-r--r--extra/ccache/checksums2
-rw-r--r--extra/ccache/sources2
-rw-r--r--extra/ccache/version2
-rw-r--r--extra/cmake/checksums2
-rw-r--r--extra/cmake/sources2
-rw-r--r--extra/cmake/version2
-rwxr-xr-xextra/dhcpcd/build3
-rw-r--r--extra/dhcpcd/checksums2
-rw-r--r--extra/dhcpcd/sources2
-rw-r--r--extra/dhcpcd/version2
-rw-r--r--extra/dialog/checksums2
-rw-r--r--extra/dialog/sources2
-rw-r--r--extra/dialog/version2
-rw-r--r--extra/dmenu/checksums2
-rw-r--r--extra/dmenu/sources2
-rw-r--r--extra/dmenu/version2
-rw-r--r--extra/dropbear/checksums2
-rw-r--r--extra/dropbear/sources2
-rw-r--r--extra/dropbear/version2
-rwxr-xr-xextra/efivar/build1
-rw-r--r--extra/efivar/checksums3
-rw-r--r--extra/efivar/patches/musl-compat.patch20
-rw-r--r--extra/efivar/sources3
-rw-r--r--extra/efivar/version2
-rw-r--r--extra/entr/checksums2
-rw-r--r--extra/entr/sources2
-rw-r--r--extra/entr/version2
-rw-r--r--extra/expat/checksums2
-rw-r--r--extra/expat/sources2
-rw-r--r--extra/expat/version2
-rw-r--r--extra/ffmpeg/checksums2
-rw-r--r--extra/ffmpeg/sources2
-rw-r--r--extra/ffmpeg/version2
-rw-r--r--extra/fontconfig/checksums2
-rw-r--r--extra/fontconfig/sources2
-rw-r--r--extra/fontconfig/version2
-rw-r--r--extra/freetype-harfbuzz/checksums4
-rw-r--r--extra/freetype-harfbuzz/depends1
-rw-r--r--extra/freetype-harfbuzz/sources4
-rw-r--r--extra/freetype-harfbuzz/version2
-rw-r--r--extra/fribidi/checksums2
-rw-r--r--extra/fribidi/sources2
-rw-r--r--extra/fribidi/version2
-rwxr-xr-xextra/gcr/build3
-rw-r--r--extra/gcr/version2
-rw-r--r--extra/gcr4/checksums2
-rw-r--r--extra/gcr4/sources2
-rw-r--r--extra/gcr4/version2
-rw-r--r--extra/gdk-pixbuf/checksums2
-rw-r--r--extra/gdk-pixbuf/sources2
-rw-r--r--extra/gdk-pixbuf/version2
-rw-r--r--extra/giflib/checksums3
-rw-r--r--extra/giflib/sources2
-rw-r--r--extra/giflib/version2
-rw-r--r--extra/glib-networking/checksums2
-rw-r--r--extra/glib-networking/sources2
-rw-r--r--extra/glib-networking/version2
-rw-r--r--extra/glib/checksums2
-rw-r--r--extra/glib/sources2
-rw-r--r--extra/glib/version2
-rwxr-xr-xextra/glslang/build1
-rw-r--r--extra/glslang/checksums2
-rw-r--r--extra/glslang/sources2
-rw-r--r--extra/glslang/version2
-rwxr-xr-xextra/gnupg2/build5
-rw-r--r--extra/gnupg2/checksums2
-rw-r--r--extra/gnupg2/sources2
-rw-r--r--extra/gnupg2/version2
-rw-r--r--extra/gnutls/checksums2
-rw-r--r--extra/gnutls/sources2
-rw-r--r--extra/gnutls/version2
-rw-r--r--extra/go/checksums4
-rw-r--r--extra/go/patches/no-bash.patch150
-rw-r--r--extra/go/sources2
-rw-r--r--extra/go/version2
-rw-r--r--extra/gobject-introspection/checksums2
-rw-r--r--extra/gobject-introspection/sources2
-rw-r--r--extra/gobject-introspection/version2
-rw-r--r--extra/gst-plugins-base/checksums2
-rw-r--r--extra/gst-plugins-base/sources2
-rw-r--r--extra/gst-plugins-base/version2
-rw-r--r--extra/gst-plugins/checksums8
-rw-r--r--extra/gst-plugins/sources8
-rw-r--r--extra/gst-plugins/version2
-rw-r--r--extra/gstreamer/checksums2
-rw-r--r--extra/gstreamer/sources2
-rw-r--r--extra/gstreamer/version2
-rwxr-xr-xextra/gtk+3/build4
-rw-r--r--extra/gtk+3/checksums2
-rw-r--r--extra/gtk+3/depends16
-rw-r--r--extra/gtk+3/sources2
-rw-r--r--extra/gtk+3/version2
-rwxr-xr-xextra/gtk4/build6
-rw-r--r--extra/gtk4/checksums2
-rw-r--r--extra/gtk4/depends13
-rw-r--r--extra/gtk4/sources2
-rw-r--r--extra/gtk4/version2
-rw-r--r--extra/harfbuzz-icu/checksums2
-rw-r--r--extra/harfbuzz-icu/sources2
-rw-r--r--extra/harfbuzz-icu/version2
-rwxr-xr-xextra/hicolor-icon-theme/build8
-rw-r--r--extra/hicolor-icon-theme/checksums3
-rw-r--r--extra/hicolor-icon-theme/depends (renamed from extra/libxkbcommon/depends)0
-rw-r--r--extra/hicolor-icon-theme/sources2
-rw-r--r--extra/hicolor-icon-theme/version2
-rw-r--r--extra/hwdata/checksums2
-rw-r--r--extra/hwdata/sources2
-rw-r--r--extra/hwdata/version2
-rw-r--r--extra/icu/checksums2
-rw-r--r--extra/icu/sources2
-rw-r--r--extra/icu/version2
-rw-r--r--extra/imagemagick/checksums2
-rw-r--r--extra/imagemagick/sources2
-rw-r--r--extra/imagemagick/version2
-rw-r--r--extra/imlib2/checksums2
-rw-r--r--extra/imlib2/sources2
-rw-r--r--extra/imlib2/version2
-rw-r--r--extra/iptables/checksums2
-rw-r--r--extra/iptables/sources2
-rw-r--r--extra/iptables/version2
-rw-r--r--extra/libX11/checksums2
-rw-r--r--extra/libX11/sources2
-rw-r--r--extra/libX11/version2
-rw-r--r--extra/libXcursor/checksums2
-rw-r--r--extra/libXcursor/sources2
-rw-r--r--extra/libXcursor/version2
-rw-r--r--extra/libXext/checksums2
-rw-r--r--extra/libXext/sources2
-rw-r--r--extra/libXext/version2
-rw-r--r--extra/libXfont2/checksums2
-rw-r--r--extra/libXfont2/sources2
-rw-r--r--extra/libXfont2/version2
-rw-r--r--extra/libXi/checksums2
-rw-r--r--extra/libXi/sources2
-rw-r--r--extra/libXi/version2
-rw-r--r--extra/libXmu/checksums2
-rw-r--r--extra/libXmu/sources2
-rw-r--r--extra/libXmu/version2
-rw-r--r--extra/libarchive/checksums2
-rw-r--r--extra/libarchive/sources2
-rw-r--r--extra/libarchive/version2
-rw-r--r--extra/libass/checksums2
-rw-r--r--extra/libass/sources2
-rw-r--r--extra/libass/version2
-rw-r--r--extra/libassuan/checksums2
-rw-r--r--extra/libassuan/sources2
-rw-r--r--extra/libassuan/version2
-rwxr-xr-xextra/libclc/build11
-rw-r--r--extra/libclc/checksums2
-rw-r--r--extra/libclc/depends4
-rw-r--r--extra/libclc/meta3
-rw-r--r--extra/libclc/sources1
-rw-r--r--extra/libclc/version1
-rwxr-xr-xextra/libdisplay-info/build (renamed from extra/libxkbcommon/build)4
-rw-r--r--extra/libdisplay-info/checksums2
-rw-r--r--extra/libdisplay-info/depends1
-rw-r--r--extra/libdisplay-info/meta (renamed from extra/libxkbcommon/meta)2
-rw-r--r--extra/libdisplay-info/sources1
-rw-r--r--extra/libdisplay-info/version1
-rw-r--r--extra/libdrm/checksums2
-rw-r--r--extra/libdrm/sources2
-rw-r--r--extra/libdrm/version2
-rw-r--r--extra/libedit/checksums2
-rw-r--r--extra/libedit/sources2
-rw-r--r--extra/libedit/version2
-rw-r--r--extra/libelf/checksums2
-rw-r--r--extra/libelf/sources2
-rw-r--r--extra/libelf/version2
-rw-r--r--extra/libevdev/checksums2
-rw-r--r--extra/libevdev/sources2
-rw-r--r--extra/libevdev/version2
-rw-r--r--extra/libffi/checksums2
-rw-r--r--extra/libffi/sources2
-rw-r--r--extra/libffi/version2
-rw-r--r--extra/libfontenc/checksums2
-rw-r--r--extra/libfontenc/sources2
-rw-r--r--extra/libfontenc/version2
-rw-r--r--extra/libgcrypt/checksums2
-rw-r--r--extra/libgcrypt/sources2
-rw-r--r--extra/libgcrypt/version2
-rw-r--r--extra/libgit2/checksums2
-rw-r--r--extra/libgit2/sources2
-rw-r--r--extra/libgit2/version2
-rw-r--r--extra/libgpg-error/checksums2
-rw-r--r--extra/libgpg-error/sources2
-rw-r--r--extra/libgpg-error/version2
-rw-r--r--extra/libinput/checksums2
-rw-r--r--extra/libinput/sources2
-rw-r--r--extra/libinput/version2
-rw-r--r--extra/libjpeg-turbo/checksums2
-rw-r--r--extra/libjpeg-turbo/sources2
-rw-r--r--extra/libjpeg-turbo/version2
-rw-r--r--extra/libksba/checksums2
-rw-r--r--extra/libksba/sources2
-rw-r--r--extra/libksba/version2
-rwxr-xr-xextra/libpciaccess/build10
-rw-r--r--extra/libpciaccess/checksums2
-rw-r--r--extra/libpciaccess/depends1
-rw-r--r--extra/libpciaccess/sources2
-rw-r--r--extra/libpciaccess/version2
-rwxr-xr-xextra/libplacebo/build14
-rw-r--r--extra/libplacebo/checksums3
-rw-r--r--extra/libplacebo/depends4
-rw-r--r--extra/libplacebo/meta3
-rw-r--r--extra/libplacebo/sources2
-rw-r--r--extra/libplacebo/version1
-rwxr-xr-xextra/libpng/build2
-rw-r--r--extra/libpng/checksums3
-rw-r--r--extra/libpng/patches/libpng-1.6.37-apng.patch1728
-rw-r--r--extra/libpng/sources3
-rw-r--r--extra/libpng/version2
-rw-r--r--extra/libpsl/checksums2
-rw-r--r--extra/libpsl/sources2
-rw-r--r--extra/libpsl/version2
-rw-r--r--extra/libtirpc/checksums2
-rw-r--r--extra/libtirpc/sources2
-rw-r--r--extra/libtirpc/version2
-rwxr-xr-xextra/libuv/build10
-rw-r--r--extra/libuv/checksums2
-rw-r--r--extra/libuv/depends1
-rw-r--r--extra/libuv/meta3
-rw-r--r--extra/libuv/sources1
-rw-r--r--extra/libuv/version1
-rw-r--r--extra/libva-utils/checksums2
-rw-r--r--extra/libva-utils/sources2
-rw-r--r--extra/libva-utils/version2
-rw-r--r--extra/libva/checksums2
-rw-r--r--extra/libva/sources2
-rw-r--r--extra/libva/version2
-rw-r--r--extra/libvpx/checksums2
-rw-r--r--extra/libvpx/depends2
-rw-r--r--extra/libvpx/sources2
-rw-r--r--extra/libvpx/version2
-rw-r--r--extra/libwebp/checksums2
-rw-r--r--extra/libwebp/depends4
-rw-r--r--extra/libwebp/sources2
-rw-r--r--extra/libwebp/version2
-rw-r--r--extra/libwpe/checksums2
-rw-r--r--extra/libwpe/sources2
-rw-r--r--extra/libwpe/version2
-rw-r--r--extra/libxcb/checksums2
-rw-r--r--extra/libxcb/sources2
-rw-r--r--extra/libxcb/version2
-rw-r--r--extra/libxkbcommon/checksums2
-rw-r--r--extra/libxkbcommon/sources1
-rw-r--r--extra/libxkbcommon/version1
-rw-r--r--extra/libxkbfile/checksums2
-rw-r--r--extra/libxkbfile/sources2
-rw-r--r--extra/libxkbfile/version2
-rw-r--r--extra/libxml2/checksums2
-rw-r--r--extra/libxml2/sources2
-rw-r--r--extra/libxml2/version2
-rw-r--r--extra/libxslt/checksums2
-rw-r--r--extra/libxslt/sources2
-rw-r--r--extra/libxslt/version2
-rwxr-xr-xextra/links/build4
-rw-r--r--extra/links/checksums2
-rw-r--r--extra/links/sources2
-rw-r--r--extra/links/version2
-rw-r--r--extra/lzip/checksums2
-rw-r--r--extra/lzip/sources2
-rw-r--r--extra/lzip/version2
-rw-r--r--extra/man-pages/checksums2
-rw-r--r--extra/man-pages/sources2
-rw-r--r--extra/man-pages/version2
-rw-r--r--extra/mercurial/checksums2
-rw-r--r--extra/mercurial/sources2
-rw-r--r--extra/mercurial/version2
-rw-r--r--extra/mesa/checksums2
-rw-r--r--extra/mesa/depends4
-rw-r--r--extra/mesa/sources2
-rw-r--r--extra/mesa/version2
-rw-r--r--extra/meson/checksums2
-rw-r--r--extra/meson/sources2
-rw-r--r--extra/meson/version2
-rw-r--r--extra/nano/checksums2
-rw-r--r--extra/nano/sources2
-rw-r--r--extra/nano/version2
-rw-r--r--extra/ncurses/checksums2
-rw-r--r--extra/ncurses/sources2
-rw-r--r--extra/ncurses/version2
-rw-r--r--extra/nettle/checksums2
-rw-r--r--extra/nettle/sources2
-rw-r--r--extra/nettle/version2
-rwxr-xr-xextra/npth/build2
-rw-r--r--extra/npth/checksums3
-rw-r--r--extra/npth/sources2
-rw-r--r--extra/npth/version2
-rw-r--r--extra/openjpeg2/checksums2
-rw-r--r--extra/openjpeg2/sources2
-rw-r--r--extra/openjpeg2/version2
-rw-r--r--extra/p11-kit/checksums2
-rw-r--r--extra/p11-kit/sources2
-rw-r--r--extra/p11-kit/version2
-rw-r--r--extra/pango/checksums2
-rw-r--r--extra/pango/sources2
-rw-r--r--extra/pango/version2
-rw-r--r--extra/perl/checksums2
-rw-r--r--extra/perl/sources2
-rw-r--r--extra/perl/version2
-rw-r--r--extra/pinentry/checksums2
-rw-r--r--extra/pinentry/depends4
-rw-r--r--extra/pinentry/sources2
-rw-r--r--extra/pinentry/version2
-rwxr-xr-xextra/pixman/build12
-rw-r--r--extra/pixman/checksums2
-rw-r--r--extra/pixman/depends1
-rw-r--r--extra/pixman/sources2
-rw-r--r--extra/pixman/version2
-rw-r--r--extra/python/version2
-rwxr-xr-xextra/spirv-headers/build11
-rw-r--r--extra/spirv-headers/checksums2
-rw-r--r--extra/spirv-headers/depends1
-rw-r--r--extra/spirv-headers/meta3
-rw-r--r--extra/spirv-headers/sources1
-rw-r--r--extra/spirv-headers/version1
-rwxr-xr-xextra/spirv-llvm-translator/build11
-rw-r--r--extra/spirv-llvm-translator/checksums2
-rw-r--r--extra/spirv-llvm-translator/depends3
-rw-r--r--extra/spirv-llvm-translator/meta3
-rw-r--r--extra/spirv-llvm-translator/sources1
-rw-r--r--extra/spirv-llvm-translator/version1
-rwxr-xr-xextra/spirv-tools/build10
-rw-r--r--extra/spirv-tools/checksums2
-rw-r--r--extra/spirv-tools/depends3
-rw-r--r--extra/spirv-tools/meta3
-rw-r--r--extra/spirv-tools/sources1
-rw-r--r--extra/spirv-tools/version1
-rw-r--r--extra/sqlite/checksums2
-rw-r--r--extra/sqlite/sources2
-rw-r--r--extra/sqlite/version2
-rwxr-xr-xextra/vulkan-loader/build12
-rw-r--r--extra/vulkan-loader/checksums2
-rw-r--r--extra/vulkan-loader/depends6
-rw-r--r--extra/vulkan-loader/meta3
-rw-r--r--extra/vulkan-loader/sources1
-rw-r--r--extra/vulkan-loader/version1
-rwxr-xr-xextra/webkit2gtk/build4
-rw-r--r--extra/webkit2gtk/checksums2
-rw-r--r--extra/webkit2gtk/sources2
-rw-r--r--extra/webkit2gtk/version2
-rw-r--r--extra/wpebackend-fdo/checksums2
-rw-r--r--extra/wpebackend-fdo/sources2
-rw-r--r--extra/wpebackend-fdo/version2
-rw-r--r--extra/xcb-proto/checksums2
-rw-r--r--extra/xcb-proto/sources2
-rw-r--r--extra/xcb-proto/version2
382 files changed, 761 insertions, 2144 deletions
diff --git a/extra/Vulkan-Headers/build b/extra/Vulkan-Headers/build
new file mode 100755
index 00000000..cd659d72
--- /dev/null
+++ b/extra/Vulkan-Headers/build
@@ -0,0 +1,9 @@
+#!/bin/sh -e
+
+export DESTDIR="$1"
+
+cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr
+
+cmake --build build
+cmake --install build
diff --git a/extra/Vulkan-Headers/checksums b/extra/Vulkan-Headers/checksums
new file mode 100644
index 00000000..e363bccd
--- /dev/null
+++ b/extra/Vulkan-Headers/checksums
@@ -0,0 +1,2 @@
+%BLAKE3
+54dc4309414536c5007e91bc915be2b3ffbe932d7610f65c2b87bf201a471cb8 sdk-1.3.231.1.tar.gz
diff --git a/extra/Vulkan-Headers/depends b/extra/Vulkan-Headers/depends
new file mode 100644
index 00000000..7d91ec22
--- /dev/null
+++ b/extra/Vulkan-Headers/depends
@@ -0,0 +1 @@
+cmake make
diff --git a/extra/Vulkan-Headers/meta b/extra/Vulkan-Headers/meta
new file mode 100644
index 00000000..b27a6aa5
--- /dev/null
+++ b/extra/Vulkan-Headers/meta
@@ -0,0 +1,3 @@
+description: Vulkan header files
+license: Apache-2.0
+maintainer: Cem Keylan <cem@carbslinux.org>
diff --git a/extra/Vulkan-Headers/sources b/extra/Vulkan-Headers/sources
new file mode 100644
index 00000000..9a8fd99c
--- /dev/null
+++ b/extra/Vulkan-Headers/sources
@@ -0,0 +1 @@
+https://github.com/KhronosGroup/Vulkan-Headers/archive/sdk-1.3.231.1.tar.gz
diff --git a/extra/Vulkan-Headers/version b/extra/Vulkan-Headers/version
new file mode 100644
index 00000000..487b544f
--- /dev/null
+++ b/extra/Vulkan-Headers/version
@@ -0,0 +1 @@
+1.3.231.1 1
diff --git a/extra/alsa-lib/checksums b/extra/alsa-lib/checksums
index 0e741c10..53ac7b9f 100644
--- a/extra/alsa-lib/checksums
+++ b/extra/alsa-lib/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-2b4135a78ec571bc2c03cc816f606241192ca695a808a30a4b59f2c01a197b37 alsa-lib-1.2.10.tar.bz2
+7a845dcee9380a8fd5d319324d09eaea6b182b20aa00aac04de41c97b3511618 alsa-lib-1.2.12.tar.bz2
diff --git a/extra/alsa-lib/sources b/extra/alsa-lib/sources
index a7922620..f961a57d 100644
--- a/extra/alsa-lib/sources
+++ b/extra/alsa-lib/sources
@@ -1 +1 @@
-https://www.alsa-project.org/files/pub/lib/alsa-lib-1.2.10.tar.bz2
+https://www.alsa-project.org/files/pub/lib/alsa-lib-1.2.12.tar.bz2
diff --git a/extra/alsa-lib/version b/extra/alsa-lib/version
index 610f0a11..d9f2a341 100644
--- a/extra/alsa-lib/version
+++ b/extra/alsa-lib/version
@@ -1 +1 @@
-1.2.10 1
+1.2.12 1
diff --git a/extra/alsa-utils/checksums b/extra/alsa-utils/checksums
index 6e68ea14..3e52c358 100644
--- a/extra/alsa-utils/checksums
+++ b/extra/alsa-utils/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-9a57043733809e23d6cc4b3000f5add720f24e20384eed51251c7f0af00318b1 alsa-utils-1.2.10.tar.bz2
+83b4389cc882782097e44652abbc3716a1dea52ae41b67dee31474afceec0e4b alsa-utils-1.2.12.tar.bz2
diff --git a/extra/alsa-utils/sources b/extra/alsa-utils/sources
index cf1f1455..58db0c55 100644
--- a/extra/alsa-utils/sources
+++ b/extra/alsa-utils/sources
@@ -1 +1 @@
-https://www.alsa-project.org/files/pub/utils/alsa-utils-1.2.10.tar.bz2
+https://www.alsa-project.org/files/pub/utils/alsa-utils-1.2.12.tar.bz2
diff --git a/extra/alsa-utils/version b/extra/alsa-utils/version
index 610f0a11..d9f2a341 100644
--- a/extra/alsa-utils/version
+++ b/extra/alsa-utils/version
@@ -1 +1 @@
-1.2.10 1
+1.2.12 1
diff --git a/extra/bash/checksums b/extra/bash/checksums
index a8bb2b9c..39582fcd 100644
--- a/extra/bash/checksums
+++ b/extra/bash/checksums
@@ -15,3 +15,25 @@ bc44133f7aa522c7cae5ea33be95ee00691e6cdf16fcc2e50a5c1d7b96cd31eb bash52-010
5a9d3ce8861900a402a759423472593df20c5c8a2e471a4c19344c1f82f46e32 bash52-013
c2a560420ae2e6a50857d5b5073ae97069d9278666b6efcc598503c06f3cb478 bash52-014
6d14995ac6a5ffa5785f4d32cadf07bde602d4331b5de9f3a9c437a37c3d8f90 bash52-015
+7b6f8bc4b4dca6b2a7e55e976dbd63c0c68ef050d736da23668fe36e628deaa7 bash52-016
+5bc4dd917b90dfba79531c8664c949c45c7492c3ce4ad094c9df2403a4daa032 bash52-017
+86557106e16473c4a74749599454f4330bf07c6514921d25dd6d4280e97da2a0 bash52-018
+6b30e33b88753a739560235437d2abd62e43f597747be107f90a11026ad5ad3b bash52-019
+a96b579be560f885e5d2bcd692c563bb9181468b670943e8e04b88a356614803 bash52-020
+b1e649226926c5d69d2dc652f9329cb1b2061b68a20dd2bf51898cd927ab69a3 bash52-021
+7f0d872f9560db42269eed3e4ea695742fad2488daecaae3cb23ba805f264cae bash52-022
+53c5768dfef51a013c8c2ae6a8bebb91367d5ae8d660d5ce37334cd82852a9bb bash52-023
+da6f58cc63a89d8b1f74bf9993bb14f00770a64b146b9d2aea30514063f43541 bash52-024
+e25d794f3e5d090326eaf8d89da018a60a746f95e3a6d541b67fff5f1d2ed3ed bash52-025
+a982895a1c3566813076180c96c588e210407e5272d22a399f40f480c46df27b bash52-026
+461583a36363a680077c47ecf5e258d56351b4c7aff18f31fadba34d47acaf15 bash52-027
+c799f1d3dc5fea07b70a4106dfcc833384a3629cddbc01050c17238e983391e8 bash52-028
+74f7f78e336360fe8b7e07036a686a2fcc274aa0379a671f256f23549cc9b337 bash52-029
+1223299eb9ff3901c6401fb5a6b04dbdf6af0f937803577cec321e02c6ecaa94 bash52-030
+ae645170bdfc05f29017b75c3aa658fbe84e271e4e825d79e620c5bf5d14a081 bash52-031
+cb147441b79eadc1d06547314d24d620af09a35027a58a96070798b9923b4746 bash52-032
+3ad55980bcb68c665e933e9e8980618b6f82e963c98bc389b53ae2c45058bcc0 bash52-033
+787da8a575fbf8f810db291aa1427685c9657bb7a0c8e7f4d1162ab2b61e72be bash52-034
+2a8775aa8359e7b0ba75a47373737299e8e850be6c535d2734967d0189afd834 bash52-035
+3d0152649ee8090dcbb621de96ee880b58f25e39de75665be50c6e2e3f5314f6 bash52-036
+a2bb3a1e56f60185777cffe62f01eab996fc0d4406ff86c956317c780df47bd0 bash52-037
diff --git a/extra/bash/sources b/extra/bash/sources
index 7fbc44b0..d429e993 100644
--- a/extra/bash/sources
+++ b/extra/bash/sources
@@ -14,3 +14,25 @@ https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-012
https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-013
https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-014
https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-015
+https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-016
+https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-017
+https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-018
+https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-019
+https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-020
+https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-021
+https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-022
+https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-023
+https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-024
+https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-025
+https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-026
+https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-027
+https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-028
+https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-029
+https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-030
+https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-031
+https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-032
+https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-033
+https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-034
+https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-035
+https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-036
+https://ftp.gnu.org/gnu/bash/bash-5.2-patches/bash52-037
diff --git a/extra/bash/version b/extra/bash/version
index aa728e42..2beb457c 100644
--- a/extra/bash/version
+++ b/extra/bash/version
@@ -1 +1 @@
-5.2.p15 1
+5.2.p37 1
diff --git a/extra/bind/checksums b/extra/bind/checksums
index 04039c29..4364efb3 100644
--- a/extra/bind/checksums
+++ b/extra/bind/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-5aa80b804d9f02aa0523f3745dcde43e35d8ab139054259917e8c8478a513ef4 bind-9.18.18.tar.xz
+6d85f896033aff49f3802921b27a362a24ebc56f65940eb68791d6f50c03a49e bind-9.18.27.tar.xz
diff --git a/extra/bind/sources b/extra/bind/sources
index 1e2242b9..670cd625 100644
--- a/extra/bind/sources
+++ b/extra/bind/sources
@@ -1 +1 @@
-https://downloads.isc.org/isc/bind9/9.18.18/bind-9.18.18.tar.xz
+https://downloads.isc.org/isc/bind9/9.18.27/bind-9.18.27.tar.xz
diff --git a/extra/bind/version b/extra/bind/version
index a67a6863..18ce22d7 100644
--- a/extra/bind/version
+++ b/extra/bind/version
@@ -1 +1 @@
-9.18.18 1
+9.18.27 1
diff --git a/extra/bmake/checksums b/extra/bmake/checksums
index bedefa18..f4cc9613 100644
--- a/extra/bmake/checksums
+++ b/extra/bmake/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-b0ec2b0fc54f9808371f1d2dd666809f64102faeef831e4c817ee297109684e5 bmake-20230909.tar.gz
+b7bf91770955b6e028f21b705252916f8b5d02e7c345cb79c9563236cb2bef25 bmake-20240921.tar.gz
diff --git a/extra/bmake/sources b/extra/bmake/sources
index eccd08a1..e4d6a6dc 100644
--- a/extra/bmake/sources
+++ b/extra/bmake/sources
@@ -1 +1 @@
-http://www.crufty.net/ftp/pub/sjg/bmake-20230909.tar.gz
+http://www.crufty.net/ftp/pub/sjg/bmake-20240921.tar.gz
diff --git a/extra/bmake/version b/extra/bmake/version
index dfb0fa52..7b07ec36 100644
--- a/extra/bmake/version
+++ b/extra/bmake/version
@@ -1 +1 @@
-20230909 1
+20240921 1
diff --git a/extra/brotli/build b/extra/brotli/build
new file mode 100755
index 00000000..3d8522d4
--- /dev/null
+++ b/extra/brotli/build
@@ -0,0 +1,20 @@
+#!/bin/sh -e
+
+export DESTDIR="$1"
+
+shared() {
+ LIBS=$1; shift
+ cmake -B build \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_TESTING=OFF \
+ -DBUILD_SHARED_LIBS="$LIBS" \
+ "$@"
+
+ cmake --build build
+ cmake --install build
+}
+
+shared ON
+shared OFF -DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS -static"
diff --git a/extra/brotli/checksums b/extra/brotli/checksums
new file mode 100644
index 00000000..e903eaf9
--- /dev/null
+++ b/extra/brotli/checksums
@@ -0,0 +1,2 @@
+%BLAKE3
+df15ff5f4a14f9d85ba9f70afba46f8d85f079cefa6d213b8c7f4e8aa1d3885b v1.1.0.tar.gz
diff --git a/extra/brotli/depends b/extra/brotli/depends
new file mode 100644
index 00000000..7d91ec22
--- /dev/null
+++ b/extra/brotli/depends
@@ -0,0 +1 @@
+cmake make
diff --git a/extra/brotli/meta b/extra/brotli/meta
new file mode 100644
index 00000000..b5e69cdf
--- /dev/null
+++ b/extra/brotli/meta
@@ -0,0 +1,3 @@
+description: Generic-purpose lossless compression algorithm
+license: MIT
+maintainer: Cem Keylan <cem@carbslinux.org>
diff --git a/extra/brotli/sources b/extra/brotli/sources
new file mode 100644
index 00000000..9929dd44
--- /dev/null
+++ b/extra/brotli/sources
@@ -0,0 +1 @@
+https://github.com/google/brotli/archive/refs/tags/v1.1.0.tar.gz
diff --git a/extra/brotli/version b/extra/brotli/version
new file mode 100644
index 00000000..cc57f911
--- /dev/null
+++ b/extra/brotli/version
@@ -0,0 +1 @@
+1.1.0 2
diff --git a/extra/cairo/build b/extra/cairo/build
index 90ed8ead..758be720 100755
--- a/extra/cairo/build
+++ b/extra/cairo/build
@@ -1,27 +1,18 @@
#!/bin/sh -e
-sed_i() {
- for file; do :; done
- sed "$@" >_
- cat _ > "$file"; rm -f _
-}
+export DESTDIR="$1"
-# Disable building 'cairo-sphinx'.
-sed_i "s/BUILD_SPHINX_TRUE=/BUILD_SPHINX_TRUE='#'/" configure
-sed_i "s/BUILD_SPHINX_FALSE='#'/BUILD_SPHINX_FALSE=/" configure
+cl-meson \
+ -Ddefault_library=both \
+ -Dtee=enabled \
+ -Dglib=enabled \
+ -Dfontconfig=enabled \
+ -Dfreetype=enabled \
+ -Dgtk_doc=false \
+ -Dxcb=enabled \
+ -Dzlib=enabled \
+ -Dpng=enabled \
+ . output
-./configure \
- --prefix=/usr \
- --enable-tee \
- --enable-gl \
- --enable-egl \
- --enable-xlib-xcb \
- --enable-xcb \
- --enable-xlib-xrender \
- --enable-xlib \
- --disable-trace \
- --disable-valgrind \
- --disable-gtk-doc-html
-
-make
-make DESTDIR="$1" install
+ninja -C output
+ninja -C output install
diff --git a/extra/cairo/checksums b/extra/cairo/checksums
index a07be27b..24def2b9 100644
--- a/extra/cairo/checksums
+++ b/extra/cairo/checksums
@@ -1 +1,2 @@
-5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331 cairo-1.16.0.tar.xz
+%BLAKE3
+87aa80e009ba292c6bb0d9192bfa259927e668db366f0cb00823a3247daa4e5b cairo-1.18.2.tar.xz
diff --git a/extra/cairo/sources b/extra/cairo/sources
index e43c5aab..144d874b 100644
--- a/extra/cairo/sources
+++ b/extra/cairo/sources
@@ -1 +1 @@
-https://cairographics.org/releases/cairo-1.16.0.tar.xz
+https://cairographics.org/releases/cairo-1.18.2.tar.xz
diff --git a/extra/cairo/version b/extra/cairo/version
index 7a092de2..456db47c 100644
--- a/extra/cairo/version
+++ b/extra/cairo/version
@@ -1 +1 @@
-1.16.0 3
+1.18.2 1
diff --git a/extra/catgirl/build b/extra/catgirl/build
index f04e8ea4..3a3e777c 100755
--- a/extra/catgirl/build
+++ b/extra/catgirl/build
@@ -1,6 +1,7 @@
#!/bin/sh -e
export LDFLAGS="$LDFLAGS -static"
+export PKG_CONFIG="pkgconf --static"
./configure \
--prefix=/usr \
diff --git a/extra/catgirl/checksums b/extra/catgirl/checksums
index 0b394533..fa6799bc 100644
--- a/extra/catgirl/checksums
+++ b/extra/catgirl/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-cc5125c19f165d98284f1abbb6f77bbcc9331c5c16bacc5982c791cb78be9315 catgirl-2.2.tar.gz
+fc5dc04c584d620346e96f376df1f467d374668283364173e5a3d256c2527615 catgirl-2.2a.tar.gz
diff --git a/extra/catgirl/sources b/extra/catgirl/sources
index a4acfcd7..2a240d8b 100644
--- a/extra/catgirl/sources
+++ b/extra/catgirl/sources
@@ -1 +1 @@
-https://git.causal.agency/catgirl/snapshot/catgirl-2.2.tar.gz
+https://git.causal.agency/catgirl/snapshot/catgirl-2.2a.tar.gz
diff --git a/extra/catgirl/version b/extra/catgirl/version
index a49f7ed9..69604d98 100644
--- a/extra/catgirl/version
+++ b/extra/catgirl/version
@@ -1 +1 @@
-2.2 1
+2.2a 1
diff --git a/extra/ccache/checksums b/extra/ccache/checksums
index 8c165d6f..2fa34e49 100644
--- a/extra/ccache/checksums
+++ b/extra/ccache/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-1778762804752bf2949271b21bc79fd267ab1d57ebf518e7aca57baee7c8b6a8 ccache-4.8.3.tar.xz
+7585b0d9483fda7b66b7371e831703abcf4aaad941272be13708ded51ea5696c ccache-4.10.2.tar.xz
diff --git a/extra/ccache/sources b/extra/ccache/sources
index e59a1063..b492ca37 100644
--- a/extra/ccache/sources
+++ b/extra/ccache/sources
@@ -1 +1 @@
-https://github.com/ccache/ccache/releases/download/v4.8.3/ccache-4.8.3.tar.xz
+https://github.com/ccache/ccache/releases/download/v4.10.2/ccache-4.10.2.tar.xz
diff --git a/extra/ccache/version b/extra/ccache/version
index ec383918..fff9ba1d 100644
--- a/extra/ccache/version
+++ b/extra/ccache/version
@@ -1 +1 @@
-4.8.3 1
+4.10.2 1
diff --git a/extra/cmake/checksums b/extra/cmake/checksums
index ec74e057..72bd4fef 100644
--- a/extra/cmake/checksums
+++ b/extra/cmake/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-fc9b634ca5bf591a180f3efb94f9c3497c895df45be6183ca488abfdedae8e2f cmake-3.27.4.tar.gz
+e8de367a7004a9572bf7708493591b77ea9eceda8e6de40fd208f25ef9b00d8c cmake-3.27.7.tar.gz
diff --git a/extra/cmake/sources b/extra/cmake/sources
index 854438aa..3a13951b 100644
--- a/extra/cmake/sources
+++ b/extra/cmake/sources
@@ -1 +1 @@
-https://github.com/Kitware/CMake/releases/download/v3.27.4/cmake-3.27.4.tar.gz
+https://github.com/Kitware/CMake/releases/download/v3.27.7/cmake-3.27.7.tar.gz
diff --git a/extra/cmake/version b/extra/cmake/version
index 0535e04d..5b4ccd11 100644
--- a/extra/cmake/version
+++ b/extra/cmake/version
@@ -1 +1 @@
-3.27.4 1
+3.27.7 1
diff --git a/extra/dhcpcd/build b/extra/dhcpcd/build
index 1625c95d..7760cabd 100755
--- a/extra/dhcpcd/build
+++ b/extra/dhcpcd/build
@@ -8,7 +8,8 @@ export LDFLAGS="$LDFLAGS -static"
--sbindir=/usr/bin \
--sysconfdir=/etc \
--rundir=/run \
- --without-udev
+ --without-udev \
+ --without-openssl
make
make DESTDIR="$1" install
diff --git a/extra/dhcpcd/checksums b/extra/dhcpcd/checksums
index 93c7139a..bd5dd93f 100644
--- a/extra/dhcpcd/checksums
+++ b/extra/dhcpcd/checksums
@@ -1,3 +1,3 @@
%BLAKE3
-a45fa4f4b771d4f0c3abde02d3687556a43d2d39ba4a1d2450fab41ad14b412e dhcpcd-10.0.2.tar.xz
+c4f79af0f494a345bc20fedcbf47317e3377904374b227ccc4851e8f4d42ec88 dhcpcd-10.1.0.tar.xz
ca75436f34426b9c18e35cf7368381f602cfcb86fdb7ef137f9a5386d103511c dhcpcd.run
diff --git a/extra/dhcpcd/sources b/extra/dhcpcd/sources
index 4e30ccd2..1248be2c 100644
--- a/extra/dhcpcd/sources
+++ b/extra/dhcpcd/sources
@@ -1,2 +1,2 @@
-https://github.com/NetworkConfiguration/dhcpcd/releases/download/v10.0.2/dhcpcd-10.0.2.tar.xz
+https://github.com/NetworkConfiguration/dhcpcd/releases/download/v10.1.0/dhcpcd-10.1.0.tar.xz
files/dhcpcd.run
diff --git a/extra/dhcpcd/version b/extra/dhcpcd/version
index d561432e..3d0f48ce 100644
--- a/extra/dhcpcd/version
+++ b/extra/dhcpcd/version
@@ -1 +1 @@
-10.0.2 1
+10.1.0 1
diff --git a/extra/dialog/checksums b/extra/dialog/checksums
index e32b1681..2e272d5e 100644
--- a/extra/dialog/checksums
+++ b/extra/dialog/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-03a86f8aa7eb18a7d5a56d9bb024708b2644062fb2c9daa3b02b2d57900c274c dialog-1.3-20230209.tgz
+f7ae0424dbb7c99be7cf5e4f4c885a07d481c2f345b41e5e3393467198b7dc56 dialog-1.3-20240619.tgz
diff --git a/extra/dialog/sources b/extra/dialog/sources
index 9f5211a7..2254bafb 100644
--- a/extra/dialog/sources
+++ b/extra/dialog/sources
@@ -1 +1 @@
-https://invisible-mirror.net/archives/dialog/dialog-1.3-20230209.tgz
+https://invisible-mirror.net/archives/dialog/dialog-1.3-20240619.tgz
diff --git a/extra/dialog/version b/extra/dialog/version
index 1d428bf8..45d960e7 100644
--- a/extra/dialog/version
+++ b/extra/dialog/version
@@ -1 +1 @@
-1.3-20230209 1
+1.3-20240619 1
diff --git a/extra/dmenu/checksums b/extra/dmenu/checksums
index 722ec738..44b8a0e7 100644
--- a/extra/dmenu/checksums
+++ b/extra/dmenu/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-c22ed9d7d2079f26f0ae2bcea5411e8515e887d9427dbd746ef2947a4fa87ba0 dmenu-5.2.tar.gz
+17ac5095774b227168a2236cd2ce6a7dcaa2258adce5aaebbb58825731a62232 dmenu-5.3.tar.gz
diff --git a/extra/dmenu/sources b/extra/dmenu/sources
index 98cb6f6b..5fc029ec 100644
--- a/extra/dmenu/sources
+++ b/extra/dmenu/sources
@@ -1 +1 @@
-https://dl.suckless.org/tools/dmenu-5.2.tar.gz
+https://dl.suckless.org/tools/dmenu-5.3.tar.gz
diff --git a/extra/dmenu/version b/extra/dmenu/version
index d3341115..5cf5a956 100644
--- a/extra/dmenu/version
+++ b/extra/dmenu/version
@@ -1 +1 @@
-5.2 1
+5.3 1
diff --git a/extra/dropbear/checksums b/extra/dropbear/checksums
index ad9e4faf..b258b0cf 100644
--- a/extra/dropbear/checksums
+++ b/extra/dropbear/checksums
@@ -1,3 +1,3 @@
%BLAKE3
-48396d446cafd32a00fb0c0d7818f7d8796f2ab9ed7aa99fd9fddf55bc292360 dropbear-2022.83.tar.bz2
+a71c5dc8d0cfe3b31e47f87394a537b80fe96b528e76cd41b8b9afc99b74706f dropbear-2024.85.tar.bz2
06e4c21e9611939c56532fe790c4a3bd42440d6259114327acac9762b2e80a48 run
diff --git a/extra/dropbear/sources b/extra/dropbear/sources
index 61e1b74f..11997725 100644
--- a/extra/dropbear/sources
+++ b/extra/dropbear/sources
@@ -1,2 +1,2 @@
-https://matt.ucc.asn.au/dropbear/releases/dropbear-2022.83.tar.bz2
+https://matt.ucc.asn.au/dropbear/releases/dropbear-2024.85.tar.bz2
files/run
diff --git a/extra/dropbear/version b/extra/dropbear/version
index d9f99fff..36176fcd 100644
--- a/extra/dropbear/version
+++ b/extra/dropbear/version
@@ -1 +1 @@
-2022.83 1
+2024.85 1
diff --git a/extra/efivar/build b/extra/efivar/build
index 2973fd4f..43b2291f 100755
--- a/extra/efivar/build
+++ b/extra/efivar/build
@@ -18,7 +18,6 @@ mk() {
# Build static targets.
mk libefiboot.a libefivar.a efiboot.pc efivar.pc
- patch -p2 < ../musl-compat.patch
mk efivar-static
# Install the binary.
diff --git a/extra/efivar/checksums b/extra/efivar/checksums
index 26e3425a..f16dd4b4 100644
--- a/extra/efivar/checksums
+++ b/extra/efivar/checksums
@@ -1,3 +1,2 @@
%BLAKE3
-0405511d4aa0483c19b57440ee15af2a64a457aa44f3ed4e59df008b53dd3722 efivar-38.tar.bz2
-1ac4baa5bfdb5786fe3c5028a174f6795b140c671f949f89e614b4b35ed8cd13 musl-compat.patch
+51adfa6d88e2768313a223d197f9edd88f15f3889fdae985b2222da87792e64a 39.tar.gz
diff --git a/extra/efivar/patches/musl-compat.patch b/extra/efivar/patches/musl-compat.patch
deleted file mode 100644
index 100cf871..00000000
--- a/extra/efivar/patches/musl-compat.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/src/guid-symbols.c Thu Apr 28 01:31:10 2022
-+++ b/src/guid-symbols.c Thu Apr 28 01:30:44 2022
-@@ -207,7 +207,7 @@
-
- const struct efivar_guidname
- __attribute__((__visibility__ ("default")))
-- efi_well_known_guids_[42]= {
-+ efi_well_known_guids[42]= {
- {.guid={.a=cpu_to_le32(0),
- .b=cpu_to_le16(0),
- .c=cpu_to_le16(0),
-@@ -589,7 +589,7 @@
- };
- const struct efivar_guidname
- __attribute__((__visibility__ ("default")))
-- efi_well_known_names_[42]= {
-+ efi_well_known_names[42]= {
- {.guid={.a=cpu_to_le32(0x3b053091),
- .b=cpu_to_le16(0x6c9f),
- .c=cpu_to_le16(0x4cc),
diff --git a/extra/efivar/sources b/extra/efivar/sources
index 1537f661..501e85e0 100644
--- a/extra/efivar/sources
+++ b/extra/efivar/sources
@@ -1,2 +1 @@
-https://github.com/rhboot/efivar/releases/download/38/efivar-38.tar.bz2
-patches/musl-compat.patch
+https://github.com/rhboot/efivar/archive/refs/tags/39.tar.gz
diff --git a/extra/efivar/version b/extra/efivar/version
index 25eef31d..3ac45862 100644
--- a/extra/efivar/version
+++ b/extra/efivar/version
@@ -1 +1 @@
-38 1
+39 1
diff --git a/extra/entr/checksums b/extra/entr/checksums
index 3a9c10a1..92fd2a06 100644
--- a/extra/entr/checksums
+++ b/extra/entr/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-7782dd1537ae2ae881e75c3fe08098fe0d0204201b944b6c9f408859e4fa3fee entr-5.4.tar.gz
+ec5d107445f25ba6c570d1f297252a663aa0e8ea49f02c556871cd41cda0e6d6 entr-5.6.tar.gz
diff --git a/extra/entr/sources b/extra/entr/sources
index a3d2791a..b22c6fd1 100644
--- a/extra/entr/sources
+++ b/extra/entr/sources
@@ -1 +1 @@
-http://eradman.com/entrproject/code/entr-5.4.tar.gz
+http://eradman.com/entrproject/code/entr-5.6.tar.gz
diff --git a/extra/entr/version b/extra/entr/version
index d8f4edb8..8d9e3fe5 100644
--- a/extra/entr/version
+++ b/extra/entr/version
@@ -1 +1 @@
-5.4 1
+5.6 1
diff --git a/extra/expat/checksums b/extra/expat/checksums
index 8218e23a..02bda85e 100644
--- a/extra/expat/checksums
+++ b/extra/expat/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-ea89dd9a5a2e48d5e44fed38554b36a8f2e365a5091a99d08e30bfb1c15dda5e expat-2.5.0.tar.xz
+738746f32b58cb25bfe3e3c2d7f0d546e4f9f353ad2d805c9ac44ce2bd475377 expat-2.6.3.tar.xz
diff --git a/extra/expat/sources b/extra/expat/sources
index 965eb820..cd84f9bc 100644
--- a/extra/expat/sources
+++ b/extra/expat/sources
@@ -1 +1 @@
-https://github.com/libexpat/libexpat/releases/download/R_2_5_0/expat-2.5.0.tar.xz
+https://github.com/libexpat/libexpat/releases/download/R_2_6_3/expat-2.6.3.tar.xz
diff --git a/extra/expat/version b/extra/expat/version
index bc7f0700..d07a753e 100644
--- a/extra/expat/version
+++ b/extra/expat/version
@@ -1 +1 @@
-2.5.0 1
+2.6.3 1
diff --git a/extra/ffmpeg/checksums b/extra/ffmpeg/checksums
index 6c396dbd..9391130a 100644
--- a/extra/ffmpeg/checksums
+++ b/extra/ffmpeg/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-4879074c357102f85932673044c57c144b0c188ae58edec2a115965536ee340f ffmpeg-6.0.tar.xz
+7eedf6866ab3785852cf54eabc541082e2254f04cb4ba0660dd228e31182a230 ffmpeg-7.1.tar.xz
diff --git a/extra/ffmpeg/sources b/extra/ffmpeg/sources
index 2f4351e9..45151b03 100644
--- a/extra/ffmpeg/sources
+++ b/extra/ffmpeg/sources
@@ -1 +1 @@
-https://www.ffmpeg.org/releases/ffmpeg-6.0.tar.xz
+https://www.ffmpeg.org/releases/ffmpeg-7.1.tar.xz
diff --git a/extra/ffmpeg/version b/extra/ffmpeg/version
index 384681ba..0f24972e 100644
--- a/extra/ffmpeg/version
+++ b/extra/ffmpeg/version
@@ -1 +1 @@
-6.0 1
+7.1 1
diff --git a/extra/fontconfig/checksums b/extra/fontconfig/checksums
index 00ba6f1f..bc08f89f 100644
--- a/extra/fontconfig/checksums
+++ b/extra/fontconfig/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-dc342745b8e19ecda458464a9df7cf1266d0af759b230d07f43964b34ca86581 fontconfig-2.14.2.tar.xz
+f724c512a04997f17bc7dba807a6a58c2e8178d013bde56fab2fa579f7c50bdf fontconfig-2.15.0.tar.xz
diff --git a/extra/fontconfig/sources b/extra/fontconfig/sources
index 1732dd91..25f26baa 100644
--- a/extra/fontconfig/sources
+++ b/extra/fontconfig/sources
@@ -1 +1 @@
-https://freedesktop.org/software/fontconfig/release/fontconfig-2.14.2.tar.xz
+https://freedesktop.org/software/fontconfig/release/fontconfig-2.15.0.tar.xz
diff --git a/extra/fontconfig/version b/extra/fontconfig/version
index 240c0430..15033397 100644
--- a/extra/fontconfig/version
+++ b/extra/fontconfig/version
@@ -1 +1 @@
-2.14.2 1
+2.15.0 1
diff --git a/extra/freetype-harfbuzz/checksums b/extra/freetype-harfbuzz/checksums
index 27fbd6fc..f6bcae89 100644
--- a/extra/freetype-harfbuzz/checksums
+++ b/extra/freetype-harfbuzz/checksums
@@ -1,3 +1,3 @@
%BLAKE3
-8dd2a91dad75886ad3fed8d096b37ccbc82ba12ec863ea97324c07ac184a6ac2 freetype-2.13.2.tar.xz
-45eb0588cd9dae723aec773a5be4843c18351d40f68b8d7b92779847d44d7c15 8.2.1.tar.gz
+07a01894ccdb584943ce817b57341a8595ce9a92bfaa77c602ec4757dfabd5e2 freetype-2.13.3.tar.xz
+ff34e7a5c5b8a8d4422f5da6bd620d25ecb4b2443f27deeeb300a5c9c3b11ce0 10.0.1.tar.gz
diff --git a/extra/freetype-harfbuzz/depends b/extra/freetype-harfbuzz/depends
index 91a2792a..4626fc6d 100644
--- a/extra/freetype-harfbuzz/depends
+++ b/extra/freetype-harfbuzz/depends
@@ -1,3 +1,4 @@
+brotli
bzip2
expat
glib
diff --git a/extra/freetype-harfbuzz/sources b/extra/freetype-harfbuzz/sources
index 3f04ecc6..279e5727 100644
--- a/extra/freetype-harfbuzz/sources
+++ b/extra/freetype-harfbuzz/sources
@@ -1,2 +1,2 @@
-https://download-mirror.savannah.gnu.org/releases/freetype/freetype-2.13.2.tar.xz freetype
-https://github.com/harfbuzz/harfbuzz/archive/8.2.1.tar.gz harfbuzz
+https://download-mirror.savannah.gnu.org/releases/freetype/freetype-2.13.3.tar.xz freetype
+https://github.com/harfbuzz/harfbuzz/archive/10.0.1.tar.gz harfbuzz
diff --git a/extra/freetype-harfbuzz/version b/extra/freetype-harfbuzz/version
index 7cdd1db8..97315171 100644
--- a/extra/freetype-harfbuzz/version
+++ b/extra/freetype-harfbuzz/version
@@ -1 +1 @@
-2.13.2+8.2.1 1
+2.13.3+10.0.1 1
diff --git a/extra/fribidi/checksums b/extra/fribidi/checksums
index b63d3df3..c216b0a6 100644
--- a/extra/fribidi/checksums
+++ b/extra/fribidi/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-b43d333a98e39fc25cf7ce5fd11409424cf33e74aa28ec4a727f867aea83ce39 fribidi-1.0.13.tar.xz
+c16ee250f73f149d7d52dc7d285eb73ac755bad7907d237391e23f429b2b71d5 fribidi-1.0.16.tar.xz
diff --git a/extra/fribidi/sources b/extra/fribidi/sources
index 236eb7f2..7e999603 100644
--- a/extra/fribidi/sources
+++ b/extra/fribidi/sources
@@ -1 +1 @@
-https://github.com/fribidi/fribidi/releases/download/v1.0.13/fribidi-1.0.13.tar.xz
+https://github.com/fribidi/fribidi/releases/download/v1.0.16/fribidi-1.0.16.tar.xz
diff --git a/extra/fribidi/version b/extra/fribidi/version
index 7d6b13e4..a4e01b6a 100644
--- a/extra/fribidi/version
+++ b/extra/fribidi/version
@@ -1 +1 @@
-1.0.13 1
+1.0.16 1
diff --git a/extra/gcr/build b/extra/gcr/build
index 0cb68487..b4607464 100755
--- a/extra/gcr/build
+++ b/extra/gcr/build
@@ -2,6 +2,9 @@
export DESTDIR="$1"
+# Remove gettext requirement.
+clsed '/^i18n/,/^)/s/^/#/' ui/meson.build
+
cl-meson \
-Dintrospection=false \
-Dgtk_doc=false \
diff --git a/extra/gcr/version b/extra/gcr/version
index f9940358..0ca45925 100644
--- a/extra/gcr/version
+++ b/extra/gcr/version
@@ -1 +1 @@
-3.41.1 1
+3.41.1 2
diff --git a/extra/gcr4/checksums b/extra/gcr4/checksums
index dd82eae9..0b4bf3b7 100644
--- a/extra/gcr4/checksums
+++ b/extra/gcr4/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-35bf7d8f203f208aff87aba5e8d0ca1bde2414c3d84f6ad023baccb5e657832c gcr-4.1.0.tar.xz
+5b1f9c0a4055d64ce8f9293cbb65bfb47f9ecff2caf497fa93a635fbf5872321 gcr-4.3.0.tar.xz
diff --git a/extra/gcr4/sources b/extra/gcr4/sources
index cf2d8062..e7b96989 100644
--- a/extra/gcr4/sources
+++ b/extra/gcr4/sources
@@ -1 +1 @@
-https://download.gnome.org/sources/gcr/4.1/gcr-4.1.0.tar.xz
+https://download.gnome.org/sources/gcr/4.3/gcr-4.3.0.tar.xz
diff --git a/extra/gcr4/version b/extra/gcr4/version
index 1bc2766f..1fa6c9ae 100644
--- a/extra/gcr4/version
+++ b/extra/gcr4/version
@@ -1 +1 @@
-4.1.0 1
+4.3.0 1
diff --git a/extra/gdk-pixbuf/checksums b/extra/gdk-pixbuf/checksums
index 7c52a6f5..1500b6cb 100644
--- a/extra/gdk-pixbuf/checksums
+++ b/extra/gdk-pixbuf/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-dbbdf280e8ebde20529f4de5d83d7a09d623961aa9065edea22de7a8580c098f gdk-pixbuf-2.42.10.tar.xz
+edf54b48c7008c0ec52e0224b6a10ea680bbb94c23b71fbe5d19ae8e72706bc6 gdk-pixbuf-2.42.12.tar.xz
diff --git a/extra/gdk-pixbuf/sources b/extra/gdk-pixbuf/sources
index 6d161caa..7f19390c 100644
--- a/extra/gdk-pixbuf/sources
+++ b/extra/gdk-pixbuf/sources
@@ -1 +1 @@
-https://download.gnome.org/sources/gdk-pixbuf/2.42/gdk-pixbuf-2.42.10.tar.xz
+https://download.gnome.org/sources/gdk-pixbuf/2.42/gdk-pixbuf-2.42.12.tar.xz
diff --git a/extra/gdk-pixbuf/version b/extra/gdk-pixbuf/version
index e7c76020..353f0351 100644
--- a/extra/gdk-pixbuf/version
+++ b/extra/gdk-pixbuf/version
@@ -1 +1 @@
-2.42.10 1
+2.42.12 1
diff --git a/extra/giflib/checksums b/extra/giflib/checksums
index 023118b3..23d76ed8 100644
--- a/extra/giflib/checksums
+++ b/extra/giflib/checksums
@@ -1 +1,2 @@
-31da5562f44c5f15d63340a09a4fd62b48c45620cd302f77a6d9acf0077879bd giflib-5.2.1.tar.gz
+%BLAKE3
+025cd79ba2d524c24b33a3d2750c146c6823adf96e1dbcc380ca6210bc7058a8 giflib-5.2.2.tar.gz
diff --git a/extra/giflib/sources b/extra/giflib/sources
index dc1326bc..06ef3440 100644
--- a/extra/giflib/sources
+++ b/extra/giflib/sources
@@ -1 +1 @@
-https://downloads.sourceforge.net/giflib/giflib-5.2.1.tar.gz
+https://downloads.sourceforge.net/giflib/giflib-5.2.2.tar.gz
diff --git a/extra/giflib/version b/extra/giflib/version
index a06ff620..b0606280 100644
--- a/extra/giflib/version
+++ b/extra/giflib/version
@@ -1 +1 @@
-5.2.1 1
+5.2.2 1
diff --git a/extra/glib-networking/checksums b/extra/glib-networking/checksums
index f97d6723..698f96d9 100644
--- a/extra/glib-networking/checksums
+++ b/extra/glib-networking/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-bf9c42eb846bfcb7ea5a09013ce477f3a9b87e71299877054be27aef4b668d2b glib-networking-2.78.0.tar.xz
+e271ef92bbdd2209ae24afe8d2d468ef8c870529a9607629dfcbf9f60e295295 glib-networking-2.80.0.tar.xz
diff --git a/extra/glib-networking/sources b/extra/glib-networking/sources
index b1e340fb..21dd7131 100644
--- a/extra/glib-networking/sources
+++ b/extra/glib-networking/sources
@@ -1 +1 @@
-https://download.gnome.org/sources/glib-networking/2.78/glib-networking-2.78.0.tar.xz
+https://download.gnome.org/sources/glib-networking/2.80/glib-networking-2.80.0.tar.xz
diff --git a/extra/glib-networking/version b/extra/glib-networking/version
index 7ee0c99b..ac4637bf 100644
--- a/extra/glib-networking/version
+++ b/extra/glib-networking/version
@@ -1 +1 @@
-2.78.0 1
+2.80.0 1
diff --git a/extra/glib/checksums b/extra/glib/checksums
index 4d9d78b3..e133f87b 100644
--- a/extra/glib/checksums
+++ b/extra/glib/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-90242aa7d4eff0ab193d6a112014ac806dd0213eb9b97ccd021cdaa8c497271c glib-2.78.0.tar.xz
+89fe8cf7c1416ca99de746e39c7bc2352de4d4c7ffe0cb208229307e3cf7d152 glib-2.82.1.tar.xz
diff --git a/extra/glib/sources b/extra/glib/sources
index 3d14af33..08b6a41c 100644
--- a/extra/glib/sources
+++ b/extra/glib/sources
@@ -1 +1 @@
-https://download.gnome.org/sources/glib/2.78/glib-2.78.0.tar.xz
+https://download.gnome.org/sources/glib/2.82/glib-2.82.1.tar.xz
diff --git a/extra/glib/version b/extra/glib/version
index 7ee0c99b..8f137a03 100644
--- a/extra/glib/version
+++ b/extra/glib/version
@@ -1 +1 @@
-2.78.0 1
+2.82.1 1
diff --git a/extra/glslang/build b/extra/glslang/build
index e9017458..d93fd4e1 100755
--- a/extra/glslang/build
+++ b/extra/glslang/build
@@ -5,6 +5,7 @@ export DESTDIR="$1"
cmake -Bbuild \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
+ -DENABLE_OPT=0 \
-DBUILD_TYPE=Release
cmake --build build
diff --git a/extra/glslang/checksums b/extra/glslang/checksums
index 1956e48a..0dcfa797 100644
--- a/extra/glslang/checksums
+++ b/extra/glslang/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-1be06478e429792142b4e458965a24d84c02b466112258a7806125ec46c9cb2b 13.0.0.tar.gz
+11cf68b5cfab25ff2f7023cfcaaaa6bfe2c5d5cfc3bd4fb23cbd29e41b5a262e 15.0.0.tar.gz
diff --git a/extra/glslang/sources b/extra/glslang/sources
index 2075e63e..c9c58f75 100644
--- a/extra/glslang/sources
+++ b/extra/glslang/sources
@@ -1 +1 @@
-https://github.com/KhronosGroup/glslang/archive/refs/tags/13.0.0.tar.gz
+https://github.com/KhronosGroup/glslang/archive/refs/tags/15.0.0.tar.gz
diff --git a/extra/glslang/version b/extra/glslang/version
index acbb1e0c..c19468ea 100644
--- a/extra/glslang/version
+++ b/extra/glslang/version
@@ -1 +1 @@
-13.0.0 1
+15.0.0 1
diff --git a/extra/gnupg2/build b/extra/gnupg2/build
index e112d126..5ad311a1 100755
--- a/extra/gnupg2/build
+++ b/extra/gnupg2/build
@@ -8,11 +8,10 @@ if cpt l gnutls; then
export LIBGNUTLS_CFLAGS LIBGNUTLS_LIBS
fi
-patch -p1 < fix-ldap.patch
-
./configure \
--prefix=/usr \
- --sbindir=/usr/bin
+ --sbindir=/usr/bin \
+ --disable-scdaemon
make
make DESTDIR="$1" install
diff --git a/extra/gnupg2/checksums b/extra/gnupg2/checksums
index 23355b5b..9479ffc1 100644
--- a/extra/gnupg2/checksums
+++ b/extra/gnupg2/checksums
@@ -1,3 +1,3 @@
%BLAKE3
-e5e8f56b21da5c7fd791b494d193a80d2e072060663c41884b35e50cd8b8e610 gnupg-2.4.3.tar.bz2
+9420bb90ecbfb651f0840b042634c4742a5858802b901c6fdd18971ddb8e5f5a gnupg-2.5.0.tar.bz2
c8b97b99d49e3790e30c53875077a40c5a5d64b4b837464625c64946e0f1ce3d fix-ldap.patch
diff --git a/extra/gnupg2/sources b/extra/gnupg2/sources
index bdeeb736..be62a7c4 100644
--- a/extra/gnupg2/sources
+++ b/extra/gnupg2/sources
@@ -1,2 +1,2 @@
-https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.4.3.tar.bz2
+https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.5.0.tar.bz2
patches/fix-ldap.patch
diff --git a/extra/gnupg2/version b/extra/gnupg2/version
index a066d610..bc7f0700 100644
--- a/extra/gnupg2/version
+++ b/extra/gnupg2/version
@@ -1 +1 @@
-2.4.3 1
+2.5.0 1
diff --git a/extra/gnutls/checksums b/extra/gnutls/checksums
index 70703528..91760b89 100644
--- a/extra/gnutls/checksums
+++ b/extra/gnutls/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-38e71ca2ea8303ffdeb0d761a2b25fadf992e6ddd52092f15a6d495c332d9840 gnutls-3.8.1.tar.xz
+b9f6c3e3111bc6ded35c376318ad15bd3af7730b7c2b5c2c64904eaaaf60b789 gnutls-3.8.7.1.tar.xz
diff --git a/extra/gnutls/sources b/extra/gnutls/sources
index 89e7d02b..d00c38db 100644
--- a/extra/gnutls/sources
+++ b/extra/gnutls/sources
@@ -1 +1 @@
-https://www.gnupg.org/ftp/gcrypt/gnutls/v3.8/gnutls-3.8.1.tar.xz
+https://www.gnupg.org/ftp/gcrypt/gnutls/v3.8/gnutls-3.8.7.1.tar.xz
diff --git a/extra/gnutls/version b/extra/gnutls/version
index aecb372e..d131427b 100644
--- a/extra/gnutls/version
+++ b/extra/gnutls/version
@@ -1 +1 @@
-3.8.1 1
+3.8.7.1 1
diff --git a/extra/go/checksums b/extra/go/checksums
index c25f0ed5..7ccce823 100644
--- a/extra/go/checksums
+++ b/extra/go/checksums
@@ -1,4 +1,4 @@
%BLAKE3
-491668ce4b6f4b967f06dbf72031761df2319ebfe339c4fbbfc596adceede6ff go1.21.1.src.tar.gz
+7de8f3dafa64455084002968504666623b4179ea8dc000114089bc264df0be4b go1.22.4.src.tar.gz
e38b036986f4969980664342af2e0b14c503bf4222b980f2bfdcb32fd62fde14 go1.4-bootstrap-20171003.tar.gz
-66e10eadbc4e5ccc4db017cc58fb359eaa182ae74f2b5773463935b25343e537 no-bash.patch
+2b88bcaf1cd420f4f6c91f22107ae453742c87f362bb30de40f4cb047050056f no-bash.patch
diff --git a/extra/go/patches/no-bash.patch b/extra/go/patches/no-bash.patch
index a40844e7..3f0a5ecc 100644
--- a/extra/go/patches/no-bash.patch
+++ b/extra/go/patches/no-bash.patch
@@ -1,49 +1,154 @@
diff -ur a/go-current/src/make.bash b/go-current/src/make.bash
---- a/go-current/src/make.bash Tue Mar 15 15:08:16 2022
-+++ b/go-current/src/make.bash Wed Mar 23 13:56:11 2022
+--- a/go-current/src/make.bash Thu May 30 21:26:07 2024
++++ b/go-current/src/make.bash Fri Jun 7 01:22:26 2024
@@ -1,4 +1,4 @@
-#!/usr/bin/env bash
+#!/bin/sh
# Copyright 2009 The Go Authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.
-@@ -106,7 +106,7 @@
+@@ -78,13 +78,13 @@
+
+ set -e
+
+-if [[ ! -f run.bash ]]; then
++if [ ! -f run.bash ]; then
+ echo 'make.bash must be run from $GOROOT/src' 1>&2
+ exit 1
+ fi
+
+-if [[ "$GOBUILDTIMELOGFILE" != "" ]]; then
+- echo $(LC_TIME=C date) start make.bash >"$GOBUILDTIMELOGFILE"
++if [ "$GOBUILDTIMELOGFILE" != "" ]; then
++ echo "$(LC_TIME=C date) start make.bash" >"$GOBUILDTIMELOGFILE"
+ fi
+
+ # Test for Windows.
+@@ -114,7 +114,7 @@
# so loop through the possible selinux mount points.
for se_mount in /selinux /sys/fs/selinux
do
-- if [ -d $se_mount -a -f $se_mount/booleans/allow_execstack -a -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then
+- if [[ -d $se_mount && -f $se_mount/booleans/allow_execstack && -x /usr/sbin/selinuxenabled ]] && /usr/sbin/selinuxenabled; then
+ if [ -d $se_mount ] && [ -f $se_mount/booleans/allow_execstack ] && [ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then
if ! cat $se_mount/booleans/allow_execstack | grep -c '^1 1$' >> /dev/null ; then
echo "WARNING: the default SELinux policy on, at least, Fedora 12 breaks "
echo "Go. You can enable the features that Go needs via the following "
-@@ -164,7 +164,7 @@
+@@ -134,7 +134,7 @@
+ # Test for debian/kFreeBSD.
+ # cmd/dist will detect kFreeBSD as freebsd/$GOARCH, but we need to
+ # disable cgo manually.
+-if [[ "$(uname -s)" == "GNU/kFreeBSD" ]]; then
++if [ "$(uname -s)" = "GNU/kFreeBSD" ]; then
+ export CGO_ENABLED=0
+ fi
+
+@@ -145,17 +145,17 @@
+
+ verbose=false
+ vflag=""
+-if [[ "$1" == "-v" ]]; then
++if [ "$1" = "-v" ]; then
+ verbose=true
+ vflag=-v
+ shift
+ fi
+
+ goroot_bootstrap_set=${GOROOT_BOOTSTRAP+"true"}
+-if [[ -z "$GOROOT_BOOTSTRAP" ]]; then
++if [ -z "$GOROOT_BOOTSTRAP" ]; then
+ GOROOT_BOOTSTRAP="$HOME/go1.4"
+ for d in sdk/go$bootgo go$bootgo; do
+- if [[ -d "$HOME/$d" ]]; then
++ if [ -d "$HOME/$d" ]; then
+ GOROOT_BOOTSTRAP="$HOME/$d"
+ fi
+ done
+@@ -163,15 +163,16 @@
export GOROOT_BOOTSTRAP
- export GOROOT="$(cd .. && pwd)"
+ nogoenv() {
+- GO111MODULE=off GOENV=off GOOS= GOARCH= GOEXPERIMENT= GOFLAGS= "$@"
++ GO111MODULE=off GOENV=off GOOS='' GOARCH='' GOEXPERIMENT='' GOFLAGS='' "$@"
+ }
+
+-export GOROOT="$(cd .. && pwd)"
-IFS=$'\n'; for go_exe in $(type -ap go); do
-+for go_exe in $(command -v go); do
- if [ ! -x "$GOROOT_BOOTSTRAP/bin/go" ]; then
- goroot=$(GOROOT='' GOOS='' GOARCH='' "$go_exe" env GOROOT)
- if [ "$goroot" != "$GOROOT" ]; then
+- if [[ ! -x "$GOROOT_BOOTSTRAP/bin/go" ]]; then
+- goroot=$(GOROOT= nogoenv "$go_exe" env GOROOT)
+- if [[ "$goroot" != "$GOROOT" ]]; then
+- if [[ "$goroot_bootstrap_set" == "true" ]]; then
++export GOROOT="${PWD%/*}"
++type_a() { IFS=:; for dir in $PATH; do [ -x "$dir/$1" ] && printf '%s\n' "$dir/$1"; done ;}
++IFS="$(printf '\n')"; for go_exe in $(type_a go); do
++ if [ ! -x "$GOROOT_BOOTSTRAP/bin/go" ]; then
++ goroot=$(GOROOT='' nogoenv "$go_exe" env GOROOT)
++ if [ "$goroot" != "$GOROOT" ]; then
++ if [ "$goroot_bootstrap_set" = "true" ]; then
+ printf 'WARNING: %s does not exist, found %s from env\n' "$GOROOT_BOOTSTRAP/bin/go" "$go_exe" >&2
+ printf 'WARNING: set %s as GOROOT_BOOTSTRAP\n' "$goroot" >&2
+ fi
+@@ -179,7 +180,7 @@
+ fi
+ fi
+ done; unset IFS
+-if [[ ! -x "$GOROOT_BOOTSTRAP/bin/go" ]]; then
++if [ ! -x "$GOROOT_BOOTSTRAP/bin/go" ]; then
+ echo "ERROR: Cannot find $GOROOT_BOOTSTRAP/bin/go." >&2
+ echo "Set \$GOROOT_BOOTSTRAP to a working Go tree >= Go $bootgo." >&2
+ exit 1
+@@ -192,7 +193,7 @@
+ if $verbose; then
+ echo cmd/dist
+ fi
+-if [[ "$GOROOT_BOOTSTRAP" == "$GOROOT" ]]; then
++if [ "$GOROOT_BOOTSTRAP" = "$GOROOT" ]; then
+ echo "ERROR: \$GOROOT_BOOTSTRAP must not be set to \$GOROOT" >&2
+ echo "Set \$GOROOT_BOOTSTRAP to a working Go tree >= Go $bootgo." >&2
+ exit 1
+@@ -202,7 +203,7 @@
+
+ # -e doesn't propagate out of eval, so check success by hand.
+ eval $(./cmd/dist/dist env -p || echo FAIL=true)
+-if [[ "$FAIL" == true ]]; then
++if [ "$FAIL" = true ]; then
+ exit 1
+ fi
+
+@@ -210,10 +211,10 @@
+ echo
+ fi
+
+-if [[ "$1" == "--dist-tool" ]]; then
++if [ "$1" = "--dist-tool" ]; then
+ # Stop after building dist tool.
+ mkdir -p "$GOTOOLDIR"
+- if [[ "$2" != "" ]]; then
++ if [ "$2" != "" ]; then
+ cp cmd/dist/dist "$2"
+ fi
+ mv cmd/dist/dist "$GOTOOLDIR"/dist
diff -ur a/go1.4-bootstrap/src/make.bash b/go1.4-bootstrap/src/make.bash
--- a/go1.4-bootstrap/src/make.bash Wed Nov 22 02:33:58 2017
-+++ b/go1.4-bootstrap/src/make.bash Wed Mar 23 13:53:56 2022
++++ b/go1.4-bootstrap/src/make.bash Fri Jun 7 01:22:30 2024
@@ -1,4 +1,4 @@
-#!/usr/bin/env bash
+#!/bin/sh
# Copyright 2009 The Go Authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.
-@@ -82,7 +82,7 @@
+@@ -80,9 +80,8 @@
+ # Test for bad SELinux.
+ # On Fedora 16 the selinux filesystem is mounted at /sys/fs/selinux,
# so loop through the possible selinux mount points.
- for se_mount in /selinux /sys/fs/selinux
- do
+-for se_mount in /selinux /sys/fs/selinux
+-do
- if [ -d $se_mount -a -f $se_mount/booleans/allow_execstack -a -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then
-+ if [ -d $se_mount ] && [ -f $se_mount/booleans/allow_execstack ] [ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then
++for se_mount in /selinux /sys/fs/selinux; do
++ if [ -d $se_mount ] && [ -f $se_mount/booleans/allow_execstack ] && [ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then
if ! cat $se_mount/booleans/allow_execstack | grep -c '^1 1$' >> /dev/null ; then
echo "WARNING: the default SELinux policy on, at least, Fedora 12 breaks "
echo "Go. You can enable the features that Go needs via the following "
-@@ -102,7 +102,7 @@
+@@ -102,7 +101,7 @@
# Test for debian/kFreeBSD.
# cmd/dist will detect kFreeBSD as freebsd/$GOARCH, but we need to
# disable cgo manually.
@@ -52,7 +157,16 @@ diff -ur a/go1.4-bootstrap/src/make.bash b/go1.4-bootstrap/src/make.bash
export CGO_ENABLED=0
fi
-@@ -122,12 +122,12 @@
+@@ -113,7 +112,7 @@
+
+ echo '# Building C bootstrap tool.'
+ echo cmd/dist
+-export GOROOT="$(cd .. && pwd)"
++export GOROOT="${PWD%/*}"
+ GOROOT_FINAL="${GOROOT_FINAL:-$GOROOT}"
+ DEFGOROOT='-DGOROOT_FINAL="'"$GOROOT_FINAL"'"'
+
+@@ -122,12 +121,12 @@
386) mflag=-m32;;
amd64) mflag=-m64;;
esac
@@ -67,7 +181,7 @@ diff -ur a/go1.4-bootstrap/src/make.bash b/go1.4-bootstrap/src/make.bash
export CC=clang CXX=clang++
fi
${CC:-gcc} $mflag -O2 -Wall -Werror -o cmd/dist/dist -Icmd/dist "$DEFGOROOT" cmd/dist/*.c
-@@ -162,7 +162,7 @@
+@@ -162,7 +161,7 @@
"$GOTOOLDIR"/go_bootstrap clean -i std
echo
diff --git a/extra/go/sources b/extra/go/sources
index 06845998..beb1861d 100644
--- a/extra/go/sources
+++ b/extra/go/sources
@@ -1,3 +1,3 @@
-https://golang.org/dl/go1.21.1.src.tar.gz go-current
+https://golang.org/dl/go1.22.4.src.tar.gz go-current
https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz go1.4-bootstrap
patches/no-bash.patch
diff --git a/extra/go/version b/extra/go/version
index 31e499ea..1418be46 100644
--- a/extra/go/version
+++ b/extra/go/version
@@ -1 +1 @@
-1.21.1 1
+1.22.4 1
diff --git a/extra/gobject-introspection/checksums b/extra/gobject-introspection/checksums
index eaee9283..545b0541 100644
--- a/extra/gobject-introspection/checksums
+++ b/extra/gobject-introspection/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-fdf379814054554b31f3bb5bf8e23a51675b66220e4f0a2f774905effe25a387 gobject-introspection-1.78.0.tar.xz
+e0a0c3c843f3a93881c9f17f19a92dc2bc25261bd67a19d99457bbd0fced7071 gobject-introspection-1.82.0.tar.xz
diff --git a/extra/gobject-introspection/sources b/extra/gobject-introspection/sources
index 7ad4eb26..d8067ed4 100644
--- a/extra/gobject-introspection/sources
+++ b/extra/gobject-introspection/sources
@@ -1 +1 @@
-https://download.gnome.org/sources/gobject-introspection/1.78/gobject-introspection-1.78.0.tar.xz
+https://download.gnome.org/sources/gobject-introspection/1.82/gobject-introspection-1.82.0.tar.xz
diff --git a/extra/gobject-introspection/version b/extra/gobject-introspection/version
index 8b9cb920..4dd8a779 100644
--- a/extra/gobject-introspection/version
+++ b/extra/gobject-introspection/version
@@ -1 +1 @@
-1.78.0 1
+1.82.0 1
diff --git a/extra/gst-plugins-base/checksums b/extra/gst-plugins-base/checksums
index 22f2c431..fbc90a74 100644
--- a/extra/gst-plugins-base/checksums
+++ b/extra/gst-plugins-base/checksums
@@ -1,3 +1,3 @@
%BLAKE3
-8f575b5da19998973cdb55edc8538ebe437d11aed41d91d7515ee8d1d94fccd8 gst-plugins-base-1.22.5.tar.xz
+e7722b6d37fd2f750cc175211d70c95c160ebed4305c8d9d0939f181b02105c4 gst-plugins-base-1.24.8.tar.xz
dc156bdfc719f9c7a0e8352864068d6e6b9d8493f6677d415e707b7c138b99ee gl-headers-5c8c7c0d.tar.gz
diff --git a/extra/gst-plugins-base/sources b/extra/gst-plugins-base/sources
index 1fd0a3c8..a857a742 100644
--- a/extra/gst-plugins-base/sources
+++ b/extra/gst-plugins-base/sources
@@ -1,2 +1,2 @@
-https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.22.5.tar.xz
+https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.24.8.tar.xz
https://gitlab.freedesktop.org/gstreamer/meson-ports/gl-headers/-/archive/5c8c7c0d/gl-headers-5c8c7c0d.tar.gz subprojects/gl-headers
diff --git a/extra/gst-plugins-base/version b/extra/gst-plugins-base/version
index 3794f8d7..b4ddb383 100644
--- a/extra/gst-plugins-base/version
+++ b/extra/gst-plugins-base/version
@@ -1 +1 @@
-1.22.5 1
+1.24.8 1
diff --git a/extra/gst-plugins/checksums b/extra/gst-plugins/checksums
index 535638c0..28d80bf4 100644
--- a/extra/gst-plugins/checksums
+++ b/extra/gst-plugins/checksums
@@ -1,5 +1,5 @@
%BLAKE3
-a4eff097d38fee513e630b1522f1864033344e67eb20ccbcf10e9bd6d2382a52 gst-plugins-good-1.22.5.tar.xz
-ef42ad6a7da2662fb88a419c93e7c50decd530fe5f0325f49e63e26878c921ba gst-plugins-bad-1.22.5.tar.xz
-af31579980b89ace8e594c0b24de7082aa2f50a01a7806b99f5082a385ca428d gst-plugins-ugly-1.22.5.tar.xz
-00c60611ba7e3b5f7291dfab3bac58f4295fa2cb61867f7b6b86087e87989745 gst-libav-1.22.5.tar.xz
+229951119abc699c554db979d6d413c654815d5d5db4b76c7625106bb08bf586 gst-plugins-good-1.24.8.tar.xz
+473f0b9962842243bb9fc8e5957e41d9d636232e4fb3cda50367ec932067a3dd gst-plugins-bad-1.24.8.tar.xz
+6342d43bf98621976b0a83a9d6278a875a23eb58b1229b5c5185d9848fad6063 gst-plugins-ugly-1.24.8.tar.xz
+a446f4030587c37461c73269a71e0e3d88177658b41435b1a83bb70d2e0ae589 gst-libav-1.24.8.tar.xz
diff --git a/extra/gst-plugins/sources b/extra/gst-plugins/sources
index d5a65528..a0b09e4e 100644
--- a/extra/gst-plugins/sources
+++ b/extra/gst-plugins/sources
@@ -1,4 +1,4 @@
-https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.22.5.tar.xz good
-https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.22.5.tar.xz bad
-https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.22.5.tar.xz ugly
-https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-1.22.5.tar.xz libav
+https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.24.8.tar.xz good
+https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.24.8.tar.xz bad
+https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.24.8.tar.xz ugly
+https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-1.24.8.tar.xz libav
diff --git a/extra/gst-plugins/version b/extra/gst-plugins/version
index 3794f8d7..b4ddb383 100644
--- a/extra/gst-plugins/version
+++ b/extra/gst-plugins/version
@@ -1 +1 @@
-1.22.5 1
+1.24.8 1
diff --git a/extra/gstreamer/checksums b/extra/gstreamer/checksums
index ef7c3820..4fcb98b9 100644
--- a/extra/gstreamer/checksums
+++ b/extra/gstreamer/checksums
@@ -1,3 +1,3 @@
%BLAKE3
-0dec236fbf84a3aa4c036b5bb4f41e27edc3b2bbce7613fae30a00ae5b2a68b5 gstreamer-1.22.5.tar.xz
+4dbf011fe0b47e420fd64c5fc5bb37c4cb991ff9773e8df6fcfb24a19403a495 gstreamer-1.24.8.tar.xz
d69378fcb6e40f43f7341e08d1bcb135ce5425eedf88e0bee6021b39de2e7955 byacc.patch
diff --git a/extra/gstreamer/sources b/extra/gstreamer/sources
index 8f83259a..a9ed3889 100644
--- a/extra/gstreamer/sources
+++ b/extra/gstreamer/sources
@@ -1,2 +1,2 @@
-https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.22.5.tar.xz
+https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.24.8.tar.xz
patches/byacc.patch
diff --git a/extra/gstreamer/version b/extra/gstreamer/version
index 3794f8d7..b4ddb383 100644
--- a/extra/gstreamer/version
+++ b/extra/gstreamer/version
@@ -1 +1 @@
-1.22.5 1
+1.24.8 1
diff --git a/extra/gtk+3/build b/extra/gtk+3/build
index 1bd55b13..0f603f16 100755
--- a/extra/gtk+3/build
+++ b/extra/gtk+3/build
@@ -16,8 +16,8 @@ tests=false; [ "$CPT_TEST" = 1 ] && tests=true
cl-meson \
-Ddefault_library=both \
-Dxinerama=yes \
- -Dx11_backend=true \
- -Dwayland_backend="$(cpt l -C wayland true false)" \
+ -Dx11_backend=false \
+ -Dwayland_backend=true \
-Dprint_backends=file \
-Ddemos=false \
-Dexamples=false \
diff --git a/extra/gtk+3/checksums b/extra/gtk+3/checksums
index 48baeb19..0bbe20c4 100644
--- a/extra/gtk+3/checksums
+++ b/extra/gtk+3/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-5f6c585d72f9636dfdee04fc4967a514e42f4d817d4b7bec7acdd2b25796bde3 gtk-3.24.38.tar.gz
+949333a7515307f4232babde41026bb08ff6473d9730c55d54962324e1bc135e gtk-3.24.43.tar.gz
diff --git a/extra/gtk+3/depends b/extra/gtk+3/depends
index 766f5299..5aa05fb6 100644
--- a/extra/gtk+3/depends
+++ b/extra/gtk+3/depends
@@ -1,16 +1,16 @@
atk
+cairo
+fontconfig
+freetype-harfbuzz
fribidi
gdk-pixbuf
-gobject-introspection
-libXcomposite
-libXcursor
-libXdamage
-libXext
-libXi
-libXinerama
-libXrandr
+glib
+gobject-introspection make
libepoxy
+libxkbcommon
meson make
pango
python make
shared-mime-info
+wayland
+wayland-protocols make
diff --git a/extra/gtk+3/sources b/extra/gtk+3/sources
index 20aa4146..f6c680ce 100644
--- a/extra/gtk+3/sources
+++ b/extra/gtk+3/sources
@@ -1 +1 @@
-https://gitlab.gnome.org/GNOME/gtk/-/archive/3.24.38/gtk-3.24.38.tar.gz
+https://gitlab.gnome.org/GNOME/gtk/-/archive/3.24.43/gtk-3.24.43.tar.gz
diff --git a/extra/gtk+3/version b/extra/gtk+3/version
index 881be92a..3ac8fbdc 100644
--- a/extra/gtk+3/version
+++ b/extra/gtk+3/version
@@ -1 +1 @@
-3.24.38 1
+3.24.43 1
diff --git a/extra/gtk4/build b/extra/gtk4/build
index 92826cbc..ddb396a0 100755
--- a/extra/gtk4/build
+++ b/extra/gtk4/build
@@ -8,14 +8,14 @@ clsed '/#ifndef G_OS_WIN32/c#if !defined(G_OS_WIN32) && defined(__GLIBC__)' \
testsuite/reftests/gtk-reftest.c
cl-meson \
- -Dgtk_doc=false \
- -Dwayland-backend="$(cpt l -C wayland true false)" \
+ -Dwayland-backend=true \
-Dwin32-backend=false \
+ -Dx11-backend=false \
-Dintrospection=disabled \
-Dmedia-gstreamer=disabled \
-Dprint-cups=disabled \
- -Ddemos=false \
-Df16c=disabled \
+ -Dbuild-demos=false \
-Dbuild-tests=false \
-Dbuild-examples=false \
-Dvulkan=disabled \
diff --git a/extra/gtk4/checksums b/extra/gtk4/checksums
index 400b680a..397e0a72 100644
--- a/extra/gtk4/checksums
+++ b/extra/gtk4/checksums
@@ -1,4 +1,4 @@
%BLAKE3
-3924f86c145ea011b0c3d20375a42ccbc81c63120e025720d59055ea2e90c47d gtk-4.12.1.tar.xz
+6b2fa02ee7f5c4ff74c00ccd840ad33ba9518d838efabb65474c0247e6d9bf4d gtk-4.16.3.tar.xz
6654770a5ef88887b93cba499b32f6f36279f5fcc2684fdad9ec9bad5037ea26 8280337.tar.gz
2753baffa6a8686ecea1b1f6348911e3545219ecb92b2fcffb3afc67830bfe06 302397c.tar.gz
diff --git a/extra/gtk4/depends b/extra/gtk4/depends
index 268c59a0..8810add9 100644
--- a/extra/gtk4/depends
+++ b/extra/gtk4/depends
@@ -1,19 +1,16 @@
binutils make
cairo
+fontconfig
+freetype-harfbuzz
fribidi
gdk-pixbuf
glib
graphene
-libXcomposite
-libXcursor
-libXdamage
-libXext
-libXi
-libXinerama
-libXrandr
libepoxy
+libxkbcommon
meson make
pango
-perl make
python make
shared-mime-info
+wayland
+wayland-protocols make
diff --git a/extra/gtk4/sources b/extra/gtk4/sources
index 33a6d3d9..4dedb908 100644
--- a/extra/gtk4/sources
+++ b/extra/gtk4/sources
@@ -1,3 +1,3 @@
-https://download.gnome.org/sources/gtk/4.12/gtk-4.12.1.tar.xz
+https://download.gnome.org/sources/gtk/4.16/gtk-4.16.3.tar.xz
https://github.com/lazka/sassc/archive/8280337.tar.gz subprojects/sassc
https://github.com/lazka/libsass/archive/302397c.tar.gz subprojects/libsass
diff --git a/extra/gtk4/version b/extra/gtk4/version
index 8e1a4229..d8d61ede 100644
--- a/extra/gtk4/version
+++ b/extra/gtk4/version
@@ -1 +1 @@
-4.12.1 1
+4.16.3 1
diff --git a/extra/harfbuzz-icu/checksums b/extra/harfbuzz-icu/checksums
index 72eb386d..a81767b1 100644
--- a/extra/harfbuzz-icu/checksums
+++ b/extra/harfbuzz-icu/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-45eb0588cd9dae723aec773a5be4843c18351d40f68b8d7b92779847d44d7c15 8.2.1.tar.gz
+ff34e7a5c5b8a8d4422f5da6bd620d25ecb4b2443f27deeeb300a5c9c3b11ce0 10.0.1.tar.gz
diff --git a/extra/harfbuzz-icu/sources b/extra/harfbuzz-icu/sources
index 24dd46b9..15dfc9d8 100644
--- a/extra/harfbuzz-icu/sources
+++ b/extra/harfbuzz-icu/sources
@@ -1 +1 @@
-https://github.com/harfbuzz/harfbuzz/archive/8.2.1.tar.gz
+https://github.com/harfbuzz/harfbuzz/archive/10.0.1.tar.gz
diff --git a/extra/harfbuzz-icu/version b/extra/harfbuzz-icu/version
index 86dd740f..1a521502 100644
--- a/extra/harfbuzz-icu/version
+++ b/extra/harfbuzz-icu/version
@@ -1 +1 @@
-8.2.1 1
+10.0.1 1
diff --git a/extra/hicolor-icon-theme/build b/extra/hicolor-icon-theme/build
index c647b8ef..d93b1947 100755
--- a/extra/hicolor-icon-theme/build
+++ b/extra/hicolor-icon-theme/build
@@ -1,6 +1,8 @@
#!/bin/sh -e
-./configure \
- --prefix=/usr
+export DESTDIR="$1"
-make DESTDIR="$1" install
+cl-meson \
+ . output
+
+ninja -C output install
diff --git a/extra/hicolor-icon-theme/checksums b/extra/hicolor-icon-theme/checksums
index 79c2b66e..ed928c60 100644
--- a/extra/hicolor-icon-theme/checksums
+++ b/extra/hicolor-icon-theme/checksums
@@ -1 +1,2 @@
-317484352271d18cbbcfac3868eab798d67fff1b8402e740baa6ff41d588a9d8 hicolor-icon-theme-0.17.tar.xz
+%BLAKE3
+062e251872a23ecf47a127293ae9abf98a1c912f82f819d0cebccf8d9415deb2 hicolor-icon-theme-0.18.tar.xz
diff --git a/extra/libxkbcommon/depends b/extra/hicolor-icon-theme/depends
index 36f6fe6c..36f6fe6c 100644
--- a/extra/libxkbcommon/depends
+++ b/extra/hicolor-icon-theme/depends
diff --git a/extra/hicolor-icon-theme/sources b/extra/hicolor-icon-theme/sources
index 25bef1de..a33823f8 100644
--- a/extra/hicolor-icon-theme/sources
+++ b/extra/hicolor-icon-theme/sources
@@ -1 +1 @@
-https://icon-theme.freedesktop.org/releases/hicolor-icon-theme-0.17.tar.xz
+https://icon-theme.freedesktop.org/releases/hicolor-icon-theme-0.18.tar.xz
diff --git a/extra/hicolor-icon-theme/version b/extra/hicolor-icon-theme/version
index dc75c933..23ca89d5 100644
--- a/extra/hicolor-icon-theme/version
+++ b/extra/hicolor-icon-theme/version
@@ -1 +1 @@
-0.17 1
+0.18 1
diff --git a/extra/hwdata/checksums b/extra/hwdata/checksums
index 2333b4a5..ee4951e1 100644
--- a/extra/hwdata/checksums
+++ b/extra/hwdata/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-5a9aacdfba452880479c4535a027048340c3927f381a64d669361960ff92fdbe v0.374.tar.gz
+2ad5358cd623b138a16fc2b5a3b5bf74ecc5f3cb83bc446d6f15c6db576d4075 v0.388.tar.gz
diff --git a/extra/hwdata/sources b/extra/hwdata/sources
index fd90267f..6cd98418 100644
--- a/extra/hwdata/sources
+++ b/extra/hwdata/sources
@@ -1 +1 @@
-https://github.com/vcrhonek/hwdata/archive/refs/tags/v0.374.tar.gz
+https://github.com/vcrhonek/hwdata/archive/refs/tags/v0.388.tar.gz
diff --git a/extra/hwdata/version b/extra/hwdata/version
index b84812db..f06df3b7 100644
--- a/extra/hwdata/version
+++ b/extra/hwdata/version
@@ -1 +1 @@
-0.374 1
+0.388 1
diff --git a/extra/icu/checksums b/extra/icu/checksums
index 79af730e..fe038dee 100644
--- a/extra/icu/checksums
+++ b/extra/icu/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-fab5a71eff2e7843f63a44f6c6c65b08bfe00d67b875798a53f21765e8984e3c icu4c-73_2-src.tgz
+4a02c9a2e790582e22233681c118f188d516be433a49ffec8bb2933809fe5fef icu4c-75_1-src.tgz
diff --git a/extra/icu/sources b/extra/icu/sources
index d06d6ecb..6d294a7a 100644
--- a/extra/icu/sources
+++ b/extra/icu/sources
@@ -1 +1 @@
-https://github.com/unicode-org/icu/releases/download/release-73-2/icu4c-73_2-src.tgz
+https://github.com/unicode-org/icu/releases/download/release-75-1/icu4c-75_1-src.tgz
diff --git a/extra/icu/version b/extra/icu/version
index 61a04efd..8fecd125 100644
--- a/extra/icu/version
+++ b/extra/icu/version
@@ -1 +1 @@
-73.2 1
+75.1 1
diff --git a/extra/imagemagick/checksums b/extra/imagemagick/checksums
index bf3677f1..0a449a82 100644
--- a/extra/imagemagick/checksums
+++ b/extra/imagemagick/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-91675a1c20c62b6277339c03aa00c5585dc09d152de54bcffbf7505f17fb30fd 7.1.1-17.tar.gz
+11f2a934f0dcf65805d2f5e41048e02789391af84141ffa4f9ccd3a291557ea8 7.1.1-20.tar.gz
diff --git a/extra/imagemagick/sources b/extra/imagemagick/sources
index 33bd30c9..49c9982e 100644
--- a/extra/imagemagick/sources
+++ b/extra/imagemagick/sources
@@ -1 +1 @@
-https://github.com/ImageMagick/ImageMagick/archive/refs/tags/7.1.1-17.tar.gz
+https://github.com/ImageMagick/ImageMagick/archive/refs/tags/7.1.1-20.tar.gz
diff --git a/extra/imagemagick/version b/extra/imagemagick/version
index 041a2e46..48257ea2 100644
--- a/extra/imagemagick/version
+++ b/extra/imagemagick/version
@@ -1 +1 @@
-7.1.1-17 1
+7.1.1-20 1
diff --git a/extra/imlib2/checksums b/extra/imlib2/checksums
index 560f4a1b..7fa4966a 100644
--- a/extra/imlib2/checksums
+++ b/extra/imlib2/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-54654885ec54d3186c56fcec073c2d32fbca863e967d83c9aeb208cdab82920d imlib2-1.12.0.tar.gz
+145cf4ca6e9a4ce65aaf98f768cf0d2db61ce83e47bc49a0d389a3fe172d3700 imlib2-1.12.3.tar.gz
diff --git a/extra/imlib2/sources b/extra/imlib2/sources
index f6fb8622..7a4f03ef 100644
--- a/extra/imlib2/sources
+++ b/extra/imlib2/sources
@@ -1 +1 @@
-https://downloads.sourceforge.net/enlightenment/imlib2-src/imlib2-1.12.0.tar.gz
+https://downloads.sourceforge.net/enlightenment/imlib2-src/imlib2-1.12.3.tar.gz
diff --git a/extra/imlib2/version b/extra/imlib2/version
index 880a3f4c..c1976fd4 100644
--- a/extra/imlib2/version
+++ b/extra/imlib2/version
@@ -1 +1 @@
-1.12.0 1
+1.12.3 1
diff --git a/extra/iptables/checksums b/extra/iptables/checksums
index 47c9852d..eb319fbf 100644
--- a/extra/iptables/checksums
+++ b/extra/iptables/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-031d3d53911d48a52cc64f8f2e133b7f39abce5f05995eb3e7c82dff514f9846 iptables-1.8.9.tar.xz
+69cc827247ee4b240e68f5862140ad70febf5c499a727df6c7652fab6be0da8d iptables-1.8.10.tar.xz
diff --git a/extra/iptables/sources b/extra/iptables/sources
index 23b44239..982c268d 100644
--- a/extra/iptables/sources
+++ b/extra/iptables/sources
@@ -1 +1 @@
-http://www.netfilter.org/projects/iptables/files/iptables-1.8.9.tar.xz
+http://www.netfilter.org/projects/iptables/files/iptables-1.8.10.tar.xz
diff --git a/extra/iptables/version b/extra/iptables/version
index 0424fc56..b7b9ed84 100644
--- a/extra/iptables/version
+++ b/extra/iptables/version
@@ -1 +1 @@
-1.8.9 1
+1.8.10 1
diff --git a/extra/libX11/checksums b/extra/libX11/checksums
index b419d5bb..3064ac74 100644
--- a/extra/libX11/checksums
+++ b/extra/libX11/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-bc2600962aac153fa33942701e114e9af0b6784f6773aaf136b676bc8805b7bc libX11-1.8.6.tar.xz
+0cdd01aab2049f74d139146f3f517d334db4d61fde27f3902a8930ccf01feff4 libX11-1.8.10.tar.xz
diff --git a/extra/libX11/sources b/extra/libX11/sources
index 329b1946..df2699d6 100644
--- a/extra/libX11/sources
+++ b/extra/libX11/sources
@@ -1 +1 @@
-https://www.x.org/releases/individual/lib/libX11-1.8.6.tar.xz
+https://www.x.org/releases/individual/lib/libX11-1.8.10.tar.xz
diff --git a/extra/libX11/version b/extra/libX11/version
index 1cb00c85..b7b9ed84 100644
--- a/extra/libX11/version
+++ b/extra/libX11/version
@@ -1 +1 @@
-1.8.6 1
+1.8.10 1
diff --git a/extra/libXcursor/checksums b/extra/libXcursor/checksums
index 284fa48f..f977ed0f 100644
--- a/extra/libXcursor/checksums
+++ b/extra/libXcursor/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-f1bfdd6d1fdd191fc7caa8c2b118a8a8d082fd74cdf4b2cc89059e41a79fecbd libXcursor-1.2.1.tar.xz
+9d5f790fe40acdd40ea6b478772fbee8e9496235da585b4a11f7abe055400ea1 libXcursor-1.2.2.tar.xz
diff --git a/extra/libXcursor/sources b/extra/libXcursor/sources
index 790f12c3..fb1d2e19 100644
--- a/extra/libXcursor/sources
+++ b/extra/libXcursor/sources
@@ -1 +1 @@
-https://www.x.org/releases/individual/lib/libXcursor-1.2.1.tar.xz
+https://www.x.org/releases/individual/lib/libXcursor-1.2.2.tar.xz
diff --git a/extra/libXcursor/version b/extra/libXcursor/version
index cd3d02bc..52669276 100644
--- a/extra/libXcursor/version
+++ b/extra/libXcursor/version
@@ -1 +1 @@
-1.2.1 1
+1.2.2 1
diff --git a/extra/libXext/checksums b/extra/libXext/checksums
index 58b1dd1a..c8297ca5 100644
--- a/extra/libXext/checksums
+++ b/extra/libXext/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-8c0c77a43488855ec939e730bba8a9b9f8a3e3196cfb7cd1b8ed7c32a2634d3e libXext-1.3.5.tar.xz
+4c24887ba3913728f3c0be945006f6babbc2c44c8118d4b1ca5366294e3f4406 libXext-1.3.6.tar.xz
diff --git a/extra/libXext/sources b/extra/libXext/sources
index 1af516d4..cbbd8702 100644
--- a/extra/libXext/sources
+++ b/extra/libXext/sources
@@ -1 +1 @@
-https://www.x.org/releases/individual/lib/libXext-1.3.5.tar.xz
+https://www.x.org/releases/individual/lib/libXext-1.3.6.tar.xz
diff --git a/extra/libXext/version b/extra/libXext/version
index a06f6a21..c22de158 100644
--- a/extra/libXext/version
+++ b/extra/libXext/version
@@ -1 +1 @@
-1.3.5 1
+1.3.6 1
diff --git a/extra/libXfont2/checksums b/extra/libXfont2/checksums
index 54379a43..ed16e09c 100644
--- a/extra/libXfont2/checksums
+++ b/extra/libXfont2/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-26ee84ebd2f2557d3ef992df3ccda68e5fb4be745fda8901125558056d19efdf libXfont2-2.0.6.tar.xz
+9b4951683df21108e45fda23dbd25dcb47b67a3a0e224a36374fbc2d0f489cac libXfont2-2.0.7.tar.xz
diff --git a/extra/libXfont2/sources b/extra/libXfont2/sources
index 782d3850..cb00cc66 100644
--- a/extra/libXfont2/sources
+++ b/extra/libXfont2/sources
@@ -1 +1 @@
-https://www.x.org/releases/individual/lib/libXfont2-2.0.6.tar.xz
+https://www.x.org/releases/individual/lib/libXfont2-2.0.7.tar.xz
diff --git a/extra/libXfont2/version b/extra/libXfont2/version
index 7493c3d1..e9215bc4 100644
--- a/extra/libXfont2/version
+++ b/extra/libXfont2/version
@@ -1 +1 @@
-2.0.6 1
+2.0.7 1
diff --git a/extra/libXi/checksums b/extra/libXi/checksums
index 4cc9bcb6..9d5e3958 100644
--- a/extra/libXi/checksums
+++ b/extra/libXi/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-b345853f833443de6f52dff3b80c46ecf7c3efb94ef961c7421edf45e22a86c9 libXi-1.8.1.tar.xz
+8f0acdd884dc928c6c8bc4b6bca1f4c67c726fdb03e30910c09bdb41fd841d3e libXi-1.8.2.tar.xz
diff --git a/extra/libXi/sources b/extra/libXi/sources
index dbee803b..687b4cee 100644
--- a/extra/libXi/sources
+++ b/extra/libXi/sources
@@ -1 +1 @@
-https://www.x.org/releases/individual/lib/libXi-1.8.1.tar.xz
+https://www.x.org/releases/individual/lib/libXi-1.8.2.tar.xz
diff --git a/extra/libXi/version b/extra/libXi/version
index 8aa37bcd..6804f1e4 100644
--- a/extra/libXi/version
+++ b/extra/libXi/version
@@ -1 +1 @@
-1.8.1 1
+1.8.2 1
diff --git a/extra/libXmu/checksums b/extra/libXmu/checksums
index 3a43531b..3e8b63ff 100644
--- a/extra/libXmu/checksums
+++ b/extra/libXmu/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-0e7ea27e4accb589a81bacff70f74d1e1a1f04d6d85fd795d49dda9708e37e06 libXmu-1.1.4.tar.xz
+466f7ab160c4e9f04866e9c895dbecb6a76ed1817ae16721d404c556d88f047e libXmu-1.2.1.tar.xz
diff --git a/extra/libXmu/sources b/extra/libXmu/sources
index 0fa856ef..25a5c369 100644
--- a/extra/libXmu/sources
+++ b/extra/libXmu/sources
@@ -1 +1 @@
-https://x.org/releases/individual/lib/libXmu-1.1.4.tar.xz
+https://x.org/releases/individual/lib/libXmu-1.2.1.tar.xz
diff --git a/extra/libXmu/version b/extra/libXmu/version
index b01ca96f..cd3d02bc 100644
--- a/extra/libXmu/version
+++ b/extra/libXmu/version
@@ -1 +1 @@
-1.1.4 1
+1.2.1 1
diff --git a/extra/libarchive/checksums b/extra/libarchive/checksums
index a60db020..6d00df9c 100644
--- a/extra/libarchive/checksums
+++ b/extra/libarchive/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-4fb5e0451c71bc16a359ae17c3eba53727e1f66349a9eb8bdba4150d8ef3d164 libarchive-3.7.2.tar.xz
+3abe112dd42c018fa60651842a54fdab9b07ca0c6f14eaff61ec35cc8fa5b61f libarchive-3.7.6.tar.xz
diff --git a/extra/libarchive/sources b/extra/libarchive/sources
index 5ba31acb..1b118083 100644
--- a/extra/libarchive/sources
+++ b/extra/libarchive/sources
@@ -1 +1 @@
-https://github.com/libarchive/libarchive/releases/download/v3.7.2/libarchive-3.7.2.tar.xz
+https://github.com/libarchive/libarchive/releases/download/v3.7.6/libarchive-3.7.6.tar.xz
diff --git a/extra/libarchive/version b/extra/libarchive/version
index 9cab2d63..d8833805 100644
--- a/extra/libarchive/version
+++ b/extra/libarchive/version
@@ -1 +1 @@
-3.7.2 1
+3.7.6 1
diff --git a/extra/libass/checksums b/extra/libass/checksums
index e331390c..21f1f45e 100644
--- a/extra/libass/checksums
+++ b/extra/libass/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-049a2b9b2ca7a34eff8bdadcd7485e6a75fcbfbafb04ac6aeefb77923b7b69c2 libass-0.17.1.tar.xz
+bfbcc2a97193eb5c2a6c54d07c508d42ff62387a8a9d8b3959d15b6115bca8b6 libass-0.17.3.tar.xz
diff --git a/extra/libass/sources b/extra/libass/sources
index 5a0b1d00..c91c5a00 100644
--- a/extra/libass/sources
+++ b/extra/libass/sources
@@ -1 +1 @@
-https://github.com/libass/libass/releases/download/0.17.1/libass-0.17.1.tar.xz
+https://github.com/libass/libass/releases/download/0.17.3/libass-0.17.3.tar.xz
diff --git a/extra/libass/version b/extra/libass/version
index 1f27ea97..a3b1c155 100644
--- a/extra/libass/version
+++ b/extra/libass/version
@@ -1 +1 @@
-0.17.1 1
+0.17.3 1
diff --git a/extra/libassuan/checksums b/extra/libassuan/checksums
index 7261fffd..58af93b4 100644
--- a/extra/libassuan/checksums
+++ b/extra/libassuan/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-ae685498038f36597fb65c8802368b458b91fe97e0480d93b0eb4b15989bd20c libassuan-2.5.6.tar.bz2
+e3a697d0a563592e8c21bff88cb38ad30d58ed41b15d746977e74455e45184b8 libassuan-3.0.1.tar.bz2
diff --git a/extra/libassuan/sources b/extra/libassuan/sources
index e5083f88..5dd66723 100644
--- a/extra/libassuan/sources
+++ b/extra/libassuan/sources
@@ -1 +1 @@
-https://gnupg.org/ftp/gcrypt/libassuan/libassuan-2.5.6.tar.bz2
+https://gnupg.org/ftp/gcrypt/libassuan/libassuan-3.0.1.tar.bz2
diff --git a/extra/libassuan/version b/extra/libassuan/version
index bdaca607..51545dbb 100644
--- a/extra/libassuan/version
+++ b/extra/libassuan/version
@@ -1 +1 @@
-2.5.6 1
+3.0.1 1
diff --git a/extra/libclc/build b/extra/libclc/build
new file mode 100755
index 00000000..90e518cd
--- /dev/null
+++ b/extra/libclc/build
@@ -0,0 +1,11 @@
+#!/bin/sh -e
+
+export DESTDIR="$1"
+
+cmake -B build \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLLVM_DIR=/usr/lib/cmake/llvm
+
+cmake --build build
+cmake --install build
diff --git a/extra/libclc/checksums b/extra/libclc/checksums
new file mode 100644
index 00000000..e15a1016
--- /dev/null
+++ b/extra/libclc/checksums
@@ -0,0 +1,2 @@
+%BLAKE3
+6db60982fa552857efc99591146db491a445ad276f5cdab8fec786635063e29f libclc-19.1.1.src.tar.xz
diff --git a/extra/libclc/depends b/extra/libclc/depends
new file mode 100644
index 00000000..8f61b167
--- /dev/null
+++ b/extra/libclc/depends
@@ -0,0 +1,4 @@
+cmake make
+llvm make
+python make
+zlib
diff --git a/extra/libclc/meta b/extra/libclc/meta
new file mode 100644
index 00000000..f360a5e5
--- /dev/null
+++ b/extra/libclc/meta
@@ -0,0 +1,3 @@
+description: Open implementation of the OpenCL C programming language
+license: BSD-3-Clause, MIT
+maintainer: Cem Keylan <cem@carbslinux.org>
diff --git a/extra/libclc/sources b/extra/libclc/sources
new file mode 100644
index 00000000..b46af24b
--- /dev/null
+++ b/extra/libclc/sources
@@ -0,0 +1 @@
+https://github.com/llvm/llvm-project/releases/download/llvmorg-19.1.1/libclc-19.1.1.src.tar.xz
diff --git a/extra/libclc/version b/extra/libclc/version
new file mode 100644
index 00000000..6db232b7
--- /dev/null
+++ b/extra/libclc/version
@@ -0,0 +1 @@
+19.1.1 1
diff --git a/extra/libxkbcommon/build b/extra/libdisplay-info/build
index 41cb196d..8d4579c7 100755
--- a/extra/libxkbcommon/build
+++ b/extra/libdisplay-info/build
@@ -1,10 +1,10 @@
#!/bin/sh -e
+export LDFLAGS="$LDFLAGS -static"
export DESTDIR="$1"
cl-meson \
- -Denable-docs=false \
- -Denable-wayland="$(cpt l -C wayland true false)" \
+ -Ddefault_library=static \
. output
ninja -C output
diff --git a/extra/libdisplay-info/checksums b/extra/libdisplay-info/checksums
new file mode 100644
index 00000000..d3fa892d
--- /dev/null
+++ b/extra/libdisplay-info/checksums
@@ -0,0 +1,2 @@
+%BLAKE3
+118dc0d50860fcdfd4841feb883d47967dd2fcf9be2ed416402ad86532b12c48 libdisplay-info-0.2.0.tar.gz
diff --git a/extra/libdisplay-info/depends b/extra/libdisplay-info/depends
new file mode 100644
index 00000000..36f6fe6c
--- /dev/null
+++ b/extra/libdisplay-info/depends
@@ -0,0 +1 @@
+meson make
diff --git a/extra/libxkbcommon/meta b/extra/libdisplay-info/meta
index cb74ff1c..d665c44d 100644
--- a/extra/libxkbcommon/meta
+++ b/extra/libdisplay-info/meta
@@ -1,3 +1,3 @@
-description: Library to handle keyboard descriptions
+description: EDID and DisplayID library
license: MIT
maintainer: Cem Keylan <cem@carbslinux.org>
diff --git a/extra/libdisplay-info/sources b/extra/libdisplay-info/sources
new file mode 100644
index 00000000..7a957294
--- /dev/null
+++ b/extra/libdisplay-info/sources
@@ -0,0 +1 @@
+https://gitlab.freedesktop.org/emersion/libdisplay-info/-/archive/0.2.0/libdisplay-info-0.2.0.tar.gz
diff --git a/extra/libdisplay-info/version b/extra/libdisplay-info/version
new file mode 100644
index 00000000..2f7905df
--- /dev/null
+++ b/extra/libdisplay-info/version
@@ -0,0 +1 @@
+0.2.0 1
diff --git a/extra/libdrm/checksums b/extra/libdrm/checksums
index 9f2762ca..237e0bbd 100644
--- a/extra/libdrm/checksums
+++ b/extra/libdrm/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-10cab23d42c680fc7b6108e13737f9d730cee2c582ea0c64ddf102bca41c91f4 drm-libdrm-2.4.116.tar.gz
+9643b9e00c70883b7695e2a2d927cdf7998a6dd9a7f77c703558ebcf58f31531 drm-libdrm-2.4.123.tar.gz
diff --git a/extra/libdrm/sources b/extra/libdrm/sources
index 662bf510..281e7a59 100644
--- a/extra/libdrm/sources
+++ b/extra/libdrm/sources
@@ -1 +1 @@
-https://gitlab.freedesktop.org/mesa/drm/-/archive/libdrm-2.4.116/drm-libdrm-2.4.116.tar.gz
+https://gitlab.freedesktop.org/mesa/drm/-/archive/libdrm-2.4.123/drm-libdrm-2.4.123.tar.gz
diff --git a/extra/libdrm/version b/extra/libdrm/version
index a0ebd989..a996b817 100644
--- a/extra/libdrm/version
+++ b/extra/libdrm/version
@@ -1 +1 @@
-2.4.116 1
+2.4.123 1
diff --git a/extra/libedit/checksums b/extra/libedit/checksums
index c1026f29..c3ad3c82 100644
--- a/extra/libedit/checksums
+++ b/extra/libedit/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-f5151572d477a16b5f0c15a2fcc0a4063374609c1633d880d3875ee3ee327d64 libedit-20230828-3.1.tar.gz
+e0a9a5af6f8ab950a4f29ad927b38b71e8278383fce1c3689b04a56cbb2b32bb libedit-20240808-3.1.tar.gz
diff --git a/extra/libedit/sources b/extra/libedit/sources
index 38045beb..5b7c5dda 100644
--- a/extra/libedit/sources
+++ b/extra/libedit/sources
@@ -1 +1 @@
-https://www.thrysoee.dk/editline/libedit-20230828-3.1.tar.gz
+https://www.thrysoee.dk/editline/libedit-20240808-3.1.tar.gz
diff --git a/extra/libedit/version b/extra/libedit/version
index 22ea6f44..3add2bdb 100644
--- a/extra/libedit/version
+++ b/extra/libedit/version
@@ -1 +1 @@
-20230828-3.1 1
+20240808-3.1 1
diff --git a/extra/libelf/checksums b/extra/libelf/checksums
index 6143a879..e2745edd 100644
--- a/extra/libelf/checksums
+++ b/extra/libelf/checksums
@@ -1,3 +1,3 @@
%BLAKE3
-2ef2765fa4664e1c7b69551314c70b8b4f829432d989ea32ec08f2292b986e3f elfutils-0.189.tar.bz2
+e9e3f567ab63784d968f708c08ea5a09dd5fae2f0846d0d43a2ebc8b542c15b2 elfutils-0.191.tar.bz2
08e8eb364790fd0a2ad16aa325397b0a9213fab374ebc1402ad305736d1a93f3 error.h
diff --git a/extra/libelf/sources b/extra/libelf/sources
index 0e74d350..9fea8780 100644
--- a/extra/libelf/sources
+++ b/extra/libelf/sources
@@ -1,2 +1,2 @@
-https://sourceware.org/elfutils/ftp/0.189/elfutils-0.189.tar.bz2
+https://sourceware.org/elfutils/ftp/0.191/elfutils-0.191.tar.bz2
files/error.h lib
diff --git a/extra/libelf/version b/extra/libelf/version
index 877b5e29..86988463 100644
--- a/extra/libelf/version
+++ b/extra/libelf/version
@@ -1 +1 @@
-0.189 1
+0.191 1
diff --git a/extra/libevdev/checksums b/extra/libevdev/checksums
index d2c828f5..c60d5f64 100644
--- a/extra/libevdev/checksums
+++ b/extra/libevdev/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-6a0e5da2a78556360838f8a558b5435547b1f2aee73e8ac5614326960fe25b2d libevdev-1.13.1.tar.xz
+7154159ecc390d8ebda7f8b95ecf02acd86fc5ddce072020d6e84de142614ae1 libevdev-1.13.3.tar.xz
diff --git a/extra/libevdev/sources b/extra/libevdev/sources
index 7ce6eca8..10b0bfe5 100644
--- a/extra/libevdev/sources
+++ b/extra/libevdev/sources
@@ -1 +1 @@
-https://www.freedesktop.org/software/libevdev/libevdev-1.13.1.tar.xz
+https://www.freedesktop.org/software/libevdev/libevdev-1.13.3.tar.xz
diff --git a/extra/libevdev/version b/extra/libevdev/version
index 9c812821..77327e8b 100644
--- a/extra/libevdev/version
+++ b/extra/libevdev/version
@@ -1 +1 @@
-1.13.1 1
+1.13.3 1
diff --git a/extra/libffi/checksums b/extra/libffi/checksums
index 7cb26328..9cb23461 100644
--- a/extra/libffi/checksums
+++ b/extra/libffi/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-42abcee37cdbf72c9c749f5cce8dc2fea0257a6a4e4776ba310ee8bdaf6e36ed libffi-3.4.4.tar.gz
+c7d7a36b1dad81ff39ca53f3a11c3e01450dfb2d787e05ca60cfe1b4b6491759 libffi-3.4.6.tar.gz
diff --git a/extra/libffi/sources b/extra/libffi/sources
index 0fbf6e3e..dd847e81 100644
--- a/extra/libffi/sources
+++ b/extra/libffi/sources
@@ -1 +1 @@
-https://github.com/libffi/libffi/releases/download/v3.4.4/libffi-3.4.4.tar.gz
+https://github.com/libffi/libffi/releases/download/v3.4.6/libffi-3.4.6.tar.gz
diff --git a/extra/libffi/version b/extra/libffi/version
index cb296f80..0b14d12f 100644
--- a/extra/libffi/version
+++ b/extra/libffi/version
@@ -1 +1 @@
-3.4.4 1
+3.4.6 1
diff --git a/extra/libfontenc/checksums b/extra/libfontenc/checksums
index 5b3c602a..0a1c646a 100644
--- a/extra/libfontenc/checksums
+++ b/extra/libfontenc/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-976d8de1c6ac3a385df2884cb198b3a41960418bbd17844feb13cda6fa41c956 libfontenc-1.1.7.tar.xz
+6ab127a335f7cb4892566e59448d91e9ec43ac522f31f97a3c94350f0a3ecaf4 libfontenc-1.1.8.tar.xz
diff --git a/extra/libfontenc/sources b/extra/libfontenc/sources
index 1a7b71d6..214c94ec 100644
--- a/extra/libfontenc/sources
+++ b/extra/libfontenc/sources
@@ -1 +1 @@
-https://www.x.org/releases/individual/lib/libfontenc-1.1.7.tar.xz
+https://www.x.org/releases/individual/lib/libfontenc-1.1.8.tar.xz
diff --git a/extra/libfontenc/version b/extra/libfontenc/version
index bcd3c3ec..7a39cf64 100644
--- a/extra/libfontenc/version
+++ b/extra/libfontenc/version
@@ -1 +1 @@
-1.1.7 1
+1.1.8 1
diff --git a/extra/libgcrypt/checksums b/extra/libgcrypt/checksums
index 8b1593aa..34c5e841 100644
--- a/extra/libgcrypt/checksums
+++ b/extra/libgcrypt/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-61102a9327fca0d20dbe61da0039390380893ac60e8e6965071f4ca03d9b7116 libgcrypt-1.10.2.tar.bz2
+a236b238d5f1d44be9b91422b9bee0b606c957a13847794f1de437d50f12b37d libgcrypt-1.11.0.tar.bz2
diff --git a/extra/libgcrypt/sources b/extra/libgcrypt/sources
index 76b1f714..4f04d30b 100644
--- a/extra/libgcrypt/sources
+++ b/extra/libgcrypt/sources
@@ -1 +1 @@
-https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.10.2.tar.bz2
+https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.11.0.tar.bz2
diff --git a/extra/libgcrypt/version b/extra/libgcrypt/version
index e2a1ebf7..0da43b10 100644
--- a/extra/libgcrypt/version
+++ b/extra/libgcrypt/version
@@ -1 +1 @@
-1.10.2 1
+1.11.0 1
diff --git a/extra/libgit2/checksums b/extra/libgit2/checksums
index 209bb7c3..47e732d1 100644
--- a/extra/libgit2/checksums
+++ b/extra/libgit2/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-8708420a9b8af1b8026a8544aa3187ef3a70906b94c96714c3c1d77f266f156e v1.7.1.tar.gz
+c5f3a4d132e9faa12ddcd1c1dc073a8b3280a77b27ec681c88e781e815afe2e8 v1.8.1.tar.gz
diff --git a/extra/libgit2/sources b/extra/libgit2/sources
index 00acea77..0b214420 100644
--- a/extra/libgit2/sources
+++ b/extra/libgit2/sources
@@ -1 +1 @@
-https://github.com/libgit2/libgit2/archive/v1.7.1.tar.gz
+https://github.com/libgit2/libgit2/archive/v1.8.1.tar.gz
diff --git a/extra/libgit2/version b/extra/libgit2/version
index 2817085c..8aa37bcd 100644
--- a/extra/libgit2/version
+++ b/extra/libgit2/version
@@ -1 +1 @@
-1.7.1 1
+1.8.1 1
diff --git a/extra/libgpg-error/checksums b/extra/libgpg-error/checksums
index 435940f1..9b0f4bb9 100644
--- a/extra/libgpg-error/checksums
+++ b/extra/libgpg-error/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-192f7986cf23f753085f607ca7950707683a74cf7dabf867896128feeeb782ea libgpg-error-1.47.tar.bz2
+9e30e6a7e2529c24a4c06c3343b2ae453b3c35969e91fd124879cbf4a44967ac libgpg-error-1.50.tar.bz2
diff --git a/extra/libgpg-error/sources b/extra/libgpg-error/sources
index a996490d..5417c817 100644
--- a/extra/libgpg-error/sources
+++ b/extra/libgpg-error/sources
@@ -1 +1 @@
-https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.47.tar.bz2
+https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.50.tar.bz2
diff --git a/extra/libgpg-error/version b/extra/libgpg-error/version
index 02688b9b..d91df1b2 100644
--- a/extra/libgpg-error/version
+++ b/extra/libgpg-error/version
@@ -1 +1 @@
-1.47 1
+1.50 1
diff --git a/extra/libinput/checksums b/extra/libinput/checksums
index a68fbe63..5240800e 100644
--- a/extra/libinput/checksums
+++ b/extra/libinput/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-376d877ed0737b4961437c0c7e95ca6eee1769d6d174d9b50f128aadfdc8ec42 libinput-1.24.0.tar.gz
+73b0936fe2c22fc5c0f307089a7debbb46b051bcda400fab5af80f7b9dd37b10 libinput-1.26.2.tar.gz
diff --git a/extra/libinput/sources b/extra/libinput/sources
index 0d28398c..9d99bb48 100644
--- a/extra/libinput/sources
+++ b/extra/libinput/sources
@@ -1 +1 @@
-https://gitlab.freedesktop.org/libinput/libinput/-/archive/1.24.0/libinput-1.24.0.tar.gz
+https://gitlab.freedesktop.org/libinput/libinput/-/archive/1.26.2/libinput-1.26.2.tar.gz
diff --git a/extra/libinput/version b/extra/libinput/version
index 48b5dc6c..b60e4cec 100644
--- a/extra/libinput/version
+++ b/extra/libinput/version
@@ -1 +1 @@
-1.24.0 1
+1.26.2 1
diff --git a/extra/libjpeg-turbo/checksums b/extra/libjpeg-turbo/checksums
index bf632b49..ab13ac0e 100644
--- a/extra/libjpeg-turbo/checksums
+++ b/extra/libjpeg-turbo/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-1f2d7512ae290a567b4dcac824978f20c99a14faa3f1b0d6601fb55caf1ed128 3.0.0.tar.gz
+3e2bc34658ffb966cf99b5fcc1a20451c6c9077d95e6f77676f31001d9eddcdb 3.0.4.tar.gz
diff --git a/extra/libjpeg-turbo/sources b/extra/libjpeg-turbo/sources
index da7005b4..65e2ec18 100644
--- a/extra/libjpeg-turbo/sources
+++ b/extra/libjpeg-turbo/sources
@@ -1 +1 @@
-https://github.com/libjpeg-turbo/libjpeg-turbo/archive/3.0.0.tar.gz
+https://github.com/libjpeg-turbo/libjpeg-turbo/archive/3.0.4.tar.gz
diff --git a/extra/libjpeg-turbo/version b/extra/libjpeg-turbo/version
index 4fc4c8a7..aba54801 100644
--- a/extra/libjpeg-turbo/version
+++ b/extra/libjpeg-turbo/version
@@ -1 +1 @@
-3.0.0 1
+3.0.4 1
diff --git a/extra/libksba/checksums b/extra/libksba/checksums
index 7e657dd7..0b37abb7 100644
--- a/extra/libksba/checksums
+++ b/extra/libksba/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-70b5e12c4b33d6ffe2503b6a30ca8e67981f685174e8b01fb3c0b527e2d3b4f9 libksba-1.6.4.tar.bz2
+cb5bafe9d11429796c31358d9b96695ceeab80e33da75991902075c597c708cf libksba-1.6.7.tar.bz2
diff --git a/extra/libksba/sources b/extra/libksba/sources
index 766fc412..6b1a07a0 100644
--- a/extra/libksba/sources
+++ b/extra/libksba/sources
@@ -1 +1 @@
-https://gnupg.org/ftp/gcrypt/libksba/libksba-1.6.4.tar.bz2
+https://gnupg.org/ftp/gcrypt/libksba/libksba-1.6.7.tar.bz2
diff --git a/extra/libksba/version b/extra/libksba/version
index 89e55a86..71e9bb62 100644
--- a/extra/libksba/version
+++ b/extra/libksba/version
@@ -1 +1 @@
-1.6.4 1
+1.6.7 1
diff --git a/extra/libpciaccess/build b/extra/libpciaccess/build
index 6daf22f8..20b55fd4 100755
--- a/extra/libpciaccess/build
+++ b/extra/libpciaccess/build
@@ -1,7 +1,9 @@
#!/bin/sh -e
-./configure \
- --prefix=/usr
+export DESTDIR="$1"
-make
-make DESTDIR="$1" install
+cl-meson \
+ . output
+
+ninja -C output
+ninja -C output install
diff --git a/extra/libpciaccess/checksums b/extra/libpciaccess/checksums
index 4ad5a4dd..851d121b 100644
--- a/extra/libpciaccess/checksums
+++ b/extra/libpciaccess/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-812c8d6a7d65ca8f963d86acb49efe9bee19cfd6546a3324a6eb1184416136a8 libpciaccess-0.17.tar.xz
+ea20d4e12331620d1921edb6a5a043410416037869dc63264990861b23d0323b libpciaccess-0.18.1.tar.xz
diff --git a/extra/libpciaccess/depends b/extra/libpciaccess/depends
new file mode 100644
index 00000000..36f6fe6c
--- /dev/null
+++ b/extra/libpciaccess/depends
@@ -0,0 +1 @@
+meson make
diff --git a/extra/libpciaccess/sources b/extra/libpciaccess/sources
index 4dce9bca..a21912cc 100644
--- a/extra/libpciaccess/sources
+++ b/extra/libpciaccess/sources
@@ -1 +1 @@
-https://www.x.org/releases/individual/lib/libpciaccess-0.17.tar.xz
+https://www.x.org/releases/individual/lib/libpciaccess-0.18.1.tar.xz
diff --git a/extra/libpciaccess/version b/extra/libpciaccess/version
index dc75c933..10895720 100644
--- a/extra/libpciaccess/version
+++ b/extra/libpciaccess/version
@@ -1 +1 @@
-0.17 1
+0.18.1 1
diff --git a/extra/libplacebo/build b/extra/libplacebo/build
new file mode 100755
index 00000000..1c4a40bf
--- /dev/null
+++ b/extra/libplacebo/build
@@ -0,0 +1,14 @@
+#!/bin/sh -e
+
+export DESTDIR="$1"
+export CXXFLAGS="$CXXFLAGS -static-libgcc -static-libstdc++"
+
+cl-meson \
+ -Dlcms=enabled \
+ -Dopengl=enabled \
+ -Dvulkan=enabled \
+ -Ddemos=false \
+ . output
+
+ninja -C output
+ninja -C output install
diff --git a/extra/libplacebo/checksums b/extra/libplacebo/checksums
new file mode 100644
index 00000000..f6c76976
--- /dev/null
+++ b/extra/libplacebo/checksums
@@ -0,0 +1,3 @@
+%BLAKE3
+3363de224b28315dc695160d44bdc2eff3d6856b5e379583b5c720b5fff766aa libplacebo-v7.349.0.tar.gz
+75ccae516b2812bb4510956aed782f6ceb4e1036381916f965f658504af2eb51 v2.0.8.tar.gz
diff --git a/extra/libplacebo/depends b/extra/libplacebo/depends
new file mode 100644
index 00000000..fbb7f8fe
--- /dev/null
+++ b/extra/libplacebo/depends
@@ -0,0 +1,4 @@
+Vulkan-Headers
+lcms2
+meson make
+vulkan-loader make
diff --git a/extra/libplacebo/meta b/extra/libplacebo/meta
new file mode 100644
index 00000000..551334f4
--- /dev/null
+++ b/extra/libplacebo/meta
@@ -0,0 +1,3 @@
+description: Reusable library for GPU-accelerated image/video processing primitives and shaders, as well a batteries-included, extensible, high-quality rendering pipeline
+license: LGPL-2.1-or-later
+maintainer: Cem Keylan <cem@carbslinux.org>
diff --git a/extra/libplacebo/sources b/extra/libplacebo/sources
new file mode 100644
index 00000000..49833c0d
--- /dev/null
+++ b/extra/libplacebo/sources
@@ -0,0 +1,2 @@
+https://code.videolan.org/videolan/libplacebo/-/archive/v7.349.0/libplacebo-v7.349.0.tar.gz
+https://github.com/Dav1dde/glad/archive/refs/tags/v2.0.8.tar.gz 3rdparty/glad
diff --git a/extra/libplacebo/version b/extra/libplacebo/version
new file mode 100644
index 00000000..fb7181e6
--- /dev/null
+++ b/extra/libplacebo/version
@@ -0,0 +1 @@
+7.349.0 1
diff --git a/extra/libpng/build b/extra/libpng/build
index 5be67a84..6daf22f8 100755
--- a/extra/libpng/build
+++ b/extra/libpng/build
@@ -1,7 +1,5 @@
#!/bin/sh -e
-patch -p1 < libpng-1.6.37-apng.patch
-
./configure \
--prefix=/usr
diff --git a/extra/libpng/checksums b/extra/libpng/checksums
index 07cd3b53..2dac2350 100644
--- a/extra/libpng/checksums
+++ b/extra/libpng/checksums
@@ -1,3 +1,2 @@
%BLAKE3
-99d2b2684b045a128210230a8b5437066b68d162f38923a27a925d37ce101bd4 v1.6.40.tar.gz
-2f0f2aabc9efc8b15c1a3b84ab20bf84ad552bd0f587bb49d52c3f0689c4120b libpng-1.6.37-apng.patch
+6e995123b935af5b7887e53cdfe6e5bc7b8088ee921b1023a7e33388188507c3 v1.6.44.tar.gz
diff --git a/extra/libpng/patches/libpng-1.6.37-apng.patch b/extra/libpng/patches/libpng-1.6.37-apng.patch
deleted file mode 100644
index 8aaa50b9..00000000
--- a/extra/libpng/patches/libpng-1.6.37-apng.patch
+++ /dev/null
@@ -1,1728 +0,0 @@
-diff -Naru libpng-1.6.37.org/png.h libpng-1.6.37/png.h
---- libpng-1.6.37.org/png.h 2019-04-19 07:21:37.398024800 +0900
-+++ libpng-1.6.37/png.h 2019-04-19 07:22:37.871245630 +0900
-@@ -330,6 +330,10 @@
- # include "pnglibconf.h"
- #endif
-
-+#define PNG_APNG_SUPPORTED
-+#define PNG_READ_APNG_SUPPORTED
-+#define PNG_WRITE_APNG_SUPPORTED
-+
- #ifndef PNG_VERSION_INFO_ONLY
- /* Machine specific configuration. */
- # include "pngconf.h"
-@@ -425,6 +429,17 @@
- * See pngconf.h for base types that vary by machine/system
- */
-
-+#ifdef PNG_APNG_SUPPORTED
-+/* dispose_op flags from inside fcTL */
-+#define PNG_DISPOSE_OP_NONE 0x00U
-+#define PNG_DISPOSE_OP_BACKGROUND 0x01U
-+#define PNG_DISPOSE_OP_PREVIOUS 0x02U
-+
-+/* blend_op flags from inside fcTL */
-+#define PNG_BLEND_OP_SOURCE 0x00U
-+#define PNG_BLEND_OP_OVER 0x01U
-+#endif /* PNG_APNG_SUPPORTED */
-+
- /* This triggers a compiler error in png.c, if png.c and png.h
- * do not agree upon the version number.
- */
-@@ -746,6 +761,10 @@
- #define PNG_INFO_sCAL 0x4000U /* ESR, 1.0.6 */
- #define PNG_INFO_IDAT 0x8000U /* ESR, 1.0.6 */
- #define PNG_INFO_eXIf 0x10000U /* GR-P, 1.6.31 */
-+#ifdef PNG_APNG_SUPPORTED
-+#define PNG_INFO_acTL 0x20000U
-+#define PNG_INFO_fcTL 0x40000U
-+#endif
-
- /* This is used for the transformation routines, as some of them
- * change these values for the row. It also should enable using
-@@ -783,6 +802,10 @@
- #ifdef PNG_PROGRESSIVE_READ_SUPPORTED
- typedef PNG_CALLBACK(void, *png_progressive_info_ptr, (png_structp, png_infop));
- typedef PNG_CALLBACK(void, *png_progressive_end_ptr, (png_structp, png_infop));
-+#ifdef PNG_APNG_SUPPORTED
-+typedef PNG_CALLBACK(void, *png_progressive_frame_ptr, (png_structp,
-+ png_uint_32));
-+#endif
-
- /* The following callback receives png_uint_32 row_number, int pass for the
- * png_bytep data of the row. When transforming an interlaced image the
-@@ -3226,6 +3249,74 @@
- /*******************************************************************************
- * END OF HARDWARE AND SOFTWARE OPTIONS
- ******************************************************************************/
-+#ifdef PNG_APNG_SUPPORTED
-+PNG_EXPORT(250, png_uint_32, png_get_acTL, (png_structp png_ptr,
-+ png_infop info_ptr, png_uint_32 *num_frames, png_uint_32 *num_plays));
-+
-+PNG_EXPORT(251, png_uint_32, png_set_acTL, (png_structp png_ptr,
-+ png_infop info_ptr, png_uint_32 num_frames, png_uint_32 num_plays));
-+
-+PNG_EXPORT(252, png_uint_32, png_get_num_frames, (png_structp png_ptr,
-+ png_infop info_ptr));
-+
-+PNG_EXPORT(253, png_uint_32, png_get_num_plays, (png_structp png_ptr,
-+ png_infop info_ptr));
-+
-+PNG_EXPORT(254, png_uint_32, png_get_next_frame_fcTL,
-+ (png_structp png_ptr, png_infop info_ptr, png_uint_32 *width,
-+ png_uint_32 *height, png_uint_32 *x_offset, png_uint_32 *y_offset,
-+ png_uint_16 *delay_num, png_uint_16 *delay_den, png_byte *dispose_op,
-+ png_byte *blend_op));
-+
-+PNG_EXPORT(255, png_uint_32, png_set_next_frame_fcTL,
-+ (png_structp png_ptr, png_infop info_ptr, png_uint_32 width,
-+ png_uint_32 height, png_uint_32 x_offset, png_uint_32 y_offset,
-+ png_uint_16 delay_num, png_uint_16 delay_den, png_byte dispose_op,
-+ png_byte blend_op));
-+
-+PNG_EXPORT(256, png_uint_32, png_get_next_frame_width,
-+ (png_structp png_ptr, png_infop info_ptr));
-+PNG_EXPORT(257, png_uint_32, png_get_next_frame_height,
-+ (png_structp png_ptr, png_infop info_ptr));
-+PNG_EXPORT(258, png_uint_32, png_get_next_frame_x_offset,
-+ (png_structp png_ptr, png_infop info_ptr));
-+PNG_EXPORT(259, png_uint_32, png_get_next_frame_y_offset,
-+ (png_structp png_ptr, png_infop info_ptr));
-+PNG_EXPORT(260, png_uint_16, png_get_next_frame_delay_num,
-+ (png_structp png_ptr, png_infop info_ptr));
-+PNG_EXPORT(261, png_uint_16, png_get_next_frame_delay_den,
-+ (png_structp png_ptr, png_infop info_ptr));
-+PNG_EXPORT(262, png_byte, png_get_next_frame_dispose_op,
-+ (png_structp png_ptr, png_infop info_ptr));
-+PNG_EXPORT(263, png_byte, png_get_next_frame_blend_op,
-+ (png_structp png_ptr, png_infop info_ptr));
-+PNG_EXPORT(264, png_byte, png_get_first_frame_is_hidden,
-+ (png_structp png_ptr, png_infop info_ptr));
-+PNG_EXPORT(265, png_uint_32, png_set_first_frame_is_hidden,
-+ (png_structp png_ptr, png_infop info_ptr, png_byte is_hidden));
-+
-+#ifdef PNG_READ_APNG_SUPPORTED
-+PNG_EXPORT(266, void, png_read_frame_head, (png_structp png_ptr,
-+ png_infop info_ptr));
-+#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
-+PNG_EXPORT(267, void, png_set_progressive_frame_fn, (png_structp png_ptr,
-+ png_progressive_frame_ptr frame_info_fn,
-+ png_progressive_frame_ptr frame_end_fn));
-+#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */
-+#endif /* PNG_READ_APNG_SUPPORTED */
-+
-+#ifdef PNG_WRITE_APNG_SUPPORTED
-+PNG_EXPORT(268, void, png_write_frame_head, (png_structp png_ptr,
-+ png_infop info_ptr, png_bytepp row_pointers,
-+ png_uint_32 width, png_uint_32 height,
-+ png_uint_32 x_offset, png_uint_32 y_offset,
-+ png_uint_16 delay_num, png_uint_16 delay_den, png_byte dispose_op,
-+ png_byte blend_op));
-+
-+PNG_EXPORT(269, void, png_write_frame_tail, (png_structp png_ptr,
-+ png_infop info_ptr));
-+#endif /* PNG_WRITE_APNG_SUPPORTED */
-+#endif /* PNG_APNG_SUPPORTED */
-
- /* Maintainer: Put new public prototypes here ^, in libpng.3, in project
- * defs, and in scripts/symbols.def.
-@@ -3235,7 +3326,11 @@
- * one to use is one more than this.)
- */
- #ifdef PNG_EXPORT_LAST_ORDINAL
-+#ifdef PNG_APNG_SUPPORTED
-+ PNG_EXPORT_LAST_ORDINAL(269);
-+#else
- PNG_EXPORT_LAST_ORDINAL(249);
-+#endif /* PNG_APNG_SUPPORTED */
- #endif
-
- #ifdef __cplusplus
-diff -Naru libpng-1.6.37.org/pngget.c libpng-1.6.37/pngget.c
---- libpng-1.6.37.org/pngget.c 2019-04-19 07:21:37.399024787 +0900
-+++ libpng-1.6.37/pngget.c 2019-04-19 07:22:37.850245901 +0900
-@@ -1246,4 +1246,166 @@
- # endif
- #endif
-
-+#ifdef PNG_APNG_SUPPORTED
-+png_uint_32 PNGAPI
-+png_get_acTL(png_structp png_ptr, png_infop info_ptr,
-+ png_uint_32 *num_frames, png_uint_32 *num_plays)
-+{
-+ png_debug1(1, "in %s retrieval function", "acTL");
-+
-+ if (png_ptr != NULL && info_ptr != NULL &&
-+ (info_ptr->valid & PNG_INFO_acTL) &&
-+ num_frames != NULL && num_plays != NULL)
-+ {
-+ *num_frames = info_ptr->num_frames;
-+ *num_plays = info_ptr->num_plays;
-+ return (1);
-+ }
-+
-+ return (0);
-+}
-+
-+png_uint_32 PNGAPI
-+png_get_num_frames(png_structp png_ptr, png_infop info_ptr)
-+{
-+ png_debug(1, "in png_get_num_frames()");
-+
-+ if (png_ptr != NULL && info_ptr != NULL)
-+ return (info_ptr->num_frames);
-+ return (0);
-+}
-+
-+png_uint_32 PNGAPI
-+png_get_num_plays(png_structp png_ptr, png_infop info_ptr)
-+{
-+ png_debug(1, "in png_get_num_plays()");
-+
-+ if (png_ptr != NULL && info_ptr != NULL)
-+ return (info_ptr->num_plays);
-+ return (0);
-+}
-+
-+png_uint_32 PNGAPI
-+png_get_next_frame_fcTL(png_structp png_ptr, png_infop info_ptr,
-+ png_uint_32 *width, png_uint_32 *height,
-+ png_uint_32 *x_offset, png_uint_32 *y_offset,
-+ png_uint_16 *delay_num, png_uint_16 *delay_den,
-+ png_byte *dispose_op, png_byte *blend_op)
-+{
-+ png_debug1(1, "in %s retrieval function", "fcTL");
-+
-+ if (png_ptr != NULL && info_ptr != NULL &&
-+ (info_ptr->valid & PNG_INFO_fcTL) &&
-+ width != NULL && height != NULL &&
-+ x_offset != NULL && y_offset != NULL &&
-+ delay_num != NULL && delay_den != NULL &&
-+ dispose_op != NULL && blend_op != NULL)
-+ {
-+ *width = info_ptr->next_frame_width;
-+ *height = info_ptr->next_frame_height;
-+ *x_offset = info_ptr->next_frame_x_offset;
-+ *y_offset = info_ptr->next_frame_y_offset;
-+ *delay_num = info_ptr->next_frame_delay_num;
-+ *delay_den = info_ptr->next_frame_delay_den;
-+ *dispose_op = info_ptr->next_frame_dispose_op;
-+ *blend_op = info_ptr->next_frame_blend_op;
-+ return (1);
-+ }
-+
-+ return (0);
-+}
-+
-+png_uint_32 PNGAPI
-+png_get_next_frame_width(png_structp png_ptr, png_infop info_ptr)
-+{
-+ png_debug(1, "in png_get_next_frame_width()");
-+
-+ if (png_ptr != NULL && info_ptr != NULL)
-+ return (info_ptr->next_frame_width);
-+ return (0);
-+}
-+
-+png_uint_32 PNGAPI
-+png_get_next_frame_height(png_structp png_ptr, png_infop info_ptr)
-+{
-+ png_debug(1, "in png_get_next_frame_height()");
-+
-+ if (png_ptr != NULL && info_ptr != NULL)
-+ return (info_ptr->next_frame_height);
-+ return (0);
-+}
-+
-+png_uint_32 PNGAPI
-+png_get_next_frame_x_offset(png_structp png_ptr, png_infop info_ptr)
-+{
-+ png_debug(1, "in png_get_next_frame_x_offset()");
-+
-+ if (png_ptr != NULL && info_ptr != NULL)
-+ return (info_ptr->next_frame_x_offset);
-+ return (0);
-+}
-+
-+png_uint_32 PNGAPI
-+png_get_next_frame_y_offset(png_structp png_ptr, png_infop info_ptr)
-+{
-+ png_debug(1, "in png_get_next_frame_y_offset()");
-+
-+ if (png_ptr != NULL && info_ptr != NULL)
-+ return (info_ptr->next_frame_y_offset);
-+ return (0);
-+}
-+
-+png_uint_16 PNGAPI
-+png_get_next_frame_delay_num(png_structp png_ptr, png_infop info_ptr)
-+{
-+ png_debug(1, "in png_get_next_frame_delay_num()");
-+
-+ if (png_ptr != NULL && info_ptr != NULL)
-+ return (info_ptr->next_frame_delay_num);
-+ return (0);
-+}
-+
-+png_uint_16 PNGAPI
-+png_get_next_frame_delay_den(png_structp png_ptr, png_infop info_ptr)
-+{
-+ png_debug(1, "in png_get_next_frame_delay_den()");
-+
-+ if (png_ptr != NULL && info_ptr != NULL)
-+ return (info_ptr->next_frame_delay_den);
-+ return (0);
-+}
-+
-+png_byte PNGAPI
-+png_get_next_frame_dispose_op(png_structp png_ptr, png_infop info_ptr)
-+{
-+ png_debug(1, "in png_get_next_frame_dispose_op()");
-+
-+ if (png_ptr != NULL && info_ptr != NULL)
-+ return (info_ptr->next_frame_dispose_op);
-+ return (0);
-+}
-+
-+png_byte PNGAPI
-+png_get_next_frame_blend_op(png_structp png_ptr, png_infop info_ptr)
-+{
-+ png_debug(1, "in png_get_next_frame_blend_op()");
-+
-+ if (png_ptr != NULL && info_ptr != NULL)
-+ return (info_ptr->next_frame_blend_op);
-+ return (0);
-+}
-+
-+png_byte PNGAPI
-+png_get_first_frame_is_hidden(png_structp png_ptr, png_infop info_ptr)
-+{
-+ png_debug(1, "in png_first_frame_is_hidden()");
-+
-+ if (png_ptr != NULL)
-+ return (png_byte)(png_ptr->apng_flags & PNG_FIRST_FRAME_HIDDEN);
-+
-+ PNG_UNUSED(info_ptr)
-+
-+ return 0;
-+}
-+#endif /* PNG_APNG_SUPPORTED */
- #endif /* READ || WRITE */
-diff -Naru libpng-1.6.37.org/pnginfo.h libpng-1.6.37/pnginfo.h
---- libpng-1.6.37.org/pnginfo.h 2019-04-19 07:21:37.399024787 +0900
-+++ libpng-1.6.37/pnginfo.h 2019-04-19 07:22:37.850245901 +0900
-@@ -263,5 +263,18 @@
- png_bytepp row_pointers; /* the image bits */
- #endif
-
-+#ifdef PNG_APNG_SUPPORTED
-+ png_uint_32 num_frames; /* including default image */
-+ png_uint_32 num_plays;
-+ png_uint_32 next_frame_width;
-+ png_uint_32 next_frame_height;
-+ png_uint_32 next_frame_x_offset;
-+ png_uint_32 next_frame_y_offset;
-+ png_uint_16 next_frame_delay_num;
-+ png_uint_16 next_frame_delay_den;
-+ png_byte next_frame_dispose_op;
-+ png_byte next_frame_blend_op;
-+#endif
-+
- };
- #endif /* PNGINFO_H */
-diff -Naru libpng-1.6.37.org/pngpread.c libpng-1.6.37/pngpread.c
---- libpng-1.6.37.org/pngpread.c 2019-04-19 07:21:37.399024787 +0900
-+++ libpng-1.6.37/pngpread.c 2019-04-19 07:22:37.850245901 +0900
-@@ -195,6 +195,106 @@
-
- chunk_name = png_ptr->chunk_name;
-
-+#ifdef PNG_READ_APNG_SUPPORTED
-+ if (png_ptr->num_frames_read > 0 &&
-+ png_ptr->num_frames_read < info_ptr->num_frames)
-+ {
-+ if (chunk_name == png_IDAT)
-+ {
-+ /* Discard trailing IDATs for the first frame */
-+ if (png_ptr->mode & PNG_HAVE_fcTL || png_ptr->num_frames_read > 1)
-+ png_error(png_ptr, "out of place IDAT");
-+
-+ if (png_ptr->push_length + 4 > png_ptr->buffer_size)
-+ {
-+ png_push_save_buffer(png_ptr);
-+ return;
-+ }
-+
-+ png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER;
-+ return;
-+ }
-+ else if (chunk_name == png_fdAT)
-+ {
-+ if (png_ptr->buffer_size < 4)
-+ {
-+ png_push_save_buffer(png_ptr);
-+ return;
-+ }
-+
-+ png_ensure_sequence_number(png_ptr, 4);
-+
-+ if (!(png_ptr->mode & PNG_HAVE_fcTL))
-+ {
-+ /* Discard trailing fdATs for frames other than the first */
-+ if (png_ptr->num_frames_read < 2)
-+ png_error(png_ptr, "out of place fdAT");
-+
-+ if (png_ptr->push_length + 4 > png_ptr->buffer_size)
-+ {
-+ png_push_save_buffer(png_ptr);
-+ return;
-+ }
-+
-+ png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER;
-+ return;
-+ }
-+
-+ else
-+ {
-+ /* frame data follows */
-+ png_ptr->idat_size = png_ptr->push_length - 4;
-+ png_ptr->mode |= PNG_HAVE_IDAT;
-+ png_ptr->process_mode = PNG_READ_IDAT_MODE;
-+
-+ return;
-+ }
-+ }
-+
-+ else if (chunk_name == png_fcTL)
-+ {
-+ if (png_ptr->push_length + 4 > png_ptr->buffer_size)
-+ {
-+ png_push_save_buffer(png_ptr);
-+ return;
-+ }
-+
-+ png_read_reset(png_ptr);
-+ png_ptr->mode &= ~PNG_HAVE_fcTL;
-+
-+ png_handle_fcTL(png_ptr, info_ptr, png_ptr->push_length);
-+
-+ if (!(png_ptr->mode & PNG_HAVE_fcTL))
-+ png_error(png_ptr, "missing required fcTL chunk");
-+
-+ png_read_reinit(png_ptr, info_ptr);
-+ png_progressive_read_reset(png_ptr);
-+
-+ if (png_ptr->frame_info_fn != NULL)
-+ (*(png_ptr->frame_info_fn))(png_ptr, png_ptr->num_frames_read);
-+
-+ png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER;
-+
-+ return;
-+ }
-+
-+ else
-+ {
-+ if (png_ptr->push_length + 4 > png_ptr->buffer_size)
-+ {
-+ png_push_save_buffer(png_ptr);
-+ return;
-+ }
-+ png_warning(png_ptr, "Skipped (ignored) a chunk "
-+ "between APNG chunks");
-+ png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER;
-+ return;
-+ }
-+
-+ return;
-+ }
-+#endif /* PNG_READ_APNG_SUPPORTED */
-+
- if (chunk_name == png_IDAT)
- {
- if ((png_ptr->mode & PNG_AFTER_IDAT) != 0)
-@@ -261,6 +361,9 @@
-
- else if (chunk_name == png_IDAT)
- {
-+#ifdef PNG_READ_APNG_SUPPORTED
-+ png_have_info(png_ptr, info_ptr);
-+#endif
- png_ptr->idat_size = png_ptr->push_length;
- png_ptr->process_mode = PNG_READ_IDAT_MODE;
- png_push_have_info(png_ptr, info_ptr);
-@@ -406,6 +509,30 @@
- png_handle_iTXt(png_ptr, info_ptr, png_ptr->push_length);
- }
- #endif
-+#ifdef PNG_READ_APNG_SUPPORTED
-+ else if (chunk_name == png_acTL)
-+ {
-+ if (png_ptr->push_length + 4 > png_ptr->buffer_size)
-+ {
-+ png_push_save_buffer(png_ptr);
-+ return;
-+ }
-+
-+ png_handle_acTL(png_ptr, info_ptr, png_ptr->push_length);
-+ }
-+
-+ else if (chunk_name == png_fcTL)
-+ {
-+ if (png_ptr->push_length + 4 > png_ptr->buffer_size)
-+ {
-+ png_push_save_buffer(png_ptr);
-+ return;
-+ }
-+
-+ png_handle_fcTL(png_ptr, info_ptr, png_ptr->push_length);
-+ }
-+
-+#endif /* PNG_READ_APNG_SUPPORTED */
-
- else
- {
-@@ -539,7 +666,11 @@
- png_byte chunk_tag[4];
-
- /* TODO: this code can be commoned up with the same code in push_read */
-+#ifdef PNG_READ_APNG_SUPPORTED
-+ PNG_PUSH_SAVE_BUFFER_IF_LT(12)
-+#else
- PNG_PUSH_SAVE_BUFFER_IF_LT(8)
-+#endif
- png_push_fill_buffer(png_ptr, chunk_length, 4);
- png_ptr->push_length = png_get_uint_31(png_ptr, chunk_length);
- png_reset_crc(png_ptr);
-@@ -547,17 +678,64 @@
- png_ptr->chunk_name = PNG_CHUNK_FROM_STRING(chunk_tag);
- png_ptr->mode |= PNG_HAVE_CHUNK_HEADER;
-
-+#ifdef PNG_READ_APNG_SUPPORTED
-+ if (png_ptr->chunk_name != png_fdAT && png_ptr->num_frames_read > 0)
-+ {
-+ if (png_ptr->flags & PNG_FLAG_ZSTREAM_ENDED)
-+ {
-+ png_ptr->process_mode = PNG_READ_CHUNK_MODE;
-+ if (png_ptr->frame_end_fn != NULL)
-+ (*(png_ptr->frame_end_fn))(png_ptr, png_ptr->num_frames_read);
-+ png_ptr->num_frames_read++;
-+ return;
-+ }
-+ else
-+ {
-+ if (png_ptr->chunk_name == png_IEND)
-+ png_error(png_ptr, "Not enough image data");
-+ if (png_ptr->push_length + 4 > png_ptr->buffer_size)
-+ {
-+ png_push_save_buffer(png_ptr);
-+ return;
-+ }
-+ png_warning(png_ptr, "Skipping (ignoring) a chunk between "
-+ "APNG chunks");
-+ png_crc_finish(png_ptr, png_ptr->push_length);
-+ png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER;
-+ return;
-+ }
-+ }
-+ else
-+#endif
-+#ifdef PNG_READ_APNG_SUPPORTED
-+ if (png_ptr->chunk_name != png_IDAT && png_ptr->num_frames_read == 0)
-+#else
- if (png_ptr->chunk_name != png_IDAT)
-+#endif
- {
- png_ptr->process_mode = PNG_READ_CHUNK_MODE;
-
- if ((png_ptr->flags & PNG_FLAG_ZSTREAM_ENDED) == 0)
- png_error(png_ptr, "Not enough compressed data");
-
-+#ifdef PNG_READ_APNG_SUPPORTED
-+ if (png_ptr->frame_end_fn != NULL)
-+ (*(png_ptr->frame_end_fn))(png_ptr, png_ptr->num_frames_read);
-+ png_ptr->num_frames_read++;
-+#endif
-+
- return;
- }
-
- png_ptr->idat_size = png_ptr->push_length;
-+
-+#ifdef PNG_READ_APNG_SUPPORTED
-+ if (png_ptr->num_frames_read > 0)
-+ {
-+ png_ensure_sequence_number(png_ptr, 4);
-+ png_ptr->idat_size -= 4;
-+ }
-+#endif
- }
-
- if (png_ptr->idat_size != 0 && png_ptr->save_buffer_size != 0)
-@@ -631,6 +809,15 @@
- if (!(buffer_length > 0) || buffer == NULL)
- png_error(png_ptr, "No IDAT data (internal error)");
-
-+#ifdef PNG_READ_APNG_SUPPORTED
-+ /* If the app is not APNG-aware, decode only the first frame */
-+ if (!(png_ptr->apng_flags & PNG_APNG_APP) && png_ptr->num_frames_read > 0)
-+ {
-+ png_ptr->flags |= PNG_FLAG_ZSTREAM_ENDED;
-+ return;
-+ }
-+#endif
-+
- /* This routine must process all the data it has been given
- * before returning, calling the row callback as required to
- * handle the uncompressed results.
-@@ -1085,6 +1272,18 @@
- png_set_read_fn(png_ptr, progressive_ptr, png_push_fill_buffer);
- }
-
-+#ifdef PNG_READ_APNG_SUPPORTED
-+void PNGAPI
-+png_set_progressive_frame_fn(png_structp png_ptr,
-+ png_progressive_frame_ptr frame_info_fn,
-+ png_progressive_frame_ptr frame_end_fn)
-+{
-+ png_ptr->frame_info_fn = frame_info_fn;
-+ png_ptr->frame_end_fn = frame_end_fn;
-+ png_ptr->apng_flags |= PNG_APNG_APP;
-+}
-+#endif
-+
- png_voidp PNGAPI
- png_get_progressive_ptr(png_const_structrp png_ptr)
- {
-diff -Naru libpng-1.6.37.org/pngpriv.h libpng-1.6.37/pngpriv.h
---- libpng-1.6.37.org/pngpriv.h 2019-04-19 07:21:37.399024787 +0900
-+++ libpng-1.6.37/pngpriv.h 2019-04-19 07:22:37.850245901 +0900
-@@ -637,6 +637,10 @@
- #define PNG_HAVE_CHUNK_AFTER_IDAT 0x2000U /* Have another chunk after IDAT */
- /* 0x4000U (unused) */
- #define PNG_IS_READ_STRUCT 0x8000U /* Else is a write struct */
-+#ifdef PNG_APNG_SUPPORTED
-+#define PNG_HAVE_acTL 0x10000U
-+#define PNG_HAVE_fcTL 0x20000U
-+#endif
-
- /* Flags for the transformations the PNG library does on the image data */
- #define PNG_BGR 0x0001U
-@@ -873,6 +877,16 @@
- #define png_tRNS PNG_U32(116, 82, 78, 83)
- #define png_zTXt PNG_U32(122, 84, 88, 116)
-
-+#ifdef PNG_APNG_SUPPORTED
-+#define png_acTL PNG_U32( 97, 99, 84, 76)
-+#define png_fcTL PNG_U32(102, 99, 84, 76)
-+#define png_fdAT PNG_U32(102, 100, 65, 84)
-+
-+/* For png_struct.apng_flags: */
-+#define PNG_FIRST_FRAME_HIDDEN 0x0001U
-+#define PNG_APNG_APP 0x0002U
-+#endif
-+
- /* The following will work on (signed char*) strings, whereas the get_uint_32
- * macro will fail on top-bit-set values because of the sign extension.
- */
-@@ -1644,6 +1658,47 @@
- */
- #endif
-
-+#ifdef PNG_APNG_SUPPORTED
-+PNG_INTERNAL_FUNCTION(void,png_ensure_fcTL_is_valid,(png_structp png_ptr,
-+ png_uint_32 width, png_uint_32 height,
-+ png_uint_32 x_offset, png_uint_32 y_offset,
-+ png_uint_16 delay_num, png_uint_16 delay_den,
-+ png_byte dispose_op, png_byte blend_op), PNG_EMPTY);
-+
-+#ifdef PNG_READ_APNG_SUPPORTED
-+PNG_INTERNAL_FUNCTION(void,png_handle_acTL,(png_structp png_ptr, png_infop info_ptr,
-+ png_uint_32 length),PNG_EMPTY);
-+PNG_INTERNAL_FUNCTION(void,png_handle_fcTL,(png_structp png_ptr, png_infop info_ptr,
-+ png_uint_32 length),PNG_EMPTY);
-+PNG_INTERNAL_FUNCTION(void,png_handle_fdAT,(png_structp png_ptr, png_infop info_ptr,
-+ png_uint_32 length),PNG_EMPTY);
-+PNG_INTERNAL_FUNCTION(void,png_have_info,(png_structp png_ptr, png_infop info_ptr),PNG_EMPTY);
-+PNG_INTERNAL_FUNCTION(void,png_ensure_sequence_number,(png_structp png_ptr,
-+ png_uint_32 length),PNG_EMPTY);
-+PNG_INTERNAL_FUNCTION(void,png_read_reset,(png_structp png_ptr),PNG_EMPTY);
-+PNG_INTERNAL_FUNCTION(void,png_read_reinit,(png_structp png_ptr,
-+ png_infop info_ptr),PNG_EMPTY);
-+#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
-+PNG_INTERNAL_FUNCTION(void,png_progressive_read_reset,(png_structp png_ptr),PNG_EMPTY);
-+#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */
-+#endif /* PNG_READ_APNG_SUPPORTED */
-+
-+#ifdef PNG_WRITE_APNG_SUPPORTED
-+PNG_INTERNAL_FUNCTION(void,png_write_acTL,(png_structp png_ptr,
-+ png_uint_32 num_frames, png_uint_32 num_plays),PNG_EMPTY);
-+PNG_INTERNAL_FUNCTION(void,png_write_fcTL,(png_structp png_ptr,
-+ png_uint_32 width, png_uint_32 height,
-+ png_uint_32 x_offset, png_uint_32 y_offset,
-+ png_uint_16 delay_num, png_uint_16 delay_den,
-+ png_byte dispose_op, png_byte blend_op),PNG_EMPTY);
-+PNG_INTERNAL_FUNCTION(void,png_write_fdAT,(png_structp png_ptr,
-+ png_const_bytep data, png_size_t length),PNG_EMPTY);
-+PNG_INTERNAL_FUNCTION(void,png_write_reset,(png_structp png_ptr),PNG_EMPTY);
-+PNG_INTERNAL_FUNCTION(void,png_write_reinit,(png_structp png_ptr,
-+ png_infop info_ptr, png_uint_32 width, png_uint_32 height),PNG_EMPTY);
-+#endif /* PNG_WRITE_APNG_SUPPORTED */
-+#endif /* PNG_APNG_SUPPORTED */
-+
- /* Added at libpng version 1.4.0 */
- #ifdef PNG_COLORSPACE_SUPPORTED
- /* These internal functions are for maintaining the colorspace structure within
-diff -Naru libpng-1.6.37.org/pngread.c libpng-1.6.37/pngread.c
---- libpng-1.6.37.org/pngread.c 2019-04-19 07:21:37.400024774 +0900
-+++ libpng-1.6.37/pngread.c 2019-04-19 07:22:37.851245887 +0900
-@@ -161,6 +161,9 @@
-
- else if (chunk_name == png_IDAT)
- {
-+#ifdef PNG_READ_APNG_SUPPORTED
-+ png_have_info(png_ptr, info_ptr);
-+#endif
- png_ptr->idat_size = length;
- break;
- }
-@@ -255,6 +258,17 @@
- png_handle_iTXt(png_ptr, info_ptr, length);
- #endif
-
-+#ifdef PNG_READ_APNG_SUPPORTED
-+ else if (chunk_name == png_acTL)
-+ png_handle_acTL(png_ptr, info_ptr, length);
-+
-+ else if (chunk_name == png_fcTL)
-+ png_handle_fcTL(png_ptr, info_ptr, length);
-+
-+ else if (chunk_name == png_fdAT)
-+ png_handle_fdAT(png_ptr, info_ptr, length);
-+#endif
-+
- else
- png_handle_unknown(png_ptr, info_ptr, length,
- PNG_HANDLE_CHUNK_AS_DEFAULT);
-@@ -262,6 +276,72 @@
- }
- #endif /* SEQUENTIAL_READ */
-
-+#ifdef PNG_READ_APNG_SUPPORTED
-+void PNGAPI
-+png_read_frame_head(png_structp png_ptr, png_infop info_ptr)
-+{
-+ png_byte have_chunk_after_DAT; /* after IDAT or after fdAT */
-+
-+ png_debug(0, "Reading frame head");
-+
-+ if (!(png_ptr->mode & PNG_HAVE_acTL))
-+ png_error(png_ptr, "attempt to png_read_frame_head() but "
-+ "no acTL present");
-+
-+ /* do nothing for the main IDAT */
-+ if (png_ptr->num_frames_read == 0)
-+ return;
-+
-+ png_read_reset(png_ptr);
-+ png_ptr->flags &= ~PNG_FLAG_ROW_INIT;
-+ png_ptr->mode &= ~PNG_HAVE_fcTL;
-+
-+ have_chunk_after_DAT = 0;
-+ for (;;)
-+ {
-+ png_uint_32 length = png_read_chunk_header(png_ptr);
-+
-+ if (png_ptr->chunk_name == png_IDAT)
-+ {
-+ /* discard trailing IDATs for the first frame */
-+ if (have_chunk_after_DAT || png_ptr->num_frames_read > 1)
-+ png_error(png_ptr, "png_read_frame_head(): out of place IDAT");
-+ png_crc_finish(png_ptr, length);
-+ }
-+
-+ else if (png_ptr->chunk_name == png_fcTL)
-+ {
-+ png_handle_fcTL(png_ptr, info_ptr, length);
-+ have_chunk_after_DAT = 1;
-+ }
-+
-+ else if (png_ptr->chunk_name == png_fdAT)
-+ {
-+ png_ensure_sequence_number(png_ptr, length);
-+
-+ /* discard trailing fdATs for frames other than the first */
-+ if (!have_chunk_after_DAT && png_ptr->num_frames_read > 1)
-+ png_crc_finish(png_ptr, length - 4);
-+ else if(png_ptr->mode & PNG_HAVE_fcTL)
-+ {
-+ png_ptr->idat_size = length - 4;
-+ png_ptr->mode |= PNG_HAVE_IDAT;
-+
-+ break;
-+ }
-+ else
-+ png_error(png_ptr, "png_read_frame_head(): out of place fdAT");
-+ }
-+ else
-+ {
-+ png_warning(png_ptr, "Skipped (ignored) a chunk "
-+ "between APNG chunks");
-+ png_crc_finish(png_ptr, length);
-+ }
-+ }
-+}
-+#endif /* PNG_READ_APNG_SUPPORTED */
-+
- /* Optional call to update the users info_ptr structure */
- void PNGAPI
- png_read_update_info(png_structrp png_ptr, png_inforp info_ptr)
-diff -Naru libpng-1.6.37.org/pngrutil.c libpng-1.6.37/pngrutil.c
---- libpng-1.6.37.org/pngrutil.c 2019-04-19 07:21:37.401024761 +0900
-+++ libpng-1.6.37/pngrutil.c 2019-04-19 07:22:37.853245862 +0900
-@@ -865,6 +865,11 @@
- filter_type = buf[11];
- interlace_type = buf[12];
-
-+#ifdef PNG_READ_APNG_SUPPORTED
-+ png_ptr->first_frame_width = width;
-+ png_ptr->first_frame_height = height;
-+#endif
-+
- /* Set internal variables */
- png_ptr->width = width;
- png_ptr->height = height;
-@@ -2857,6 +2862,179 @@
- }
- #endif
-
-+#ifdef PNG_READ_APNG_SUPPORTED
-+void /* PRIVATE */
-+png_handle_acTL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
-+{
-+ png_byte data[8];
-+ png_uint_32 num_frames;
-+ png_uint_32 num_plays;
-+ png_uint_32 didSet;
-+
-+ png_debug(1, "in png_handle_acTL");
-+
-+ if (!(png_ptr->mode & PNG_HAVE_IHDR))
-+ {
-+ png_error(png_ptr, "Missing IHDR before acTL");
-+ }
-+ else if (png_ptr->mode & PNG_HAVE_IDAT)
-+ {
-+ png_warning(png_ptr, "Invalid acTL after IDAT skipped");
-+ png_crc_finish(png_ptr, length);
-+ return;
-+ }
-+ else if (png_ptr->mode & PNG_HAVE_acTL)
-+ {
-+ png_warning(png_ptr, "Duplicate acTL skipped");
-+ png_crc_finish(png_ptr, length);
-+ return;
-+ }
-+ else if (length != 8)
-+ {
-+ png_warning(png_ptr, "acTL with invalid length skipped");
-+ png_crc_finish(png_ptr, length);
-+ return;
-+ }
-+
-+ png_crc_read(png_ptr, data, 8);
-+ png_crc_finish(png_ptr, 0);
-+
-+ num_frames = png_get_uint_31(png_ptr, data);
-+ num_plays = png_get_uint_31(png_ptr, data + 4);
-+
-+ /* the set function will do error checking on num_frames */
-+ didSet = png_set_acTL(png_ptr, info_ptr, num_frames, num_plays);
-+ if(didSet)
-+ png_ptr->mode |= PNG_HAVE_acTL;
-+}
-+
-+void /* PRIVATE */
-+png_handle_fcTL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
-+{
-+ png_byte data[22];
-+ png_uint_32 width;
-+ png_uint_32 height;
-+ png_uint_32 x_offset;
-+ png_uint_32 y_offset;
-+ png_uint_16 delay_num;
-+ png_uint_16 delay_den;
-+ png_byte dispose_op;
-+ png_byte blend_op;
-+
-+ png_debug(1, "in png_handle_fcTL");
-+
-+ png_ensure_sequence_number(png_ptr, length);
-+
-+ if (!(png_ptr->mode & PNG_HAVE_IHDR))
-+ {
-+ png_error(png_ptr, "Missing IHDR before fcTL");
-+ }
-+ else if (png_ptr->mode & PNG_HAVE_IDAT)
-+ {
-+ /* for any frames other then the first this message may be misleading,
-+ * but correct. PNG_HAVE_IDAT is unset before the frame head is read
-+ * i can't think of a better message */
-+ png_warning(png_ptr, "Invalid fcTL after IDAT skipped");
-+ png_crc_finish(png_ptr, length-4);
-+ return;
-+ }
-+ else if (png_ptr->mode & PNG_HAVE_fcTL)
-+ {
-+ png_warning(png_ptr, "Duplicate fcTL within one frame skipped");
-+ png_crc_finish(png_ptr, length-4);
-+ return;
-+ }
-+ else if (length != 26)
-+ {
-+ png_warning(png_ptr, "fcTL with invalid length skipped");
-+ png_crc_finish(png_ptr, length-4);
-+ return;
-+ }
-+
-+ png_crc_read(png_ptr, data, 22);
-+ png_crc_finish(png_ptr, 0);
-+
-+ width = png_get_uint_31(png_ptr, data);
-+ height = png_get_uint_31(png_ptr, data + 4);
-+ x_offset = png_get_uint_31(png_ptr, data + 8);
-+ y_offset = png_get_uint_31(png_ptr, data + 12);
-+ delay_num = png_get_uint_16(data + 16);
-+ delay_den = png_get_uint_16(data + 18);
-+ dispose_op = data[20];
-+ blend_op = data[21];
-+
-+ if (png_ptr->num_frames_read == 0 && (x_offset != 0 || y_offset != 0))
-+ {
-+ png_warning(png_ptr, "fcTL for the first frame must have zero offset");
-+ return;
-+ }
-+
-+ if (info_ptr != NULL)
-+ {
-+ if (png_ptr->num_frames_read == 0 &&
-+ (width != info_ptr->width || height != info_ptr->height))
-+ {
-+ png_warning(png_ptr, "size in first frame's fcTL must match "
-+ "the size in IHDR");
-+ return;
-+ }
-+
-+ /* The set function will do more error checking */
-+ png_set_next_frame_fcTL(png_ptr, info_ptr, width, height,
-+ x_offset, y_offset, delay_num, delay_den,
-+ dispose_op, blend_op);
-+
-+ png_read_reinit(png_ptr, info_ptr);
-+
-+ png_ptr->mode |= PNG_HAVE_fcTL;
-+ }
-+}
-+
-+void /* PRIVATE */
-+png_have_info(png_structp png_ptr, png_infop info_ptr)
-+{
-+ if((info_ptr->valid & PNG_INFO_acTL) && !(info_ptr->valid & PNG_INFO_fcTL))
-+ {
-+ png_ptr->apng_flags |= PNG_FIRST_FRAME_HIDDEN;
-+ info_ptr->num_frames++;
-+ }
-+}
-+
-+void /* PRIVATE */
-+png_handle_fdAT(png_structp png_ptr, png_infop info_ptr, png_uint_32 length)
-+{
-+ png_ensure_sequence_number(png_ptr, length);
-+
-+ /* This function is only called from png_read_end(), png_read_info(),
-+ * and png_push_read_chunk() which means that:
-+ * - the user doesn't want to read this frame
-+ * - or this is an out-of-place fdAT
-+ * in either case it is safe to ignore the chunk with a warning */
-+ png_warning(png_ptr, "ignoring fdAT chunk");
-+ png_crc_finish(png_ptr, length - 4);
-+ PNG_UNUSED(info_ptr)
-+}
-+
-+void /* PRIVATE */
-+png_ensure_sequence_number(png_structp png_ptr, png_uint_32 length)
-+{
-+ png_byte data[4];
-+ png_uint_32 sequence_number;
-+
-+ if (length < 4)
-+ png_error(png_ptr, "invalid fcTL or fdAT chunk found");
-+
-+ png_crc_read(png_ptr, data, 4);
-+ sequence_number = png_get_uint_31(png_ptr, data);
-+
-+ if (sequence_number != png_ptr->next_seq_num)
-+ png_error(png_ptr, "fcTL or fdAT chunk with out-of-order sequence "
-+ "number found");
-+
-+ png_ptr->next_seq_num++;
-+}
-+#endif /* PNG_READ_APNG_SUPPORTED */
-+
- #ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED
- /* Utility function for png_handle_unknown; set up png_ptr::unknown_chunk */
- static int
-@@ -4165,7 +4343,38 @@
- {
- uInt avail_in;
- png_bytep buffer;
-+#ifdef PNG_READ_APNG_SUPPORTED
-+ png_uint_32 bytes_to_skip = 0;
-+
-+ while (png_ptr->idat_size == 0 || bytes_to_skip != 0)
-+ {
-+ png_crc_finish(png_ptr, bytes_to_skip);
-+ bytes_to_skip = 0;
-
-+ png_ptr->idat_size = png_read_chunk_header(png_ptr);
-+ if (png_ptr->num_frames_read == 0)
-+ {
-+ if (png_ptr->chunk_name != png_IDAT)
-+ png_error(png_ptr, "Not enough image data");
-+ }
-+ else
-+ {
-+ if (png_ptr->chunk_name == png_IEND)
-+ png_error(png_ptr, "Not enough image data");
-+ if (png_ptr->chunk_name != png_fdAT)
-+ {
-+ png_warning(png_ptr, "Skipped (ignored) a chunk "
-+ "between APNG chunks");
-+ bytes_to_skip = png_ptr->idat_size;
-+ continue;
-+ }
-+
-+ png_ensure_sequence_number(png_ptr, png_ptr->idat_size);
-+
-+ png_ptr->idat_size -= 4;
-+ }
-+ }
-+#else
- while (png_ptr->idat_size == 0)
- {
- png_crc_finish(png_ptr, 0);
-@@ -4177,7 +4386,7 @@
- if (png_ptr->chunk_name != png_IDAT)
- png_error(png_ptr, "Not enough image data");
- }
--
-+#endif /* PNG_READ_APNG_SUPPORTED */
- avail_in = png_ptr->IDAT_read_size;
-
- if (avail_in > png_ptr->idat_size)
-@@ -4240,6 +4449,9 @@
-
- png_ptr->mode |= PNG_AFTER_IDAT;
- png_ptr->flags |= PNG_FLAG_ZSTREAM_ENDED;
-+#ifdef PNG_READ_APNG_SUPPORTED
-+ png_ptr->num_frames_read++;
-+#endif
-
- if (png_ptr->zstream.avail_in > 0 || png_ptr->idat_size > 0)
- png_chunk_benign_error(png_ptr, "Extra compressed data");
-@@ -4678,4 +4890,80 @@
-
- png_ptr->flags |= PNG_FLAG_ROW_INIT;
- }
-+
-+#ifdef PNG_READ_APNG_SUPPORTED
-+/* This function is to be called after the main IDAT set has been read and
-+ * before a new IDAT is read. It resets some parts of png_ptr
-+ * to make them usable by the read functions again */
-+void /* PRIVATE */
-+png_read_reset(png_structp png_ptr)
-+{
-+ png_ptr->mode &= ~PNG_HAVE_IDAT;
-+ png_ptr->mode &= ~PNG_AFTER_IDAT;
-+ png_ptr->row_number = 0;
-+ png_ptr->pass = 0;
-+}
-+
-+void /* PRIVATE */
-+png_read_reinit(png_structp png_ptr, png_infop info_ptr)
-+{
-+ png_ptr->width = info_ptr->next_frame_width;
-+ png_ptr->height = info_ptr->next_frame_height;
-+ png_ptr->rowbytes = PNG_ROWBYTES(png_ptr->pixel_depth,png_ptr->width);
-+ png_ptr->info_rowbytes = PNG_ROWBYTES(info_ptr->pixel_depth,
-+ png_ptr->width);
-+ if (png_ptr->prev_row)
-+ memset(png_ptr->prev_row, 0, png_ptr->rowbytes + 1);
-+}
-+
-+#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
-+/* same as png_read_reset() but for the progressive reader */
-+void /* PRIVATE */
-+png_progressive_read_reset(png_structp png_ptr)
-+{
-+#ifdef PNG_READ_INTERLACING_SUPPORTED
-+ /* Arrays to facilitate easy interlacing - use pass (0 - 6) as index */
-+
-+ /* Start of interlace block */
-+ const int png_pass_start[] = {0, 4, 0, 2, 0, 1, 0};
-+
-+ /* Offset to next interlace block */
-+ const int png_pass_inc[] = {8, 8, 4, 4, 2, 2, 1};
-+
-+ /* Start of interlace block in the y direction */
-+ const int png_pass_ystart[] = {0, 0, 4, 0, 2, 0, 1};
-+
-+ /* Offset to next interlace block in the y direction */
-+ const int png_pass_yinc[] = {8, 8, 8, 4, 4, 2, 2};
-+
-+ if (png_ptr->interlaced)
-+ {
-+ if (!(png_ptr->transformations & PNG_INTERLACE))
-+ png_ptr->num_rows = (png_ptr->height + png_pass_yinc[0] - 1 -
-+ png_pass_ystart[0]) / png_pass_yinc[0];
-+ else
-+ png_ptr->num_rows = png_ptr->height;
-+
-+ png_ptr->iwidth = (png_ptr->width +
-+ png_pass_inc[png_ptr->pass] - 1 -
-+ png_pass_start[png_ptr->pass]) /
-+ png_pass_inc[png_ptr->pass];
-+ }
-+ else
-+#endif /* PNG_READ_INTERLACING_SUPPORTED */
-+ {
-+ png_ptr->num_rows = png_ptr->height;
-+ png_ptr->iwidth = png_ptr->width;
-+ }
-+ png_ptr->flags &= ~PNG_FLAG_ZSTREAM_ENDED;
-+ if (inflateReset(&(png_ptr->zstream)) != Z_OK)
-+ png_error(png_ptr, "inflateReset failed");
-+ png_ptr->zstream.avail_in = 0;
-+ png_ptr->zstream.next_in = 0;
-+ png_ptr->zstream.next_out = png_ptr->row_buf;
-+ png_ptr->zstream.avail_out = (uInt)PNG_ROWBYTES(png_ptr->pixel_depth,
-+ png_ptr->iwidth) + 1;
-+}
-+#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */
-+#endif /* PNG_READ_APNG_SUPPORTED */
- #endif /* READ */
-diff -Naru libpng-1.6.37.org/pngset.c libpng-1.6.37/pngset.c
---- libpng-1.6.37.org/pngset.c 2019-04-19 07:21:37.401024761 +0900
-+++ libpng-1.6.37/pngset.c 2019-04-19 07:22:37.858245798 +0900
-@@ -288,6 +288,11 @@
- info_ptr->pixel_depth = (png_byte)(info_ptr->channels * info_ptr->bit_depth);
-
- info_ptr->rowbytes = PNG_ROWBYTES(info_ptr->pixel_depth, width);
-+
-+#ifdef PNG_APNG_SUPPORTED
-+ /* for non-animated png. this may be overwritten from an acTL chunk later */
-+ info_ptr->num_frames = 1;
-+#endif
- }
-
- #ifdef PNG_oFFs_SUPPORTED
-@@ -1158,6 +1163,147 @@
- }
- #endif /* sPLT */
-
-+#ifdef PNG_APNG_SUPPORTED
-+png_uint_32 PNGAPI
-+png_set_acTL(png_structp png_ptr, png_infop info_ptr,
-+ png_uint_32 num_frames, png_uint_32 num_plays)
-+{
-+ png_debug1(1, "in %s storage function", "acTL");
-+
-+ if (png_ptr == NULL || info_ptr == NULL)
-+ {
-+ png_warning(png_ptr,
-+ "Call to png_set_acTL() with NULL png_ptr "
-+ "or info_ptr ignored");
-+ return (0);
-+ }
-+ if (num_frames == 0)
-+ {
-+ png_warning(png_ptr,
-+ "Ignoring attempt to set acTL with num_frames zero");
-+ return (0);
-+ }
-+ if (num_frames > PNG_UINT_31_MAX)
-+ {
-+ png_warning(png_ptr,
-+ "Ignoring attempt to set acTL with num_frames > 2^31-1");
-+ return (0);
-+ }
-+ if (num_plays > PNG_UINT_31_MAX)
-+ {
-+ png_warning(png_ptr,
-+ "Ignoring attempt to set acTL with num_plays "
-+ "> 2^31-1");
-+ return (0);
-+ }
-+
-+ info_ptr->num_frames = num_frames;
-+ info_ptr->num_plays = num_plays;
-+
-+ info_ptr->valid |= PNG_INFO_acTL;
-+
-+ return (1);
-+}
-+
-+/* delay_num and delay_den can hold any 16-bit values including zero */
-+png_uint_32 PNGAPI
-+png_set_next_frame_fcTL(png_structp png_ptr, png_infop info_ptr,
-+ png_uint_32 width, png_uint_32 height,
-+ png_uint_32 x_offset, png_uint_32 y_offset,
-+ png_uint_16 delay_num, png_uint_16 delay_den,
-+ png_byte dispose_op, png_byte blend_op)
-+{
-+ png_debug1(1, "in %s storage function", "fcTL");
-+
-+ if (png_ptr == NULL || info_ptr == NULL)
-+ {
-+ png_warning(png_ptr,
-+ "Call to png_set_fcTL() with NULL png_ptr or info_ptr "
-+ "ignored");
-+ return (0);
-+ }
-+
-+ png_ensure_fcTL_is_valid(png_ptr, width, height, x_offset, y_offset,
-+ delay_num, delay_den, dispose_op, blend_op);
-+
-+ if (blend_op == PNG_BLEND_OP_OVER)
-+ {
-+ if (!(png_ptr->color_type & PNG_COLOR_MASK_ALPHA) &&
-+ !(png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)))
-+ {
-+ png_warning(png_ptr, "PNG_BLEND_OP_OVER is meaningless "
-+ "and wasteful for opaque images, ignored");
-+ blend_op = PNG_BLEND_OP_SOURCE;
-+ }
-+ }
-+
-+ info_ptr->next_frame_width = width;
-+ info_ptr->next_frame_height = height;
-+ info_ptr->next_frame_x_offset = x_offset;
-+ info_ptr->next_frame_y_offset = y_offset;
-+ info_ptr->next_frame_delay_num = delay_num;
-+ info_ptr->next_frame_delay_den = delay_den;
-+ info_ptr->next_frame_dispose_op = dispose_op;
-+ info_ptr->next_frame_blend_op = blend_op;
-+
-+ info_ptr->valid |= PNG_INFO_fcTL;
-+
-+ return (1);
-+}
-+
-+void /* PRIVATE */
-+png_ensure_fcTL_is_valid(png_structp png_ptr,
-+ png_uint_32 width, png_uint_32 height,
-+ png_uint_32 x_offset, png_uint_32 y_offset,
-+ png_uint_16 delay_num, png_uint_16 delay_den,
-+ png_byte dispose_op, png_byte blend_op)
-+{
-+ if (width == 0 || width > PNG_UINT_31_MAX)
-+ png_error(png_ptr, "invalid width in fcTL (> 2^31-1)");
-+ if (height == 0 || height > PNG_UINT_31_MAX)
-+ png_error(png_ptr, "invalid height in fcTL (> 2^31-1)");
-+ if (x_offset > PNG_UINT_31_MAX)
-+ png_error(png_ptr, "invalid x_offset in fcTL (> 2^31-1)");
-+ if (y_offset > PNG_UINT_31_MAX)
-+ png_error(png_ptr, "invalid y_offset in fcTL (> 2^31-1)");
-+ if (width + x_offset > png_ptr->first_frame_width ||
-+ height + y_offset > png_ptr->first_frame_height)
-+ png_error(png_ptr, "dimensions of a frame are greater than"
-+ "the ones in IHDR");
-+
-+ if (dispose_op != PNG_DISPOSE_OP_NONE &&
-+ dispose_op != PNG_DISPOSE_OP_BACKGROUND &&
-+ dispose_op != PNG_DISPOSE_OP_PREVIOUS)
-+ png_error(png_ptr, "invalid dispose_op in fcTL");
-+
-+ if (blend_op != PNG_BLEND_OP_SOURCE &&
-+ blend_op != PNG_BLEND_OP_OVER)
-+ png_error(png_ptr, "invalid blend_op in fcTL");
-+
-+ PNG_UNUSED(delay_num)
-+ PNG_UNUSED(delay_den)
-+}
-+
-+png_uint_32 PNGAPI
-+png_set_first_frame_is_hidden(png_structp png_ptr, png_infop info_ptr,
-+ png_byte is_hidden)
-+{
-+ png_debug(1, "in png_first_frame_is_hidden()");
-+
-+ if (png_ptr == NULL)
-+ return 0;
-+
-+ if (is_hidden)
-+ png_ptr->apng_flags |= PNG_FIRST_FRAME_HIDDEN;
-+ else
-+ png_ptr->apng_flags &= ~PNG_FIRST_FRAME_HIDDEN;
-+
-+ PNG_UNUSED(info_ptr)
-+
-+ return 1;
-+}
-+#endif /* PNG_APNG_SUPPORTED */
-+
- #ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED
- static png_byte
- check_location(png_const_structrp png_ptr, int location)
-diff -Naru libpng-1.6.37.org/pngstruct.h libpng-1.6.37/pngstruct.h
---- libpng-1.6.37.org/pngstruct.h 2019-04-19 07:21:37.401024761 +0900
-+++ libpng-1.6.37/pngstruct.h 2019-04-19 07:22:37.854245849 +0900
-@@ -409,6 +409,27 @@
- png_byte filter_type;
- #endif
-
-+#ifdef PNG_APNG_SUPPORTED
-+ png_uint_32 apng_flags;
-+ png_uint_32 next_seq_num; /* next fcTL/fdAT chunk sequence number */
-+ png_uint_32 first_frame_width;
-+ png_uint_32 first_frame_height;
-+
-+#ifdef PNG_READ_APNG_SUPPORTED
-+ png_uint_32 num_frames_read; /* incremented after all image data of */
-+ /* a frame is read */
-+#ifdef PNG_PROGRESSIVE_READ_SUPPORTED
-+ png_progressive_frame_ptr frame_info_fn; /* frame info read callback */
-+ png_progressive_frame_ptr frame_end_fn; /* frame data read callback */
-+#endif
-+#endif
-+
-+#ifdef PNG_WRITE_APNG_SUPPORTED
-+ png_uint_32 num_frames_to_write;
-+ png_uint_32 num_frames_written;
-+#endif
-+#endif /* PNG_APNG_SUPPORTED */
-+
- /* New members added in libpng-1.2.0 */
-
- /* New members added in libpng-1.0.2 but first enabled by default in 1.2.0 */
-diff -Naru libpng-1.6.37.org/pngtest.c libpng-1.6.37/pngtest.c
---- libpng-1.6.37.org/pngtest.c 2019-04-19 07:21:37.401024761 +0900
-+++ libpng-1.6.37/pngtest.c 2019-04-19 07:22:37.854245849 +0900
-@@ -875,6 +875,10 @@
- volatile int num_passes;
- int pass;
- int bit_depth, color_type;
-+#ifdef PNG_APNG_SUPPORTED
-+ png_uint_32 num_frames;
-+ png_uint_32 num_plays;
-+#endif
-
- row_buf = NULL;
- error_parameters.file_name = inname;
-@@ -1383,6 +1387,22 @@
- }
- }
- #endif
-+
-+#ifdef PNG_APNG_SUPPORTED
-+ if (png_get_valid(read_ptr, read_info_ptr, PNG_INFO_acTL))
-+ {
-+ if (png_get_acTL(read_ptr, read_info_ptr, &num_frames, &num_plays))
-+ {
-+ png_byte is_hidden;
-+ pngtest_debug2("Handling acTL chunks (frames %ld, plays %ld)",
-+ num_frames, num_plays);
-+ png_set_acTL(write_ptr, write_info_ptr, num_frames, num_plays);
-+ is_hidden = png_get_first_frame_is_hidden(read_ptr, read_info_ptr);
-+ png_set_first_frame_is_hidden(write_ptr, write_info_ptr, is_hidden);
-+ }
-+ }
-+#endif
-+
- #ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED
- {
- png_unknown_chunkp unknowns;
-@@ -1463,6 +1483,110 @@
- t_misc += (t_stop - t_start);
- t_start = t_stop;
- #endif
-+#ifdef PNG_APNG_SUPPORTED
-+ if (png_get_valid(read_ptr, read_info_ptr, PNG_INFO_acTL))
-+ {
-+ png_uint_32 frame;
-+ for (frame = 0; frame < num_frames; frame++)
-+ {
-+ png_uint_32 frame_width;
-+ png_uint_32 frame_height;
-+ png_uint_32 x_offset;
-+ png_uint_32 y_offset;
-+ png_uint_16 delay_num;
-+ png_uint_16 delay_den;
-+ png_byte dispose_op;
-+ png_byte blend_op;
-+ png_read_frame_head(read_ptr, read_info_ptr);
-+ if (png_get_valid(read_ptr, read_info_ptr, PNG_INFO_fcTL))
-+ {
-+ png_get_next_frame_fcTL(read_ptr, read_info_ptr,
-+ &frame_width, &frame_height,
-+ &x_offset, &y_offset,
-+ &delay_num, &delay_den,
-+ &dispose_op, &blend_op);
-+ }
-+ else
-+ {
-+ frame_width = width;
-+ frame_height = height;
-+ x_offset = 0;
-+ y_offset = 0;
-+ delay_num = 1;
-+ delay_den = 1;
-+ dispose_op = PNG_DISPOSE_OP_NONE;
-+ blend_op = PNG_BLEND_OP_SOURCE;
-+ }
-+#ifdef PNG_WRITE_APNG_SUPPORTED
-+ png_write_frame_head(write_ptr, write_info_ptr, (png_bytepp)&row_buf,
-+ frame_width, frame_height,
-+ x_offset, y_offset,
-+ delay_num, delay_den,
-+ dispose_op, blend_op);
-+#endif
-+ for (pass = 0; pass < num_passes; pass++)
-+ {
-+# ifdef calc_pass_height
-+ png_uint_32 pass_height;
-+
-+ if (num_passes == 7) /* interlaced */
-+ {
-+ if (PNG_PASS_COLS(frame_width, pass) > 0)
-+ pass_height = PNG_PASS_ROWS(frame_height, pass);
-+
-+ else
-+ pass_height = 0;
-+ }
-+
-+ else /* not interlaced */
-+ pass_height = frame_height;
-+# else
-+# define pass_height frame_height
-+# endif
-+
-+ pngtest_debug1("Writing row data for pass %d", pass);
-+ for (y = 0; y < pass_height; y++)
-+ {
-+#ifndef SINGLE_ROWBUF_ALLOC
-+ pngtest_debug2("Allocating row buffer (pass %d, y = %u)...", pass, y);
-+
-+ row_buf = (png_bytep)png_malloc(read_ptr,
-+ png_get_rowbytes(read_ptr, read_info_ptr));
-+
-+ pngtest_debug2("\t0x%08lx (%lu bytes)", (unsigned long)row_buf,
-+ (unsigned long)png_get_rowbytes(read_ptr, read_info_ptr));
-+
-+#endif /* !SINGLE_ROWBUF_ALLOC */
-+ png_read_rows(read_ptr, (png_bytepp)&row_buf, NULL, 1);
-+
-+#ifdef PNG_WRITE_SUPPORTED
-+#ifdef PNGTEST_TIMING
-+ t_stop = (float)clock();
-+ t_decode += (t_stop - t_start);
-+ t_start = t_stop;
-+#endif
-+ png_write_rows(write_ptr, (png_bytepp)&row_buf, 1);
-+#ifdef PNGTEST_TIMING
-+ t_stop = (float)clock();
-+ t_encode += (t_stop - t_start);
-+ t_start = t_stop;
-+#endif
-+#endif /* PNG_WRITE_SUPPORTED */
-+
-+#ifndef SINGLE_ROWBUF_ALLOC
-+ pngtest_debug2("Freeing row buffer (pass %d, y = %u)", pass, y);
-+ png_free(read_ptr, row_buf);
-+ row_buf = NULL;
-+#endif /* !SINGLE_ROWBUF_ALLOC */
-+ }
-+ }
-+#ifdef PNG_WRITE_APNG_SUPPORTED
-+ png_write_frame_tail(write_ptr, write_info_ptr);
-+#endif
-+ }
-+ }
-+ else
-+#endif
- for (pass = 0; pass < num_passes; pass++)
- {
- # ifdef calc_pass_height
-diff -Naru libpng-1.6.37.org/pngwrite.c libpng-1.6.37/pngwrite.c
---- libpng-1.6.37.org/pngwrite.c 2019-04-19 07:21:37.402024748 +0900
-+++ libpng-1.6.37/pngwrite.c 2019-04-19 07:22:37.855245836 +0900
-@@ -128,6 +128,10 @@
- * the application continues writing the PNG. So check the 'invalid'
- * flag here too.
- */
-+#ifdef PNG_WRITE_APNG_SUPPORTED
-+ if (info_ptr->valid & PNG_INFO_acTL)
-+ png_write_acTL(png_ptr, info_ptr->num_frames, info_ptr->num_plays);
-+#endif
- #ifdef PNG_GAMMA_SUPPORTED
- # ifdef PNG_WRITE_gAMA_SUPPORTED
- if ((info_ptr->colorspace.flags & PNG_COLORSPACE_INVALID) == 0 &&
-@@ -370,6 +374,11 @@
- png_benign_error(png_ptr, "Wrote palette index exceeding num_palette");
- #endif
-
-+#ifdef PNG_WRITE_APNG_SUPPORTED
-+ if (png_ptr->num_frames_written != png_ptr->num_frames_to_write)
-+ png_error(png_ptr, "Not enough frames written");
-+#endif
-+
- /* See if user wants us to write information chunks */
- if (info_ptr != NULL)
- {
-@@ -1461,6 +1470,43 @@
- }
- #endif
-
-+#ifdef PNG_WRITE_APNG_SUPPORTED
-+void PNGAPI
-+png_write_frame_head(png_structp png_ptr, png_infop info_ptr,
-+ png_bytepp row_pointers, png_uint_32 width, png_uint_32 height,
-+ png_uint_32 x_offset, png_uint_32 y_offset,
-+ png_uint_16 delay_num, png_uint_16 delay_den, png_byte dispose_op,
-+ png_byte blend_op)
-+{
-+ png_debug(1, "in png_write_frame_head");
-+
-+ /* there is a chance this has been set after png_write_info was called,
-+ * so it would be set but not written. is there a way to be sure? */
-+ if (!(info_ptr->valid & PNG_INFO_acTL))
-+ png_error(png_ptr, "png_write_frame_head(): acTL not set");
-+
-+ png_write_reset(png_ptr);
-+
-+ png_write_reinit(png_ptr, info_ptr, width, height);
-+
-+ if ( !(png_ptr->num_frames_written == 0 &&
-+ (png_ptr->apng_flags & PNG_FIRST_FRAME_HIDDEN) ) )
-+ png_write_fcTL(png_ptr, width, height, x_offset, y_offset,
-+ delay_num, delay_den, dispose_op, blend_op);
-+
-+ PNG_UNUSED(row_pointers)
-+}
-+
-+void PNGAPI
-+png_write_frame_tail(png_structp png_ptr, png_infop info_ptr)
-+{
-+ png_debug(1, "in png_write_frame_tail");
-+
-+ png_ptr->num_frames_written++;
-+
-+ PNG_UNUSED(info_ptr)
-+}
-+#endif /* PNG_WRITE_APNG_SUPPORTED */
-
- #ifdef PNG_SIMPLIFIED_WRITE_SUPPORTED
- /* Initialize the write structure - general purpose utility. */
-diff -Naru libpng-1.6.37.org/pngwutil.c libpng-1.6.37/pngwutil.c
---- libpng-1.6.37.org/pngwutil.c 2019-04-19 07:21:37.402024748 +0900
-+++ libpng-1.6.37/pngwutil.c 2019-04-19 07:22:37.867245682 +0900
-@@ -821,6 +821,11 @@
- /* Write the chunk */
- png_write_complete_chunk(png_ptr, png_IHDR, buf, 13);
-
-+#ifdef PNG_WRITE_APNG_SUPPORTED
-+ png_ptr->first_frame_width = width;
-+ png_ptr->first_frame_height = height;
-+#endif
-+
- if ((png_ptr->do_filter) == PNG_NO_FILTERS)
- {
- if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE ||
-@@ -1002,8 +1007,17 @@
- optimize_cmf(data, png_image_size(png_ptr));
- #endif
-
-- if (size > 0)
-- png_write_complete_chunk(png_ptr, png_IDAT, data, size);
-+ if (size > 0)
-+#ifdef PNG_WRITE_APNG_SUPPORTED
-+ {
-+ if (png_ptr->num_frames_written == 0)
-+#endif
-+ png_write_complete_chunk(png_ptr, png_IDAT, data, size);
-+#ifdef PNG_WRITE_APNG_SUPPORTED
-+ else
-+ png_write_fdAT(png_ptr, data, size);
-+ }
-+#endif /* PNG_WRITE_APNG_SUPPORTED */
- png_ptr->mode |= PNG_HAVE_IDAT;
-
- png_ptr->zstream.next_out = data;
-@@ -1050,7 +1064,17 @@
- #endif
-
- if (size > 0)
-+#ifdef PNG_WRITE_APNG_SUPPORTED
-+ {
-+ if (png_ptr->num_frames_written == 0)
-+#endif
- png_write_complete_chunk(png_ptr, png_IDAT, data, size);
-+#ifdef PNG_WRITE_APNG_SUPPORTED
-+ else
-+ png_write_fdAT(png_ptr, data, size);
-+ }
-+#endif /* PNG_WRITE_APNG_SUPPORTED */
-+
- png_ptr->zstream.avail_out = 0;
- png_ptr->zstream.next_out = NULL;
- png_ptr->mode |= PNG_HAVE_IDAT | PNG_AFTER_IDAT;
-@@ -1885,6 +1909,82 @@
- }
- #endif
-
-+#ifdef PNG_WRITE_APNG_SUPPORTED
-+void /* PRIVATE */
-+png_write_acTL(png_structp png_ptr,
-+ png_uint_32 num_frames, png_uint_32 num_plays)
-+{
-+ png_byte buf[8];
-+
-+ png_debug(1, "in png_write_acTL");
-+
-+ png_ptr->num_frames_to_write = num_frames;
-+
-+ if (png_ptr->apng_flags & PNG_FIRST_FRAME_HIDDEN)
-+ num_frames--;
-+
-+ png_save_uint_32(buf, num_frames);
-+ png_save_uint_32(buf + 4, num_plays);
-+
-+ png_write_complete_chunk(png_ptr, png_acTL, buf, (png_size_t)8);
-+}
-+
-+void /* PRIVATE */
-+png_write_fcTL(png_structp png_ptr, png_uint_32 width, png_uint_32 height,
-+ png_uint_32 x_offset, png_uint_32 y_offset,
-+ png_uint_16 delay_num, png_uint_16 delay_den, png_byte dispose_op,
-+ png_byte blend_op)
-+{
-+ png_byte buf[26];
-+
-+ png_debug(1, "in png_write_fcTL");
-+
-+ if (png_ptr->num_frames_written == 0 && (x_offset != 0 || y_offset != 0))
-+ png_error(png_ptr, "x and/or y offset for the first frame aren't 0");
-+ if (png_ptr->num_frames_written == 0 &&
-+ (width != png_ptr->first_frame_width ||
-+ height != png_ptr->first_frame_height))
-+ png_error(png_ptr, "width and/or height in the first frame's fcTL "
-+ "don't match the ones in IHDR");
-+
-+ /* more error checking */
-+ png_ensure_fcTL_is_valid(png_ptr, width, height, x_offset, y_offset,
-+ delay_num, delay_den, dispose_op, blend_op);
-+
-+ png_save_uint_32(buf, png_ptr->next_seq_num);
-+ png_save_uint_32(buf + 4, width);
-+ png_save_uint_32(buf + 8, height);
-+ png_save_uint_32(buf + 12, x_offset);
-+ png_save_uint_32(buf + 16, y_offset);
-+ png_save_uint_16(buf + 20, delay_num);
-+ png_save_uint_16(buf + 22, delay_den);
-+ buf[24] = dispose_op;
-+ buf[25] = blend_op;
-+
-+ png_write_complete_chunk(png_ptr, png_fcTL, buf, (png_size_t)26);
-+
-+ png_ptr->next_seq_num++;
-+}
-+
-+void /* PRIVATE */
-+png_write_fdAT(png_structp png_ptr,
-+ png_const_bytep data, png_size_t length)
-+{
-+ png_byte buf[4];
-+
-+ png_write_chunk_header(png_ptr, png_fdAT, (png_uint_32)(4 + length));
-+
-+ png_save_uint_32(buf, png_ptr->next_seq_num);
-+ png_write_chunk_data(png_ptr, buf, 4);
-+
-+ png_write_chunk_data(png_ptr, data, length);
-+
-+ png_write_chunk_end(png_ptr);
-+
-+ png_ptr->next_seq_num++;
-+}
-+#endif /* PNG_WRITE_APNG_SUPPORTED */
-+
- /* Initializes the row writing capability of libpng */
- void /* PRIVATE */
- png_write_start_row(png_structrp png_ptr)
-@@ -2778,4 +2878,39 @@
- }
- #endif /* WRITE_FLUSH */
- }
-+
-+#ifdef PNG_WRITE_APNG_SUPPORTED
-+void /* PRIVATE */
-+png_write_reset(png_structp png_ptr)
-+{
-+ png_ptr->row_number = 0;
-+ png_ptr->pass = 0;
-+ png_ptr->mode &= ~PNG_HAVE_IDAT;
-+}
-+
-+void /* PRIVATE */
-+png_write_reinit(png_structp png_ptr, png_infop info_ptr,
-+ png_uint_32 width, png_uint_32 height)
-+{
-+ if (png_ptr->num_frames_written == 0 &&
-+ (width != png_ptr->first_frame_width ||
-+ height != png_ptr->first_frame_height))
-+ png_error(png_ptr, "width and/or height in the first frame's fcTL "
-+ "don't match the ones in IHDR");
-+ if (width > png_ptr->first_frame_width ||
-+ height > png_ptr->first_frame_height)
-+ png_error(png_ptr, "width and/or height for a frame greater than"
-+ "the ones in IHDR");
-+
-+ png_set_IHDR(png_ptr, info_ptr, width, height,
-+ info_ptr->bit_depth, info_ptr->color_type,
-+ info_ptr->interlace_type, info_ptr->compression_type,
-+ info_ptr->filter_type);
-+
-+ png_ptr->width = width;
-+ png_ptr->height = height;
-+ png_ptr->rowbytes = PNG_ROWBYTES(png_ptr->pixel_depth, width);
-+ png_ptr->usr_width = png_ptr->width;
-+}
-+#endif /* PNG_WRITE_APNG_SUPPORTED */
- #endif /* WRITE */
-diff -Naru libpng-1.6.37.org/scripts/symbols.def libpng-1.6.37/scripts/symbols.def
---- libpng-1.6.37.org/scripts/symbols.def 2019-04-19 07:21:37.405024710 +0900
-+++ libpng-1.6.37/scripts/symbols.def 2019-04-19 07:22:37.856245823 +0900
-@@ -253,3 +253,23 @@
- png_set_eXIf @247
- png_get_eXIf_1 @248
- png_set_eXIf_1 @249
-+ png_get_acTL @250
-+ png_set_acTL @251
-+ png_get_num_frames @252
-+ png_get_num_plays @253
-+ png_get_next_frame_fcTL @254
-+ png_set_next_frame_fcTL @255
-+ png_get_next_frame_width @256
-+ png_get_next_frame_height @257
-+ png_get_next_frame_x_offset @258
-+ png_get_next_frame_y_offset @259
-+ png_get_next_frame_delay_num @260
-+ png_get_next_frame_delay_den @261
-+ png_get_next_frame_dispose_op @262
-+ png_get_next_frame_blend_op @263
-+ png_get_first_frame_is_hidden @264
-+ png_set_first_frame_is_hidden @265
-+ png_read_frame_head @266
-+ png_set_progressive_frame_fn @267
-+ png_write_frame_head @268
-+ png_write_frame_tail @269
diff --git a/extra/libpng/sources b/extra/libpng/sources
index 0ee02a69..a55b6c10 100644
--- a/extra/libpng/sources
+++ b/extra/libpng/sources
@@ -1,2 +1 @@
-https://github.com/glennrp/libpng/archive/v1.6.40.tar.gz
-patches/libpng-1.6.37-apng.patch
+https://github.com/glennrp/libpng/archive/v1.6.44.tar.gz
diff --git a/extra/libpng/version b/extra/libpng/version
index acb5c583..886ac461 100644
--- a/extra/libpng/version
+++ b/extra/libpng/version
@@ -1 +1 @@
-1.6.40 1
+1.6.44 1
diff --git a/extra/libpsl/checksums b/extra/libpsl/checksums
index 9cb9cd7a..396cec3a 100644
--- a/extra/libpsl/checksums
+++ b/extra/libpsl/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-c210247dc1d50b701de241778a01c41640179369e0a9b1e5392c4b0272366e78 libpsl-0.21.2.tar.gz
+75520a5e4ef205ad5fcb236075182c9e7aeb4f3122ebdb32854a14f49dc52676 libpsl-0.21.5.tar.gz
diff --git a/extra/libpsl/sources b/extra/libpsl/sources
index 5abfb948..53cb1955 100644
--- a/extra/libpsl/sources
+++ b/extra/libpsl/sources
@@ -1 +1 @@
-https://github.com/rockdaboot/libpsl/releases/download/0.21.2/libpsl-0.21.2.tar.gz
+https://github.com/rockdaboot/libpsl/releases/download/0.21.5/libpsl-0.21.5.tar.gz
diff --git a/extra/libpsl/version b/extra/libpsl/version
index aed2f7ce..c0d138bc 100644
--- a/extra/libpsl/version
+++ b/extra/libpsl/version
@@ -1 +1 @@
-0.21.2 2
+0.21.5 1
diff --git a/extra/libtirpc/checksums b/extra/libtirpc/checksums
index 8a5c6f49..01d51d6d 100644
--- a/extra/libtirpc/checksums
+++ b/extra/libtirpc/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-f0fc1f8bc7d40d6713519670df0aed6bfd928612e621d2d704d7057522f26f25 libtirpc-1.3.3.tar.bz2
+4dd37bb207a200ab90739658efd908099f329ce2244f2a02f2ef918a33cf31b0 libtirpc-1.3.5.tar.bz2
diff --git a/extra/libtirpc/sources b/extra/libtirpc/sources
index b210519f..7a96d0e0 100644
--- a/extra/libtirpc/sources
+++ b/extra/libtirpc/sources
@@ -1 +1 @@
-https://downloads.sourceforge.net/libtirpc/libtirpc-1.3.3.tar.bz2
+https://downloads.sourceforge.net/libtirpc/libtirpc-1.3.5.tar.bz2
diff --git a/extra/libtirpc/version b/extra/libtirpc/version
index bdd8f5bd..a06f6a21 100644
--- a/extra/libtirpc/version
+++ b/extra/libtirpc/version
@@ -1 +1 @@
-1.3.3 1
+1.3.5 1
diff --git a/extra/libuv/build b/extra/libuv/build
new file mode 100755
index 00000000..65a28cd5
--- /dev/null
+++ b/extra/libuv/build
@@ -0,0 +1,10 @@
+#!/bin/sh -e
+
+export DESTDIR="$1"
+
+cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=/usr/lib
+
+cmake --build build
+cmake --install build
diff --git a/extra/libuv/checksums b/extra/libuv/checksums
new file mode 100644
index 00000000..d0251ccf
--- /dev/null
+++ b/extra/libuv/checksums
@@ -0,0 +1,2 @@
+%BLAKE3
+5b1103c6f44df233f2de0c66d0a88f88b6a1cf18522eb1a3ab2b99984efd932e libuv-v1.49.0.tar.gz
diff --git a/extra/libuv/depends b/extra/libuv/depends
new file mode 100644
index 00000000..7d91ec22
--- /dev/null
+++ b/extra/libuv/depends
@@ -0,0 +1 @@
+cmake make
diff --git a/extra/libuv/meta b/extra/libuv/meta
new file mode 100644
index 00000000..762209e2
--- /dev/null
+++ b/extra/libuv/meta
@@ -0,0 +1,3 @@
+description: Multi-platform support library with a focus on asynchronous I/O
+license: MIT, BSD-2-Clause, ISC
+maintainer: Cem Keylan <cem@carbslinux.org>
diff --git a/extra/libuv/sources b/extra/libuv/sources
new file mode 100644
index 00000000..54d99f85
--- /dev/null
+++ b/extra/libuv/sources
@@ -0,0 +1 @@
+https://dist.libuv.org/dist/v1.49.0/libuv-v1.49.0.tar.gz
diff --git a/extra/libuv/version b/extra/libuv/version
new file mode 100644
index 00000000..4f719e4a
--- /dev/null
+++ b/extra/libuv/version
@@ -0,0 +1 @@
+1.49.0 1
diff --git a/extra/libva-utils/checksums b/extra/libva-utils/checksums
index 0f5de888..ae61806c 100644
--- a/extra/libva-utils/checksums
+++ b/extra/libva-utils/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-2a5282f741e34ba58cc2f5b87a9e89f6a47d6e04d615d56fef8fae4b2f94efab 2.20.0.tar.gz
+9e73b488b6444e0f206eab32213299a65089f85a93f915a9fd59921a6787e668 2.22.0.tar.gz
diff --git a/extra/libva-utils/sources b/extra/libva-utils/sources
index 56fc0af7..f6227961 100644
--- a/extra/libva-utils/sources
+++ b/extra/libva-utils/sources
@@ -1 +1 @@
-https://github.com/intel/libva-utils/archive/2.20.0.tar.gz
+https://github.com/intel/libva-utils/archive/2.22.0.tar.gz
diff --git a/extra/libva-utils/version b/extra/libva-utils/version
index 3e7ba1ce..c163c974 100644
--- a/extra/libva-utils/version
+++ b/extra/libva-utils/version
@@ -1 +1 @@
-2.20.0 1
+2.22.0 1
diff --git a/extra/libva/checksums b/extra/libva/checksums
index bdd6c237..94408426 100644
--- a/extra/libva/checksums
+++ b/extra/libva/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-4edb82d3c59ef6b134f1c4fd1ac7cab695dd9b226a393c538f8a3f2ffa2e8eb9 2.20.0.tar.gz
+9b62ba8e9b496aaf453beffd1a9e0d915da4f3d04943c44856ef4137a228e123 2.22.0.tar.gz
diff --git a/extra/libva/sources b/extra/libva/sources
index 01968072..c8a5e456 100644
--- a/extra/libva/sources
+++ b/extra/libva/sources
@@ -1 +1 @@
-https://github.com/intel/libva/archive/2.20.0.tar.gz
+https://github.com/intel/libva/archive/2.22.0.tar.gz
diff --git a/extra/libva/version b/extra/libva/version
index 3e7ba1ce..c163c974 100644
--- a/extra/libva/version
+++ b/extra/libva/version
@@ -1 +1 @@
-2.20.0 1
+2.22.0 1
diff --git a/extra/libvpx/checksums b/extra/libvpx/checksums
index 5248a762..82e367e7 100644
--- a/extra/libvpx/checksums
+++ b/extra/libvpx/checksums
@@ -1,3 +1,3 @@
%BLAKE3
-42c6b89180d90a44639ac35b9eb8a180bc8ad095861c6f2d47364ea7a92c6cfb v1.13.0.tar.gz
+b0ce781a9095db8fbe0e552664b4c14867ef607fa52ab73456a420e1269a9c43 v1.14.1.tar.gz
083edfe3cde754ce0eebd3545ac28c64c3f5bb6ff51ff623e00ed740f9bfe984 fix-busybox-diff.patch
diff --git a/extra/libvpx/depends b/extra/libvpx/depends
index f56f4f37..6be80953 100644
--- a/extra/libvpx/depends
+++ b/extra/libvpx/depends
@@ -1,2 +1,2 @@
nasm make
-perl make
+# perl make
diff --git a/extra/libvpx/sources b/extra/libvpx/sources
index db7ebda3..bd406f44 100644
--- a/extra/libvpx/sources
+++ b/extra/libvpx/sources
@@ -1,2 +1,2 @@
-https://github.com/webmproject/libvpx/archive/v1.13.0.tar.gz
+https://github.com/webmproject/libvpx/archive/v1.14.1.tar.gz
patches/fix-busybox-diff.patch
diff --git a/extra/libvpx/version b/extra/libvpx/version
index 72aaab74..045ad770 100644
--- a/extra/libvpx/version
+++ b/extra/libvpx/version
@@ -1 +1 @@
-1.13.0 1
+1.14.1 1
diff --git a/extra/libwebp/checksums b/extra/libwebp/checksums
index 54f7271b..4eba68ae 100644
--- a/extra/libwebp/checksums
+++ b/extra/libwebp/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-da08f0f73f67b9fb52cf8285b909400aa5b32afc6f3cd4c718e57cd31a16bce5 libwebp-1.3.2.tar.gz
+f1d43e193fb3a68c469388254ed1339d0dcb0dc277cc0b3dfe93f97277e795a0 libwebp-1.4.0.tar.gz
diff --git a/extra/libwebp/depends b/extra/libwebp/depends
index 901a7cd2..609ddef0 100644
--- a/extra/libwebp/depends
+++ b/extra/libwebp/depends
@@ -1,3 +1,3 @@
-pkgconf make
-libpng
libjpeg-turbo
+libpng
+pkgconf make
diff --git a/extra/libwebp/sources b/extra/libwebp/sources
index 5604f043..045c8f18 100644
--- a/extra/libwebp/sources
+++ b/extra/libwebp/sources
@@ -1 +1 @@
-http://downloads.webmproject.org/releases/webp/libwebp-1.3.2.tar.gz
+http://downloads.webmproject.org/releases/webp/libwebp-1.4.0.tar.gz
diff --git a/extra/libwebp/version b/extra/libwebp/version
index a8cebfe5..bf41768f 100644
--- a/extra/libwebp/version
+++ b/extra/libwebp/version
@@ -1 +1 @@
-1.3.2 1
+1.4.0 1
diff --git a/extra/libwpe/checksums b/extra/libwpe/checksums
index 4e95aaee..a1aa026a 100644
--- a/extra/libwpe/checksums
+++ b/extra/libwpe/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-8e4d10838799707aa5e74c405bcec9d0e78efa9f3faf1c882c6e3504a65d9b13 libwpe-1.14.1.tar.xz
+22e1668819c88b803c5de8c9a087358710dcc3d97e38eecce954812944042892 libwpe-1.16.0.tar.xz
diff --git a/extra/libwpe/sources b/extra/libwpe/sources
index 6dff0d58..7ebbf03c 100644
--- a/extra/libwpe/sources
+++ b/extra/libwpe/sources
@@ -1 +1 @@
-https://wpewebkit.org/releases/libwpe-1.14.1.tar.xz
+https://wpewebkit.org/releases/libwpe-1.16.0.tar.xz
diff --git a/extra/libwpe/version b/extra/libwpe/version
index 045ad770..df10ebf3 100644
--- a/extra/libwpe/version
+++ b/extra/libwpe/version
@@ -1 +1 @@
-1.14.1 1
+1.16.0 1
diff --git a/extra/libxcb/checksums b/extra/libxcb/checksums
index 0598e59c..e0dca611 100644
--- a/extra/libxcb/checksums
+++ b/extra/libxcb/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-597735a1e180e58a647fcc3758a3076c0922ff46ec2dbbdf4223d1d6b06b1a54 libxcb-1.16.tar.xz
+3dce3b8adc257177dfec9b6b6cf55eeac13921520dd6c372fd8f9d867600337b libxcb-1.17.0.tar.xz
diff --git a/extra/libxcb/sources b/extra/libxcb/sources
index 0f392e18..c76ee62f 100644
--- a/extra/libxcb/sources
+++ b/extra/libxcb/sources
@@ -1 +1 @@
-https://xorg.freedesktop.org/archive/individual/lib/libxcb-1.16.tar.xz
+https://xorg.freedesktop.org/archive/individual/lib/libxcb-1.17.0.tar.xz
diff --git a/extra/libxcb/version b/extra/libxcb/version
index d1d913ed..8aac6e6e 100644
--- a/extra/libxcb/version
+++ b/extra/libxcb/version
@@ -1 +1 @@
-1.16 1
+1.17.0 1
diff --git a/extra/libxkbcommon/checksums b/extra/libxkbcommon/checksums
deleted file mode 100644
index 57767a05..00000000
--- a/extra/libxkbcommon/checksums
+++ /dev/null
@@ -1,2 +0,0 @@
-%BLAKE3
-1420cafcc7d4f889cd42b3a611c92d4eb9bc71d2d70c94a7e0dd54be8f46df51 xkbcommon-1.5.0.tar.gz
diff --git a/extra/libxkbcommon/sources b/extra/libxkbcommon/sources
deleted file mode 100644
index 48883c99..00000000
--- a/extra/libxkbcommon/sources
+++ /dev/null
@@ -1 +0,0 @@
-https://github.com/xkbcommon/libxkbcommon/archive/xkbcommon-1.5.0.tar.gz
diff --git a/extra/libxkbcommon/version b/extra/libxkbcommon/version
deleted file mode 100644
index 104216de..00000000
--- a/extra/libxkbcommon/version
+++ /dev/null
@@ -1 +0,0 @@
-1.5.0 1
diff --git a/extra/libxkbfile/checksums b/extra/libxkbfile/checksums
index 73dd6363..6c063389 100644
--- a/extra/libxkbfile/checksums
+++ b/extra/libxkbfile/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-2e90959f5045017e489c04b9bba4e1992a3dd121bd16fcddc4a5a3f28bb8d6ee libxkbfile-1.1.2.tar.xz
+9566ee417df1127f21dd0e1fbcfcc14dacb366c07a1ec2de51f89af12535c06d libxkbfile-1.1.3.tar.xz
diff --git a/extra/libxkbfile/sources b/extra/libxkbfile/sources
index fc46d44b..67b6795d 100644
--- a/extra/libxkbfile/sources
+++ b/extra/libxkbfile/sources
@@ -1 +1 @@
-https://www.x.org/releases/individual/lib/libxkbfile-1.1.2.tar.xz
+https://www.x.org/releases/individual/lib/libxkbfile-1.1.3.tar.xz
diff --git a/extra/libxkbfile/version b/extra/libxkbfile/version
index 909c7076..035474a2 100644
--- a/extra/libxkbfile/version
+++ b/extra/libxkbfile/version
@@ -1 +1 @@
-1.1.2 1
+1.1.3 1
diff --git a/extra/libxml2/checksums b/extra/libxml2/checksums
index 270dcf27..5b4e0c67 100644
--- a/extra/libxml2/checksums
+++ b/extra/libxml2/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-326c3a05dcfe647ef4e1def8aa7f8d7d96b0a2f2f9f2ddac2b982fc1e485a926 libxml2-2.11.5.tar.xz
+0e75cf5930de4b9f04873b70d281039848ff822ed930bf1b7115b5d121ea5713 libxml2-2.13.4.tar.xz
diff --git a/extra/libxml2/sources b/extra/libxml2/sources
index b2bcef8a..0189dd64 100644
--- a/extra/libxml2/sources
+++ b/extra/libxml2/sources
@@ -1 +1 @@
-https://download.gnome.org/sources/libxml2/2.11/libxml2-2.11.5.tar.xz
+https://download.gnome.org/sources/libxml2/2.13/libxml2-2.13.4.tar.xz
diff --git a/extra/libxml2/version b/extra/libxml2/version
index 6acfd9c9..0d57e54e 100644
--- a/extra/libxml2/version
+++ b/extra/libxml2/version
@@ -1 +1 @@
-2.11.5 1
+2.13.4 1
diff --git a/extra/libxslt/checksums b/extra/libxslt/checksums
index 39e6627f..62db01fb 100644
--- a/extra/libxslt/checksums
+++ b/extra/libxslt/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-51a7dfbbbc90eb66d78659d66889f34cea7c1b31eb6246af916335e37e1e3787 libxslt-1.1.38.tar.xz
+d7994f65a2bcb56c17d5e61c013139098138598cecb780bf8d13ba44f8474a29 libxslt-1.1.42.tar.xz
diff --git a/extra/libxslt/sources b/extra/libxslt/sources
index bf33b699..3e663279 100644
--- a/extra/libxslt/sources
+++ b/extra/libxslt/sources
@@ -1 +1 @@
-https://download.gnome.org/sources/libxslt/1.1/libxslt-1.1.38.tar.xz
+https://download.gnome.org/sources/libxslt/1.1/libxslt-1.1.42.tar.xz
diff --git a/extra/libxslt/version b/extra/libxslt/version
index 98489b0e..4f372ac0 100644
--- a/extra/libxslt/version
+++ b/extra/libxslt/version
@@ -1 +1 @@
-1.1.38 1
+1.1.42 1
diff --git a/extra/links/build b/extra/links/build
index 94034772..6e2291c8 100755
--- a/extra/links/build
+++ b/extra/links/build
@@ -1,5 +1,7 @@
#!/bin/sh -e
+export LDFLAGS="$LDFLAGS -static"
+
./configure \
--prefix=/usr \
--mandir=/usr/share/man \
@@ -10,5 +12,5 @@
printf '#undef HAVE_LIBBSD\n' >> config.h
clsed 's/-lbsd//' Makefile
-make LDFLAGS="$LDFLAGS -static"
+make
make DESTDIR="$1" install
diff --git a/extra/links/checksums b/extra/links/checksums
index ae2e367e..cef76de2 100644
--- a/extra/links/checksums
+++ b/extra/links/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-058ce6e16ba887d6c973c8d0b4e3d8f4617e607dc5ced1b2e8bfe2e574dbea01 links-2.29.tar.bz2
+aa3d076f922ed58689de981566b1665709cc4e5efb1636c863fd0401727f75bb links-2.30.tar.bz2
diff --git a/extra/links/sources b/extra/links/sources
index 0f91618f..9b15c028 100644
--- a/extra/links/sources
+++ b/extra/links/sources
@@ -1 +1 @@
-http://links.twibright.com/download/links-2.29.tar.bz2
+http://links.twibright.com/download/links-2.30.tar.bz2
diff --git a/extra/links/version b/extra/links/version
index 1a1e803a..fa5f2f59 100644
--- a/extra/links/version
+++ b/extra/links/version
@@ -1 +1 @@
-2.29 1
+2.30 1
diff --git a/extra/lzip/checksums b/extra/lzip/checksums
index 314af11c..3b069208 100644
--- a/extra/lzip/checksums
+++ b/extra/lzip/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-0cea51764af8af6bbe9c548e5b262c73b22a09d0d9cc431044d84bfb20f9a834 lzip-1.23.tar.gz
+3b50e7f9779cbcd3e7c236bc33b6786a0f72bce4d39dc551720f05c20c889b9e lzip-1.24.1.tar.gz
diff --git a/extra/lzip/sources b/extra/lzip/sources
index f7326bac..3dd02626 100644
--- a/extra/lzip/sources
+++ b/extra/lzip/sources
@@ -1 +1 @@
-https://download.savannah.gnu.org/releases/lzip/lzip-1.23.tar.gz
+https://download.savannah.gnu.org/releases/lzip/lzip-1.24.1.tar.gz
diff --git a/extra/lzip/version b/extra/lzip/version
index 843b2ed1..801ac41e 100644
--- a/extra/lzip/version
+++ b/extra/lzip/version
@@ -1 +1 @@
-1.23 1
+1.24.1 1
diff --git a/extra/man-pages/checksums b/extra/man-pages/checksums
index 4c69b9a1..8939bb16 100644
--- a/extra/man-pages/checksums
+++ b/extra/man-pages/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-a968d30d8afddf939d64668bdae7583fdb34a82382efa8b3d13ac99f8ad4a7f2 man-pages-6.05.01.tar.gz
+8eaa901591c5c7947dfd06300655233fcf7d6f0aea2a303ed6e2b4b5d7a53f61 man-pages-6.9.1.tar.gz
diff --git a/extra/man-pages/sources b/extra/man-pages/sources
index ae120d6d..fe1e65c4 100644
--- a/extra/man-pages/sources
+++ b/extra/man-pages/sources
@@ -1 +1 @@
-https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/snapshot/man-pages-6.05.01.tar.gz
+https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/snapshot/man-pages-6.9.1.tar.gz
diff --git a/extra/man-pages/version b/extra/man-pages/version
index 3ce9e423..683bf447 100644
--- a/extra/man-pages/version
+++ b/extra/man-pages/version
@@ -1 +1 @@
-6.05.01 1
+6.9.1 1
diff --git a/extra/mercurial/checksums b/extra/mercurial/checksums
index e7d03bb3..111834b3 100644
--- a/extra/mercurial/checksums
+++ b/extra/mercurial/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-77a31ffe88a802698cf0293aac62aa847fd8f2634ca5d8992a107a924aca66d0 mercurial-6.5.2.tar.gz
+57d71937b9eac4491a57382a72825faf52412c71ba75bdbf2f6b9f166e8ad57c mercurial-6.8.1.tar.gz
diff --git a/extra/mercurial/sources b/extra/mercurial/sources
index ad6c42e2..5e2da6f0 100644
--- a/extra/mercurial/sources
+++ b/extra/mercurial/sources
@@ -1 +1 @@
-https://www.mercurial-scm.org/release/mercurial-6.5.2.tar.gz
+https://www.mercurial-scm.org/release/mercurial-6.8.1.tar.gz
diff --git a/extra/mercurial/version b/extra/mercurial/version
index b1b4291f..b0a3ed87 100644
--- a/extra/mercurial/version
+++ b/extra/mercurial/version
@@ -1 +1 @@
-6.5.2 1
+6.8.1 1
diff --git a/extra/mesa/checksums b/extra/mesa/checksums
index bd081f31..4f7471b8 100644
--- a/extra/mesa/checksums
+++ b/extra/mesa/checksums
@@ -1,4 +1,4 @@
%BLAKE3
-43007133a84620374a16903511d303bb82d3ce4936ba1e8df907bab104ac8767 mesa-23.1.7.tar.xz
+f2cc4568e62b58cbe399cf1c786c4c69d8fff198f3c532f912e89933889979a3 mesa-24.2.4.tar.xz
d9023ad9f38b0f0d95e0d8dba698b35bbcf70194910e3f1f86c89ca81bededee Mako-1.2.4.tar.gz
f8dd3db221098d462b08038180a5a9341f9df9e0bda97bdb072402ff865978af pythonpath
diff --git a/extra/mesa/depends b/extra/mesa/depends
index 18063ed0..320e4ec3 100644
--- a/extra/mesa/depends
+++ b/extra/mesa/depends
@@ -8,6 +8,7 @@ libXext
libXrandr
libXrender
libXxf86vm
+libclc
libdrm
libelf
libxcb
@@ -15,7 +16,8 @@ libxshmfence
llvm
meson make
python make
+spirv-llvm-translator make
wayland
wayland-protocols make
-xorgproto
+xorgproto make
zlib
diff --git a/extra/mesa/sources b/extra/mesa/sources
index e273a4f5..4d118308 100644
--- a/extra/mesa/sources
+++ b/extra/mesa/sources
@@ -1,3 +1,3 @@
-https://mesa.freedesktop.org/archive/mesa-23.1.7.tar.xz
+https://mesa.freedesktop.org/archive/mesa-24.2.4.tar.xz
https://files.pythonhosted.org/packages/source/M/Mako/Mako-1.2.4.tar.gz mako
files/pythonpath
diff --git a/extra/mesa/version b/extra/mesa/version
index fea2fdba..ec32baf5 100644
--- a/extra/mesa/version
+++ b/extra/mesa/version
@@ -1 +1 @@
-23.1.7 1
+24.2.4 1
diff --git a/extra/meson/checksums b/extra/meson/checksums
index 06bc3c30..4ef2901c 100644
--- a/extra/meson/checksums
+++ b/extra/meson/checksums
@@ -1,3 +1,3 @@
%BLAKE3
-3b051560e94b50b18bcc232b731a416cfd383591aa049c3717020beff863d306 1.2.1.tar.gz
+47bcfddd093e51c1e2e2d33f3e0b1445636ada9dfdd6c777814b34d2373633aa 1.5.2.tar.gz
935ac488caa2a40dc03e9d88ee2e7314c0e330533b6211c9f9cb34d0ba6c81d3 cl-meson
diff --git a/extra/meson/sources b/extra/meson/sources
index 54e2c54b..75eb2892 100644
--- a/extra/meson/sources
+++ b/extra/meson/sources
@@ -1,2 +1,2 @@
-https://github.com/mesonbuild/meson/archive/1.2.1.tar.gz
+https://github.com/mesonbuild/meson/archive/1.5.2.tar.gz
files/cl-meson
diff --git a/extra/meson/version b/extra/meson/version
index cd3d02bc..5b702ae2 100644
--- a/extra/meson/version
+++ b/extra/meson/version
@@ -1 +1 @@
-1.2.1 1
+1.5.2 1
diff --git a/extra/nano/checksums b/extra/nano/checksums
index 647b5269..a3a7217d 100644
--- a/extra/nano/checksums
+++ b/extra/nano/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-cf8869dac6abe0217dff6eeda02a49c205b1a8a19ad5ca4862cd6115ab03930b nano-7.2.tar.gz
+770bd6cc1e6c632c92429d8cb267b9bacbb95211e43a991f4498929c8beb1c3d nano-8.2.tar.gz
diff --git a/extra/nano/sources b/extra/nano/sources
index eef8b11f..b3511cd7 100644
--- a/extra/nano/sources
+++ b/extra/nano/sources
@@ -1 +1 @@
-https://www.nano-editor.org/dist/v7/nano-7.2.tar.gz
+https://www.nano-editor.org/dist/v8/nano-8.2.tar.gz
diff --git a/extra/nano/version b/extra/nano/version
index c8e787cd..2ca496f0 100644
--- a/extra/nano/version
+++ b/extra/nano/version
@@ -1 +1 @@
-7.2 1
+8.2 1
diff --git a/extra/ncurses/checksums b/extra/ncurses/checksums
index 2e03380e..c7d383e4 100644
--- a/extra/ncurses/checksums
+++ b/extra/ncurses/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-0d1c9fdf53c0ca4bd66ba707d49a079d2dd6f5a960cdec74a56e29952c4ffe73 ncurses-6.4.tar.gz
+ed80506d81b59b960497a758a2c50e65ed167dcf658c21a4bc6c66146b68be26 ncurses-6.5.tar.gz
diff --git a/extra/ncurses/sources b/extra/ncurses/sources
index 82bba02c..dbe8c57d 100644
--- a/extra/ncurses/sources
+++ b/extra/ncurses/sources
@@ -1 +1 @@
-https://invisible-mirror.net/archives/ncurses/ncurses-6.4.tar.gz
+https://invisible-mirror.net/archives/ncurses/ncurses-6.5.tar.gz
diff --git a/extra/ncurses/version b/extra/ncurses/version
index eaa92dc3..f488920e 100644
--- a/extra/ncurses/version
+++ b/extra/ncurses/version
@@ -1 +1 @@
-6.4 1
+6.5 1
diff --git a/extra/nettle/checksums b/extra/nettle/checksums
index 53b66638..a38f176c 100644
--- a/extra/nettle/checksums
+++ b/extra/nettle/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-e4bfbda32f4fdf5ed96c152efe3a3867193b690faa5378d02a2a6fd052ee3393 nettle-3.9.1.tar.gz
+c2b37a2c9500b6eea1b186ccd525c7c7f82abb2039bd0ff6ba1c0232329832d0 nettle-3.10.tar.gz
diff --git a/extra/nettle/sources b/extra/nettle/sources
index 2b9e4a56..f8c7264c 100644
--- a/extra/nettle/sources
+++ b/extra/nettle/sources
@@ -1 +1 @@
-https://ftp.gnu.org/gnu/nettle/nettle-3.9.1.tar.gz
+https://ftp.gnu.org/gnu/nettle/nettle-3.10.tar.gz
diff --git a/extra/nettle/version b/extra/nettle/version
index 0059660b..8380b266 100644
--- a/extra/nettle/version
+++ b/extra/nettle/version
@@ -1 +1 @@
-3.9.1 1
+3.10 1
diff --git a/extra/npth/build b/extra/npth/build
index ffd10172..1f783bf1 100755
--- a/extra/npth/build
+++ b/extra/npth/build
@@ -4,5 +4,7 @@
--prefix=/usr \
--enable-static
+clsed 's/defined(__USE_UNIX98) || defined(__USE_XOPEN2K)/1/' src/npth.h
+
make
make DESTDIR="$1" install
diff --git a/extra/npth/checksums b/extra/npth/checksums
index 22a525bd..b2fcaec4 100644
--- a/extra/npth/checksums
+++ b/extra/npth/checksums
@@ -1 +1,2 @@
-1393abd9adcf0762d34798dc34fdcf4d0d22a8410721e76f1e3afcd1daa4e2d1 npth-1.6.tar.bz2
+%BLAKE3
+ae5f6f1d733151d6f13a813486e4e7aa4ed6c41030075e893196b5dfa6de99b6 npth-1.7.tar.bz2
diff --git a/extra/npth/sources b/extra/npth/sources
index 1ed14146..fbed2034 100644
--- a/extra/npth/sources
+++ b/extra/npth/sources
@@ -1 +1 @@
-https://gnupg.org/ftp/gcrypt/npth/npth-1.6.tar.bz2
+https://gnupg.org/ftp/gcrypt/npth/npth-1.7.tar.bz2
diff --git a/extra/npth/version b/extra/npth/version
index d1ad7a00..46b73aef 100644
--- a/extra/npth/version
+++ b/extra/npth/version
@@ -1 +1 @@
-1.6 1
+1.7 1
diff --git a/extra/openjpeg2/checksums b/extra/openjpeg2/checksums
index c3598e92..a7af4c0b 100644
--- a/extra/openjpeg2/checksums
+++ b/extra/openjpeg2/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-2b5f72e2b7f45bfd070f3d006fdbcb0e408ee39081ea98045afca3980c4ff0ce v2.5.0.tar.gz
+92cf5c7c3745695dacacfa49de3ea77874b8991d2bc20663984d6591fb65b40b v2.5.2.tar.gz
diff --git a/extra/openjpeg2/sources b/extra/openjpeg2/sources
index 82f38146..2f2ad39c 100644
--- a/extra/openjpeg2/sources
+++ b/extra/openjpeg2/sources
@@ -1 +1 @@
-https://github.com/uclouvain/openjpeg/archive/v2.5.0.tar.gz
+https://github.com/uclouvain/openjpeg/archive/v2.5.2.tar.gz
diff --git a/extra/openjpeg2/version b/extra/openjpeg2/version
index f14fa827..e99804da 100644
--- a/extra/openjpeg2/version
+++ b/extra/openjpeg2/version
@@ -1 +1 @@
-2.5.0 2
+2.5.2 1
diff --git a/extra/p11-kit/checksums b/extra/p11-kit/checksums
index 34d475cc..b16d3650 100644
--- a/extra/p11-kit/checksums
+++ b/extra/p11-kit/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-c62fe134394c8571c8344a536fc7b872b7c2645d8c7d26bb5232285975038478 p11-kit-0.25.0.tar.xz
+0e961850bccfdd14d1a0b659109d244ad48e22b4d7c19d776bb538bb2af92b8b p11-kit-0.25.5.tar.xz
diff --git a/extra/p11-kit/sources b/extra/p11-kit/sources
index e084628f..6fc82692 100644
--- a/extra/p11-kit/sources
+++ b/extra/p11-kit/sources
@@ -1 +1 @@
-https://github.com/p11-glue/p11-kit/releases/download/0.25.0/p11-kit-0.25.0.tar.xz
+https://github.com/p11-glue/p11-kit/releases/download/0.25.5/p11-kit-0.25.5.tar.xz
diff --git a/extra/p11-kit/version b/extra/p11-kit/version
index 3a9b001d..e74e7ffe 100644
--- a/extra/p11-kit/version
+++ b/extra/p11-kit/version
@@ -1 +1 @@
-0.25.0 1
+0.25.5 1
diff --git a/extra/pango/checksums b/extra/pango/checksums
index dc42848e..667971b5 100644
--- a/extra/pango/checksums
+++ b/extra/pango/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-8591ee6605b5ac9741d6b56bfe56be1d7aafeefc594cf2f226d7250b3883ec33 pango-1.50.14.tar.xz
+1d025a3d857cbfcb1eb93244e1b9a6bd76b120c260096a4ec3554333e4fbef1a pango-1.54.0.tar.xz
diff --git a/extra/pango/sources b/extra/pango/sources
index a00ce1ff..8b41b00d 100644
--- a/extra/pango/sources
+++ b/extra/pango/sources
@@ -1 +1 @@
-https://download.gnome.org/sources/pango/1.50/pango-1.50.14.tar.xz
+https://download.gnome.org/sources/pango/1.54/pango-1.54.0.tar.xz
diff --git a/extra/pango/version b/extra/pango/version
index 0ca8b391..67971158 100644
--- a/extra/pango/version
+++ b/extra/pango/version
@@ -1 +1 @@
-1.50.14 1
+1.54.0 1
diff --git a/extra/perl/checksums b/extra/perl/checksums
index 543825d3..096a26d5 100644
--- a/extra/perl/checksums
+++ b/extra/perl/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-cbf89cafa5455f51c64183147655ee7a4bed9954b2a163e61a83b04082ae6836 v5.38.0.tar.gz
+f2bdae4dbcc64d6de988c56fbb149146c16acb59d4336cf322927cab7b8e2fa8 v5.38.2.tar.gz
diff --git a/extra/perl/sources b/extra/perl/sources
index cf425ddc..b4be51ae 100644
--- a/extra/perl/sources
+++ b/extra/perl/sources
@@ -1 +1 @@
-https://github.com/Perl/perl5/archive/v5.38.0.tar.gz
+https://github.com/Perl/perl5/archive/v5.38.2.tar.gz
diff --git a/extra/perl/version b/extra/perl/version
index 9be33df7..fcbc96c2 100644
--- a/extra/perl/version
+++ b/extra/perl/version
@@ -1 +1 @@
-5.38.0 1
+5.38.2 1
diff --git a/extra/pinentry/checksums b/extra/pinentry/checksums
index 93008d52..3e072ab5 100644
--- a/extra/pinentry/checksums
+++ b/extra/pinentry/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-a62b6e45cf712fb51ad78d36716e20581a269a4276871f1869f29fcf73bb16d6 pinentry-1.2.1.tar.bz2
+7b6f8a98364549ffc6559be6e32ba5bf757825ac5af8f32716d27fa6ffa9b836 pinentry-1.3.1.tar.bz2
diff --git a/extra/pinentry/depends b/extra/pinentry/depends
index 2e7edc80..7cc0f11e 100644
--- a/extra/pinentry/depends
+++ b/extra/pinentry/depends
@@ -1,3 +1,3 @@
-ncurses
-libgpg-error
libassuan
+libgpg-error
+ncurses
diff --git a/extra/pinentry/sources b/extra/pinentry/sources
index a582123e..f571942e 100644
--- a/extra/pinentry/sources
+++ b/extra/pinentry/sources
@@ -1 +1 @@
-https://gnupg.org/ftp/gcrypt/pinentry/pinentry-1.2.1.tar.bz2
+https://gnupg.org/ftp/gcrypt/pinentry/pinentry-1.3.1.tar.bz2
diff --git a/extra/pinentry/version b/extra/pinentry/version
index f0066384..957d07e2 100644
--- a/extra/pinentry/version
+++ b/extra/pinentry/version
@@ -1 +1 @@
-1.2.1 3
+1.3.1 1
diff --git a/extra/pixman/build b/extra/pixman/build
index cb0b1bff..21a489bb 100755
--- a/extra/pixman/build
+++ b/extra/pixman/build
@@ -1,8 +1,10 @@
#!/bin/sh -e
-./configure \
- --prefix=/usr \
- --disable-gtk
+export DESTDIR="$1"
-make
-make DESTDIR="$1" install
+cl-meson \
+ -Ddefault_library=both \
+ . output
+
+ninja -C output
+ninja -C output install
diff --git a/extra/pixman/checksums b/extra/pixman/checksums
index 054a1c9d..99d358a7 100644
--- a/extra/pixman/checksums
+++ b/extra/pixman/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-61a60ff8556e7ad5f4ea6dddc7659a99ce428a24fc4f65118cb043b0158b2444 pixman-0.42.2.tar.xz
+de50d2f9937106d47d95e915aa8ef54a0af34e0d6b804095452c755e43b0aa34 pixman-0.43.4.tar.xz
diff --git a/extra/pixman/depends b/extra/pixman/depends
new file mode 100644
index 00000000..36f6fe6c
--- /dev/null
+++ b/extra/pixman/depends
@@ -0,0 +1 @@
+meson make
diff --git a/extra/pixman/sources b/extra/pixman/sources
index 19850212..3cacd7c0 100644
--- a/extra/pixman/sources
+++ b/extra/pixman/sources
@@ -1 +1 @@
-https://www.x.org/releases/individual/lib/pixman-0.42.2.tar.xz
+https://www.x.org/releases/individual/lib/pixman-0.43.4.tar.xz
diff --git a/extra/pixman/version b/extra/pixman/version
index 44bf52c5..a44f9143 100644
--- a/extra/pixman/version
+++ b/extra/pixman/version
@@ -1 +1 @@
-0.42.2 1
+0.43.4 1
diff --git a/extra/python/version b/extra/python/version
index a8df7901..36c04f7c 100644
--- a/extra/python/version
+++ b/extra/python/version
@@ -1 +1 @@
-3.11.5 1
+3.11.5 2
diff --git a/extra/spirv-headers/build b/extra/spirv-headers/build
new file mode 100755
index 00000000..62f6c6ed
--- /dev/null
+++ b/extra/spirv-headers/build
@@ -0,0 +1,11 @@
+#!/bin/sh -e
+
+export DESTDIR="$1"
+
+cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DSPIRV_HEADERS_ENABLE_TESTS=OFF \
+ -DSPIRV_HEADERS_ENABLE_INSTALL=ON
+
+cmake --build build
+cmake --install build
diff --git a/extra/spirv-headers/checksums b/extra/spirv-headers/checksums
new file mode 100644
index 00000000..0e7d69fe
--- /dev/null
+++ b/extra/spirv-headers/checksums
@@ -0,0 +1,2 @@
+%BLAKE3
+e662e48bac8e1fc02f712e1c5629921ef4c1e6c3568d75a61ce5451970f614d3 vulkan-sdk-1.3.290.0.tar.gz
diff --git a/extra/spirv-headers/depends b/extra/spirv-headers/depends
new file mode 100644
index 00000000..7d91ec22
--- /dev/null
+++ b/extra/spirv-headers/depends
@@ -0,0 +1 @@
+cmake make
diff --git a/extra/spirv-headers/meta b/extra/spirv-headers/meta
new file mode 100644
index 00000000..6bdda0c1
--- /dev/null
+++ b/extra/spirv-headers/meta
@@ -0,0 +1,3 @@
+description: Machine-readable files for the SPIR-V Registry
+license: MIT
+maintainer: Cem Keylan <cem@carbslinux.org>
diff --git a/extra/spirv-headers/sources b/extra/spirv-headers/sources
new file mode 100644
index 00000000..64ee9015
--- /dev/null
+++ b/extra/spirv-headers/sources
@@ -0,0 +1 @@
+https://github.com/KhronosGroup/SPIRV-Headers/archive/vulkan-sdk-1.3.290.0.tar.gz
diff --git a/extra/spirv-headers/version b/extra/spirv-headers/version
new file mode 100644
index 00000000..857938c7
--- /dev/null
+++ b/extra/spirv-headers/version
@@ -0,0 +1 @@
+1.3.290.0 1
diff --git a/extra/spirv-llvm-translator/build b/extra/spirv-llvm-translator/build
new file mode 100755
index 00000000..43122323
--- /dev/null
+++ b/extra/spirv-llvm-translator/build
@@ -0,0 +1,11 @@
+#!/bin/sh -e
+
+export DESTDIR="$1"
+
+cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr/include/spirv \
+ -DLLVM_SPIRV_INCLUDE_TESTS=OFF
+
+cmake --build build
+cmake --install build
diff --git a/extra/spirv-llvm-translator/checksums b/extra/spirv-llvm-translator/checksums
new file mode 100644
index 00000000..e272a3b8
--- /dev/null
+++ b/extra/spirv-llvm-translator/checksums
@@ -0,0 +1,2 @@
+%BLAKE3
+e87a2de2d7bb94d1f538094507bf8dfc1ca23ac48e6894f9ba7f5252655d868e SPIRV-LLVM-Translator-19.1.0.tar.gz
diff --git a/extra/spirv-llvm-translator/depends b/extra/spirv-llvm-translator/depends
new file mode 100644
index 00000000..bf5fd1b4
--- /dev/null
+++ b/extra/spirv-llvm-translator/depends
@@ -0,0 +1,3 @@
+cmake make
+llvm
+spirv-tools
diff --git a/extra/spirv-llvm-translator/meta b/extra/spirv-llvm-translator/meta
new file mode 100644
index 00000000..5b15021e
--- /dev/null
+++ b/extra/spirv-llvm-translator/meta
@@ -0,0 +1,3 @@
+description: API and commands for processing SPIR-V modules
+license: NCSA
+maintainer: Cem Keylan <cem@carbslinux.org>
diff --git a/extra/spirv-llvm-translator/sources b/extra/spirv-llvm-translator/sources
new file mode 100644
index 00000000..a726779b
--- /dev/null
+++ b/extra/spirv-llvm-translator/sources
@@ -0,0 +1 @@
+https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/v19.1.0/SPIRV-LLVM-Translator-19.1.0.tar.gz
diff --git a/extra/spirv-llvm-translator/version b/extra/spirv-llvm-translator/version
new file mode 100644
index 00000000..119d7b4b
--- /dev/null
+++ b/extra/spirv-llvm-translator/version
@@ -0,0 +1 @@
+19.1.0 1
diff --git a/extra/spirv-tools/build b/extra/spirv-tools/build
new file mode 100755
index 00000000..49e7dd3d
--- /dev/null
+++ b/extra/spirv-tools/build
@@ -0,0 +1,10 @@
+#!/bin/sh -e
+
+export DESTDIR="$1"
+
+cmake -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DSPIRV-Headers_SOURCE_DIR=/usr
+
+cmake --build build
+cmake --install build
diff --git a/extra/spirv-tools/checksums b/extra/spirv-tools/checksums
new file mode 100644
index 00000000..d707d92f
--- /dev/null
+++ b/extra/spirv-tools/checksums
@@ -0,0 +1,2 @@
+%BLAKE3
+b200fffedab377150696c6d7962ba0a98c452155d1e83966570f1f62c3ae29b1 v2024.3.tar.gz
diff --git a/extra/spirv-tools/depends b/extra/spirv-tools/depends
new file mode 100644
index 00000000..3be6cd3a
--- /dev/null
+++ b/extra/spirv-tools/depends
@@ -0,0 +1,3 @@
+cmake make
+python make
+spirv-headers make
diff --git a/extra/spirv-tools/meta b/extra/spirv-tools/meta
new file mode 100644
index 00000000..9d1c4718
--- /dev/null
+++ b/extra/spirv-tools/meta
@@ -0,0 +1,3 @@
+description: API and commands for processing SPIR-V modules
+license: Apache-2.0
+maintainer: Cem Keylan <cem@carbslinux.org>
diff --git a/extra/spirv-tools/sources b/extra/spirv-tools/sources
new file mode 100644
index 00000000..32d0ac09
--- /dev/null
+++ b/extra/spirv-tools/sources
@@ -0,0 +1 @@
+https://github.com/KhronosGroup/SPIRV-Tools/archive/refs/tags/v2024.3.tar.gz
diff --git a/extra/spirv-tools/version b/extra/spirv-tools/version
new file mode 100644
index 00000000..bafc0d55
--- /dev/null
+++ b/extra/spirv-tools/version
@@ -0,0 +1 @@
+2024.3 1
diff --git a/extra/sqlite/checksums b/extra/sqlite/checksums
index 376c46dd..eda63c71 100644
--- a/extra/sqlite/checksums
+++ b/extra/sqlite/checksums
@@ -1,3 +1,3 @@
%BLAKE3
-4ff304fc46b1872f51005ec4483a3dc2ed5feecd137cbebf337361dd1231580b sqlite-autoconf-3430100.tar.gz
+023516a598e6109db5002f3a8f452d9cc5e496e200c40881d3bc70d8d7415448 sqlite-autoconf-3460100.tar.gz
6ce5a15004b4eae28797504784ae6934fd0e8d6424748069671290dbb9212dc1 VERSION_0_1_10.tar.gz
diff --git a/extra/sqlite/sources b/extra/sqlite/sources
index 4bfebeeb..fa723895 100644
--- a/extra/sqlite/sources
+++ b/extra/sqlite/sources
@@ -1,2 +1,2 @@
-https://sqlite.org/2023/sqlite-autoconf-3430100.tar.gz
+https://sqlite.org/2024/sqlite-autoconf-3460100.tar.gz
https://github.com/kristapsdz/sqlite2mdoc/archive/refs/tags/VERSION_0_1_10.tar.gz mdoc
diff --git a/extra/sqlite/version b/extra/sqlite/version
index 817f19ef..18e2e33a 100644
--- a/extra/sqlite/version
+++ b/extra/sqlite/version
@@ -1 +1 @@
-3.43.1 1
+3.46.1 1
diff --git a/extra/vulkan-loader/build b/extra/vulkan-loader/build
new file mode 100755
index 00000000..0d9bbdaa
--- /dev/null
+++ b/extra/vulkan-loader/build
@@ -0,0 +1,12 @@
+#!/bin/sh -e
+
+export DESTDIR="$1"
+
+cmake -B build \
+ -Wno-dev \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_TESTS=OFF
+
+cmake --build build
+cmake --install build
diff --git a/extra/vulkan-loader/checksums b/extra/vulkan-loader/checksums
new file mode 100644
index 00000000..03eb9af0
--- /dev/null
+++ b/extra/vulkan-loader/checksums
@@ -0,0 +1,2 @@
+%BLAKE3
+7d051072c1e0e0fd7f15ea975de7458fb4a3a69cd75586aaf01d95437bd7e8d0 sdk-1.3.231.2.tar.gz
diff --git a/extra/vulkan-loader/depends b/extra/vulkan-loader/depends
new file mode 100644
index 00000000..b967b17e
--- /dev/null
+++ b/extra/vulkan-loader/depends
@@ -0,0 +1,6 @@
+Vulkan-Headers make
+cmake make
+libX11 make
+libxcb make
+pkgconf make
+python make
diff --git a/extra/vulkan-loader/meta b/extra/vulkan-loader/meta
new file mode 100644
index 00000000..e548fd3b
--- /dev/null
+++ b/extra/vulkan-loader/meta
@@ -0,0 +1,3 @@
+description: Vulkan Installable Client Driver (ICD) loader
+license: Apache-2.0
+maintainer: Cem Keylan <cem@carbslinux.org>
diff --git a/extra/vulkan-loader/sources b/extra/vulkan-loader/sources
new file mode 100644
index 00000000..bc176642
--- /dev/null
+++ b/extra/vulkan-loader/sources
@@ -0,0 +1 @@
+https://github.com/KhronosGroup/Vulkan-Loader/archive/sdk-1.3.231.2.tar.gz
diff --git a/extra/vulkan-loader/version b/extra/vulkan-loader/version
new file mode 100644
index 00000000..26a41ca2
--- /dev/null
+++ b/extra/vulkan-loader/version
@@ -0,0 +1 @@
+1.3.231.2 1
diff --git a/extra/webkit2gtk/build b/extra/webkit2gtk/build
index c9612ab4..1838acde 100755
--- a/extra/webkit2gtk/build
+++ b/extra/webkit2gtk/build
@@ -46,8 +46,12 @@ cmake -B build \
-DUSE_LIBSECRET=OFF \
-DUSE_OPENJPEG="$(cpt l -C openjpeg2 ON OFF)" \
-DUSE_SOUP2=ON \
+ -DUSE_GTK4=OFF \
-DUSE_WOFF2=OFF \
+ -DUSE_JPEGXL=OFF \
+ -DUSE_LIBBACKTRACE=OFF \
-DUSE_WPE_RENDERER=OFF \
+ -DUSE_SYSTEM_SYSPROF_CAPTURE=OFF \
-Wno-dev
cmake --build build
diff --git a/extra/webkit2gtk/checksums b/extra/webkit2gtk/checksums
index 6fe3be2e..6e7f88ad 100644
--- a/extra/webkit2gtk/checksums
+++ b/extra/webkit2gtk/checksums
@@ -1,3 +1,3 @@
%BLAKE3
-16fee70c59383ad8838a8626b89444b03d38e8e936c092b690095a55d4cee8fb webkitgtk-2.40.3.tar.xz
+521ae872abe050f237a09293b84b1822228893979c929813728cbc58ac5580b4 webkitgtk-2.46.1.tar.xz
c55349ab244ae3705c566107426f61d9b7ffdbb9fd99261986f8d54867628bcc unifdef-2.12.tar.xz
diff --git a/extra/webkit2gtk/sources b/extra/webkit2gtk/sources
index 73831376..625dcc52 100644
--- a/extra/webkit2gtk/sources
+++ b/extra/webkit2gtk/sources
@@ -1,2 +1,2 @@
-https://webkitgtk.org/releases/webkitgtk-2.40.3.tar.xz
+https://webkitgtk.org/releases/webkitgtk-2.46.1.tar.xz
https://dotat.at/prog/unifdef/unifdef-2.12.tar.xz unifdef
diff --git a/extra/webkit2gtk/version b/extra/webkit2gtk/version
index fa7f38a4..64bde0be 100644
--- a/extra/webkit2gtk/version
+++ b/extra/webkit2gtk/version
@@ -1 +1 @@
-2.40.3 1
+2.46.1 1
diff --git a/extra/wpebackend-fdo/checksums b/extra/wpebackend-fdo/checksums
index d23f8fd0..1be9fb37 100644
--- a/extra/wpebackend-fdo/checksums
+++ b/extra/wpebackend-fdo/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-bb502a358061d591f429bdc215234dd4ff2b8dab2cceefd5d66586aaaeb2fa07 wpebackend-fdo-1.14.2.tar.xz
+f60e3dd5eb26e4d3cd3db2b32076cd62be8166e65e5a741e194b83b456623916 wpebackend-fdo-1.14.3.tar.xz
diff --git a/extra/wpebackend-fdo/sources b/extra/wpebackend-fdo/sources
index ec53cfae..957f86e2 100644
--- a/extra/wpebackend-fdo/sources
+++ b/extra/wpebackend-fdo/sources
@@ -1 +1 @@
-https://wpewebkit.org/releases/wpebackend-fdo-1.14.2.tar.xz
+https://wpewebkit.org/releases/wpebackend-fdo-1.14.3.tar.xz
diff --git a/extra/wpebackend-fdo/version b/extra/wpebackend-fdo/version
index d011be0f..6c4cca37 100644
--- a/extra/wpebackend-fdo/version
+++ b/extra/wpebackend-fdo/version
@@ -1 +1 @@
-1.14.2 1
+1.14.3 1
diff --git a/extra/xcb-proto/checksums b/extra/xcb-proto/checksums
index 1d987173..ee3fafeb 100644
--- a/extra/xcb-proto/checksums
+++ b/extra/xcb-proto/checksums
@@ -1,2 +1,2 @@
%BLAKE3
-2117ae3c1730586cb7bdaae6e8ba5e0ec3d5ee423d1387a59b3865f812953483 xcb-proto-1.16.0.tar.xz
+68187400fded667f60b4b020d0fc37fa489ae0de33169fe7b07fcbaf88e7a3f9 xcb-proto-1.17.0.tar.xz
diff --git a/extra/xcb-proto/sources b/extra/xcb-proto/sources
index 72441d46..18e6b452 100644
--- a/extra/xcb-proto/sources
+++ b/extra/xcb-proto/sources
@@ -1 +1 @@
-https://xorg.freedesktop.org/archive/individual/proto/xcb-proto-1.16.0.tar.xz
+https://xorg.freedesktop.org/archive/individual/proto/xcb-proto-1.17.0.tar.xz
diff --git a/extra/xcb-proto/version b/extra/xcb-proto/version
index df10ebf3..8aac6e6e 100644
--- a/extra/xcb-proto/version
+++ b/extra/xcb-proto/version
@@ -1 +1 @@
-1.16.0 1
+1.17.0 1