Download raw body.
UPDATE: libvpx 1.15.2
Here is an update to libvpx 1.15.2.
CVE-2025-5283
Tested on aarch64.
Index: Makefile
===================================================================
RCS file: /cvs/ports/multimedia/libvpx/Makefile,v
retrieving revision 1.61
diff -u -p -u -p -r1.61 Makefile
--- Makefile 24 Nov 2024 08:38:14 -0000 1.61
+++ Makefile 5 Jul 2025 07:53:49 -0000
@@ -2,11 +2,11 @@ COMMENT= Google VP8/VP9 video codec
GH_ACCOUNT= webmproject
GH_PROJECT= libvpx
-GH_TAGNAME= v1.15.0
+GH_TAGNAME= v1.15.2
EPOCH= 0
CATEGORIES= multimedia
-SHARED_LIBS= vpx 18.0
+SHARED_LIBS= vpx 19.0
HOMEPAGE= https://www.webmproject.org/
Index: distinfo
===================================================================
RCS file: /cvs/ports/multimedia/libvpx/distinfo,v
retrieving revision 1.26
diff -u -p -u -p -r1.26 distinfo
--- distinfo 24 Nov 2024 08:38:14 -0000 1.26
+++ distinfo 5 Jul 2025 07:53:49 -0000
@@ -1,2 +1,2 @@
-SHA256 (libvpx-1.15.0.tar.gz) = 6TXt7X2BYxpTi/rnA/0eKTqtHH/TQHugBEDJUQXSAR4=
-SIZE (libvpx-1.15.0.tar.gz) = 5629622
+SHA256 (libvpx-1.15.2.tar.gz) = JvzT24gEXe44DlgYYqbvEG9Jt0tjlu6Vwpk6JgtGNqo=
+SIZE (libvpx-1.15.2.tar.gz) = 5630368
Index: patches/patch-build_make_configure_sh
===================================================================
RCS file: /cvs/ports/multimedia/libvpx/patches/patch-build_make_configure_sh,v
retrieving revision 1.13
diff -u -p -u -p -r1.13 patch-build_make_configure_sh
--- patches/patch-build_make_configure_sh 24 Nov 2024 08:38:14 -0000 1.13
+++ patches/patch-build_make_configure_sh 5 Jul 2025 07:53:49 -0000
@@ -75,3 +75,12 @@ Index: build/make/configure.sh
enable_feature gcc
setup_gnu_toolchain
;;
+@@ -1591,8 +1591,6 @@ EOF
+ if enabled optimizations; then
+ if enabled rvct; then
+ enabled small && check_add_cflags -Ospace || check_add_cflags -Otime
+- else
+- enabled small && check_add_cflags -O2 || check_add_cflags -O3
+ fi
+ fi
+
Index: patches/patch-configure
===================================================================
RCS file: /cvs/ports/multimedia/libvpx/patches/patch-configure,v
retrieving revision 1.27
diff -u -p -u -p -r1.27 patch-configure
--- patches/patch-configure 24 Nov 2024 08:38:14 -0000 1.27
+++ patches/patch-configure 5 Jul 2025 07:53:49 -0000
@@ -1,7 +1,7 @@
Index: configure
--- configure.orig
+++ configure
-@@ -126,7 +126,9 @@ all_platforms="${all_platforms} loongarch32-linux-gcc"
+@@ -127,7 +127,9 @@ all_platforms="${all_platforms} loongarch32-linux-gcc"
all_platforms="${all_platforms} loongarch64-linux-gcc"
all_platforms="${all_platforms} mips32-linux-gcc"
all_platforms="${all_platforms} mips64-linux-gcc"
@@ -11,7 +11,7 @@ Index: configure
all_platforms="${all_platforms} sparc-solaris-gcc"
all_platforms="${all_platforms} x86-android-gcc"
all_platforms="${all_platforms} x86-darwin8-gcc"
-@@ -187,7 +189,7 @@ for t in ${all_targets}; do
+@@ -189,7 +191,7 @@ for t in ${all_targets}; do
[ -f "${source_path}/${t}.mk" ] && enable_feature ${t}
done
@@ -20,7 +20,7 @@ Index: configure
die "diff missing: Try installing diffutils via your package manager."
fi
-@@ -202,19 +204,6 @@ if [ "`cd \"${source_path}\" && pwd`" != "`pwd`" ]; th
+@@ -204,19 +206,6 @@ if [ "`cd \"${source_path}\" && pwd`" != "`pwd`" ]; th
fi
fi
@@ -40,7 +40,7 @@ Index: configure
# disable codecs when their source directory does not exist
[ -d "${source_path}/vp8" ] || disable_codec vp8
[ -d "${source_path}/vp9" ] || disable_codec vp9
-@@ -562,7 +551,7 @@ process_detect() {
+@@ -564,7 +553,7 @@ process_detect() {
# here rather than at option parse time because the target auto-detect
# magic happens after the command line has been parsed.
case "${tgt_os}" in
Index: patches/patch-vpx_ports_aarch32_cpudetect_c
===================================================================
RCS file: /cvs/ports/multimedia/libvpx/patches/patch-vpx_ports_aarch32_cpudetect_c,v
retrieving revision 1.3
diff -u -p -u -p -r1.3 patch-vpx_ports_aarch32_cpudetect_c
--- patches/patch-vpx_ports_aarch32_cpudetect_c 24 Nov 2024 08:38:14 -0000 1.3
+++ patches/patch-vpx_ports_aarch32_cpudetect_c 5 Jul 2025 07:53:49 -0000
@@ -1,4 +1,4 @@
-Allow ARM CPU runtime detection code to build on OpenBSD.
+Add ARM CPU feature detection support for OpenBSD.
Index: vpx_ports/aarch32_cpudetect.c
--- vpx_ports/aarch32_cpudetect.c.orig
Index: patches/patch-vpx_ports_ppc_cpudetect_c
===================================================================
RCS file: /cvs/ports/multimedia/libvpx/patches/patch-vpx_ports_ppc_cpudetect_c,v
retrieving revision 1.2
diff -u -p -u -p -r1.2 patch-vpx_ports_ppc_cpudetect_c
--- patches/patch-vpx_ports_ppc_cpudetect_c 11 Mar 2022 19:39:22 -0000 1.2
+++ patches/patch-vpx_ports_ppc_cpudetect_c 5 Jul 2025 07:53:49 -0000
@@ -1,31 +1,70 @@
-Allow PowerPC CPU runtime detection code to build on OpenBSD.
+Add PowerPC CPU feature detection support for OpenBSD.
Index: vpx_ports/ppc_cpudetect.c
--- vpx_ports/ppc_cpudetect.c.orig
+++ vpx_ports/ppc_cpudetect.c
-@@ -8,16 +8,19 @@
+@@ -8,11 +8,8 @@
* be found in the AUTHORS file in the root of the source tree.
*/
-+#if defined(__linux__)
- #include <fcntl.h>
+-#include <fcntl.h>
#include <unistd.h>
#include <stdint.h>
- #include <asm/cputable.h>
- #include <linux/auxvec.h>
-+#endif
+-#include <asm/cputable.h>
+-#include <linux/auxvec.h>
#include "./vpx_config.h"
#include "vpx_ports/ppc.h"
+@@ -35,6 +32,12 @@ static int cpu_env_mask(void) {
+ return env && *env ? (int)strtol(env, NULL, 0) : ~0;
+ }
- #if CONFIG_RUNTIME_CPU_DETECT
+#if defined(__linux__)
- static int cpu_env_flags(int *flags) {
- char *env;
- env = getenv("VPX_SIMD_CAPS");
-@@ -77,4 +80,5 @@ out_close:
- // If there is no RTCD the function pointers are not used and can not be
- // changed.
- int ppc_simd_caps(void) { return 0; }
++
++#include <fcntl.h>
++#include <asm/cputable.h>
++#include <linux/auxvec.h>
++
+ int ppc_simd_caps(void) {
+ int flags;
+ int mask;
+@@ -71,6 +74,39 @@ int ppc_simd_caps(void) {
+ }
+ out_close:
+ close(fd);
++ return flags & mask;
++}
++
++#elif defined(__OpenBSD__)
++
++#include <sys/auxv.h>
++
++// Define hwcap values ourselves: building with an old auxv header where these
++// hwcap values are not defined should not prevent features from being enabled.
++#define VPX_PPC_HWCAP_VSX (1 << 7)
++
++int ppc_simd_caps(void) {
++ int flags;
++ int mask;
++
++ // If VPX_SIMD_CAPS is set then allow only those capabilities.
++ if (!cpu_env_flags(&flags)) {
++ return flags;
++ }
++
++ mask = cpu_env_mask();
++
++#ifdef __OpenBSD__
++ unsigned long hwcap = 0;
++ elf_aux_info(AT_HWCAP, &hwcap, sizeof(hwcap));
++#else
++ unsigned long hwcap = getauxval(AT_HWCAP);
+#endif
- #endif // CONFIG_RUNTIME_CPU_DETECT
++#if HAVE_VSX
++ if (hwcap & VPX_PPC_HWCAP_VSX) {
++ flags |= HAS_VSX;
++ }
++#endif // HAVE_VSX
+ return flags & mask;
+ }
+ #else
UPDATE: libvpx 1.15.2