git: 148894db0376 - 2026Q3 - games/veloren-weekly: update to s20260721

From: Jan Beich <jbeich_at_FreeBSD.org>
Date: Fri, 24 Jul 2026 20:49:48 UTC
The branch 2026Q3 has been updated by jbeich:

URL: https://cgit.FreeBSD.org/ports/commit/?id=148894db037652037745eeaccfaa868cd26004a5

commit 148894db037652037745eeaccfaa868cd26004a5
Author:     Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2026-07-15 20:14:35 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2026-07-24 20:47:41 +0000

    games/veloren-weekly: update to s20260721
    
    Changes:        https://gitlab.com/veloren/veloren/-/compare/ad45ea3a91...345e457894
    (cherry picked from commit cb2143d2e354a282ea007391616c3faff9e0fc32)
---
 games/veloren-weekly/Makefile          |   4 +-
 games/veloren-weekly/Makefile.crates   |  25 +++----
 games/veloren-weekly/distinfo          |  56 ++++++--------
 games/veloren-weekly/files/patch-cpal  |  58 ++++++++++++++
 games/veloren-weekly/files/patch-gilrs | 133 +++++++++++++++++++++++++++------
 5 files changed, 202 insertions(+), 74 deletions(-)

diff --git a/games/veloren-weekly/Makefile b/games/veloren-weekly/Makefile
index 67f29597a9ec..7520927906bf 100644
--- a/games/veloren-weekly/Makefile
+++ b/games/veloren-weekly/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	veloren
-PORTVERSION=	s20260708
+PORTVERSION=	s20260721
 CATEGORIES=	games wayland
 PKGNAMESUFFIX=	-weekly
 
@@ -25,7 +25,7 @@ RUN_DEPENDS=	${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-pl
 USES=		cargo xorg
 USE_XORG=	xcb
 USE_GITLAB=	yes
-GL_TAGNAME=	v0.18.0-484-gad45ea3a91 # git describe --long --match='v[0-9]*' weekly
+GL_TAGNAME=	v0.18.0-537-g345e457894 # git describe --long --match='v[0-9]*' weekly
 GL_DATE=	$$(${AWK} '/TIMESTAMP/ { print $$3 }' ${DISTINFO_FILE})
 CARGO_ENV=	VELOREN_GIT_VERSION=${GL_TAGNAME:C,(.*)-.*-g(.{8}).*,\1/\2,}/${GL_DATE} \
 		VELOREN_USERDATA_STRATEGY=system \
diff --git a/games/veloren-weekly/Makefile.crates b/games/veloren-weekly/Makefile.crates
index 75875b660daf..ba84ed490b06 100644
--- a/games/veloren-weekly/Makefile.crates
+++ b/games/veloren-weekly/Makefile.crates
@@ -137,7 +137,7 @@ CARGO_CRATES=	ab_glyph-0.2.32 \
 		core-graphics-types-0.1.3 \
 		core-graphics-types-0.2.0 \
 		coreaudio-rs-0.14.2 \
-		cpal-0.17.3 \
+		cpal-0.18.1 \
 		cpp_demangle-0.4.5 \
 		cpufeatures-0.2.17 \
 		cpufeatures-0.3.0 \
@@ -390,7 +390,7 @@ CARGO_CRATES=	ab_glyph-0.2.32 \
 		khronos-egl-6.0.0 \
 		khronos_api-3.1.0 \
 		kiddo-5.3.2 \
-		kira-0.12.1 \
+		kira-0.12.2 \
 		kqueue-1.2.0 \
 		kqueue-sys-1.1.2 \
 		lab-0.11.0 \
@@ -422,7 +422,7 @@ CARGO_CRATES=	ab_glyph-0.2.32 \
 		lz-fear-0.2.0 \
 		mac_address-1.1.8 \
 		mach2-0.4.3 \
-		mach2-0.5.0 \
+		mach2-0.6.0 \
 		macro_rules_attribute-0.1.3 \
 		macro_rules_attribute-proc_macro-0.1.3 \
 		malloc_buf-0.0.6 \
@@ -634,6 +634,7 @@ CARGO_CRATES=	ab_glyph-0.2.32 \
 		regalloc2-0.15.1 \
 		regex-1.12.4 \
 		regex-automata-0.4.14 \
+		regex-lite-0.1.9 \
 		regex-syntax-0.8.11 \
 		renderdoc-sys-1.1.0 \
 		resolv-conf-0.7.6 \
@@ -740,12 +741,12 @@ CARGO_CRATES=	ab_glyph-0.2.32 \
 		sum_type-0.2.0 \
 		svg_fmt-0.4.5 \
 		symlink-0.1.0 \
-		symphonia-0.5.5 \
-		symphonia-codec-vorbis-0.5.5 \
-		symphonia-core-0.5.5 \
-		symphonia-format-ogg-0.5.5 \
-		symphonia-metadata-0.5.5 \
-		symphonia-utils-xiph-0.5.5 \
+		symphonia-0.6.0 \
+		symphonia-codec-vorbis-0.6.0 \
+		symphonia-common-0.6.0 \
+		symphonia-core-0.6.0 \
+		symphonia-format-ogg-0.6.0 \
+		symphonia-metadata-0.6.0 \
 		syn-0.15.44 \
 		syn-1.0.109 \
 		syn-2.0.117 \
@@ -936,15 +937,11 @@ CARGO_CRATES=	ab_glyph-0.2.32 \
 		windows-0.51.1 \
 		windows-0.58.0 \
 		windows-0.61.3 \
-		windows-0.62.2 \
 		windows-collections-0.2.0 \
-		windows-collections-0.3.2 \
 		windows-core-0.51.1 \
 		windows-core-0.58.0 \
 		windows-core-0.61.2 \
-		windows-core-0.62.2 \
 		windows-future-0.2.1 \
-		windows-future-0.3.2 \
 		windows-implement-0.58.0 \
 		windows-implement-0.60.2 \
 		windows-interface-0.58.0 \
@@ -952,7 +949,6 @@ CARGO_CRATES=	ab_glyph-0.2.32 \
 		windows-link-0.1.3 \
 		windows-link-0.2.1 \
 		windows-numerics-0.2.0 \
-		windows-numerics-0.3.1 \
 		windows-registry-0.6.1 \
 		windows-result-0.2.0 \
 		windows-result-0.3.4 \
@@ -971,7 +967,6 @@ CARGO_CRATES=	ab_glyph-0.2.32 \
 		windows-targets-0.52.6 \
 		windows-targets-0.53.5 \
 		windows-threading-0.1.0 \
-		windows-threading-0.2.1 \
 		windows_aarch64_gnullvm-0.42.2 \
 		windows_aarch64_gnullvm-0.48.5 \
 		windows_aarch64_gnullvm-0.52.6 \
diff --git a/games/veloren-weekly/distinfo b/games/veloren-weekly/distinfo
index e0ac3f6ca5be..11e679c03c98 100644
--- a/games/veloren-weekly/distinfo
+++ b/games/veloren-weekly/distinfo
@@ -1,4 +1,4 @@
-TIMESTAMP = 1783550070
+TIMESTAMP = 1784673137
 SHA256 (rust/crates/ab_glyph-0.2.32.crate) = 01c0457472c38ea5bd1c3b5ada5e368271cb550be7a4ca4a0b4634e9913f6cc2
 SIZE (rust/crates/ab_glyph-0.2.32.crate) = 20967
 SHA256 (rust/crates/ab_glyph_rasterizer-0.1.10.crate) = 366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618
@@ -277,8 +277,8 @@ SHA256 (rust/crates/core-graphics-types-0.2.0.crate) = 3d44a101f213f6c4cdc1853d4
 SIZE (rust/crates/core-graphics-types-0.2.0.crate) = 7098
 SHA256 (rust/crates/coreaudio-rs-0.14.2.crate) = 7d5d7dca3ebcf65a035582c9ad4385371a9d9ee6537474d2a278f4e1e475bb58
 SIZE (rust/crates/coreaudio-rs-0.14.2.crate) = 44962
-SHA256 (rust/crates/cpal-0.17.3.crate) = d8942da362c0f0d895d7cac616263f2f9424edc5687364dfd1d25ef7eba506d7
-SIZE (rust/crates/cpal-0.17.3.crate) = 153337
+SHA256 (rust/crates/cpal-0.18.1.crate) = 5f77b11176c37874be37e8d691c946e31b2b8c357abce9526f6a99eb469e1028
+SIZE (rust/crates/cpal-0.18.1.crate) = 222732
 SHA256 (rust/crates/cpp_demangle-0.4.5.crate) = f2bb79cb74d735044c972aae58ed0aaa9a837e85b01106a54c39e42e97f62253
 SIZE (rust/crates/cpp_demangle-0.4.5.crate) = 81574
 SHA256 (rust/crates/cpufeatures-0.2.17.crate) = 59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280
@@ -783,8 +783,8 @@ SHA256 (rust/crates/khronos_api-3.1.0.crate) = e2db585e1d738fc771bf08a151420d3ed
 SIZE (rust/crates/khronos_api-3.1.0.crate) = 599718
 SHA256 (rust/crates/kiddo-5.3.2.crate) = da26797630e4a7511fa95300ecb03250d8d91f7e44fe756d61febefbce1ea3be
 SIZE (rust/crates/kiddo-5.3.2.crate) = 157516
-SHA256 (rust/crates/kira-0.12.1.crate) = 065632c16b39f4c00bc5514de0698474d1b6c36120743a154c78ca27ffc1ffe1
-SIZE (rust/crates/kira-0.12.1.crate) = 100380
+SHA256 (rust/crates/kira-0.12.2.crate) = 40962061330cfa2fb59d040be05955247a91573a87353bfbe8a4c4be2c62e90a
+SIZE (rust/crates/kira-0.12.2.crate) = 101609
 SHA256 (rust/crates/kqueue-1.2.0.crate) = 273c0752728918e0ac4976f2b275b6fefb9ecd400585dec929419f3844cd87b5
 SIZE (rust/crates/kqueue-1.2.0.crate) = 28412
 SHA256 (rust/crates/kqueue-sys-1.1.2.crate) = 07293a4e297ac234359b510362495713f75ea345d5307140414f20c69ffeb087
@@ -847,8 +847,8 @@ SHA256 (rust/crates/mac_address-1.1.8.crate) = c0aeb26bf5e836cc1c341c8106051b573
 SIZE (rust/crates/mac_address-1.1.8.crate) = 12876
 SHA256 (rust/crates/mach2-0.4.3.crate) = d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44
 SIZE (rust/crates/mach2-0.4.3.crate) = 22180
-SHA256 (rust/crates/mach2-0.5.0.crate) = 6a1b95cd5421ec55b445b5ae102f5ea0e768de1f82bd3001e11f426c269c3aea
-SIZE (rust/crates/mach2-0.5.0.crate) = 24405
+SHA256 (rust/crates/mach2-0.6.0.crate) = dae608c151f68243f2b000364e1f7b186d9c29845f7d2d85bd31b9ad77ad552b
+SIZE (rust/crates/mach2-0.6.0.crate) = 33580
 SHA256 (rust/crates/macro_rules_attribute-0.1.3.crate) = cf0c9b980bf4f3a37fd7b1c066941dd1b1d0152ce6ee6e8fe8c49b9f6810d862
 SIZE (rust/crates/macro_rules_attribute-0.1.3.crate) = 15228
 SHA256 (rust/crates/macro_rules_attribute-proc_macro-0.1.3.crate) = 58093314a45e00c77d5c508f76e77c3396afbbc0d01506e7fae47b018bac2b1d
@@ -1271,6 +1271,8 @@ SHA256 (rust/crates/regex-1.12.4.crate) = f1292b7759ae1cb9ec195452d1390a074f0cd8
 SIZE (rust/crates/regex-1.12.4.crate) = 153468
 SHA256 (rust/crates/regex-automata-0.4.14.crate) = 6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f
 SIZE (rust/crates/regex-automata-0.4.14.crate) = 618012
+SHA256 (rust/crates/regex-lite-0.1.9.crate) = cab834c73d247e67f4fae452806d17d3c7501756d98c8808d7c9c7aa7d18f973
+SIZE (rust/crates/regex-lite-0.1.9.crate) = 96166
 SHA256 (rust/crates/regex-syntax-0.8.11.crate) = d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4
 SIZE (rust/crates/regex-syntax-0.8.11.crate) = 359055
 SHA256 (rust/crates/renderdoc-sys-1.1.0.crate) = 19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832
@@ -1483,18 +1485,18 @@ SHA256 (rust/crates/svg_fmt-0.4.5.crate) = 0193cc4331cfd2f3d2011ef287590868599a2
 SIZE (rust/crates/svg_fmt-0.4.5.crate) = 4534
 SHA256 (rust/crates/symlink-0.1.0.crate) = a7973cce6668464ea31f176d85b13c7ab3bba2cb3b77a2ed26abd7801688010a
 SIZE (rust/crates/symlink-0.1.0.crate) = 11943
-SHA256 (rust/crates/symphonia-0.5.5.crate) = 5773a4c030a19d9bfaa090f49746ff35c75dfddfa700df7a5939d5e076a57039
-SIZE (rust/crates/symphonia-0.5.5.crate) = 12085
-SHA256 (rust/crates/symphonia-codec-vorbis-0.5.5.crate) = f025837c309cd69ffef572750b4a2257b59552c5399a5e49707cc5b1b85d1c73
-SIZE (rust/crates/symphonia-codec-vorbis-0.5.5.crate) = 25527
-SHA256 (rust/crates/symphonia-core-0.5.5.crate) = ea00cc4f79b7f6bb7ff87eddc065a1066f3a43fe1875979056672c9ef948c2af
-SIZE (rust/crates/symphonia-core-0.5.5.crate) = 99682
-SHA256 (rust/crates/symphonia-format-ogg-0.5.5.crate) = 2b4955c67c1ed3aa8ae8428d04ca8397fbef6a19b2b051e73b5da8b1435639cb
-SIZE (rust/crates/symphonia-format-ogg-0.5.5.crate) = 24285
-SHA256 (rust/crates/symphonia-metadata-0.5.5.crate) = 36306ff42b9ffe6e5afc99d49e121e0bd62fe79b9db7b9681d48e29fa19e6b16
-SIZE (rust/crates/symphonia-metadata-0.5.5.crate) = 24184
-SHA256 (rust/crates/symphonia-utils-xiph-0.5.5.crate) = ee27c85ab799a338446b68eec77abf42e1a6f1bb490656e121c6e27bfbab9f16
-SIZE (rust/crates/symphonia-utils-xiph-0.5.5.crate) = 6617
+SHA256 (rust/crates/symphonia-0.6.0.crate) = 1758d6c853020a7244de03cc3e0185eaea3f58715122422dd3cc7452e6d4c16a
+SIZE (rust/crates/symphonia-0.6.0.crate) = 17223
+SHA256 (rust/crates/symphonia-codec-vorbis-0.6.0.crate) = 45b07b4423cd8e0fc472575909a5554b12c2f58e3c190b38c24f042e732fd8de
+SIZE (rust/crates/symphonia-codec-vorbis-0.6.0.crate) = 31481
+SHA256 (rust/crates/symphonia-common-0.6.0.crate) = 8257891ffa7f05e02b58f4761e2abf7e5278c8744fd59e981559e050f86eef55
+SIZE (rust/crates/symphonia-common-0.6.0.crate) = 19078
+SHA256 (rust/crates/symphonia-core-0.6.0.crate) = 95ec293b5f288383b72a7bffcade6b2860b642cf66f28b3bd5967349a49938b1
+SIZE (rust/crates/symphonia-core-0.6.0.crate) = 147360
+SHA256 (rust/crates/symphonia-format-ogg-0.6.0.crate) = b05a67e02b1e4fca1a261ba4fe06910a9357489ad8c36aafdd2960e9c6559433
+SIZE (rust/crates/symphonia-format-ogg-0.6.0.crate) = 33325
+SHA256 (rust/crates/symphonia-metadata-0.6.0.crate) = a31acf5cd623398a6208e2225d18f4b20f761c55098a796a5247ad516a4a8681
+SIZE (rust/crates/symphonia-metadata-0.6.0.crate) = 59325
 SHA256 (rust/crates/syn-0.15.44.crate) = 9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5
 SIZE (rust/crates/syn-0.15.44.crate) = 184212
 SHA256 (rust/crates/syn-1.0.109.crate) = 72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237
@@ -1875,24 +1877,16 @@ SHA256 (rust/crates/windows-0.58.0.crate) = dd04d41d93c4992d421894c18c8b43496aa7
 SIZE (rust/crates/windows-0.58.0.crate) = 9744521
 SHA256 (rust/crates/windows-0.61.3.crate) = 9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893
 SIZE (rust/crates/windows-0.61.3.crate) = 9372520
-SHA256 (rust/crates/windows-0.62.2.crate) = 527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580
-SIZE (rust/crates/windows-0.62.2.crate) = 9360572
 SHA256 (rust/crates/windows-collections-0.2.0.crate) = 3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8
 SIZE (rust/crates/windows-collections-0.2.0.crate) = 13579
-SHA256 (rust/crates/windows-collections-0.3.2.crate) = 23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610
-SIZE (rust/crates/windows-collections-0.3.2.crate) = 13510
 SHA256 (rust/crates/windows-core-0.51.1.crate) = f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64
 SIZE (rust/crates/windows-core-0.51.1.crate) = 42364
 SHA256 (rust/crates/windows-core-0.58.0.crate) = 6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99
 SIZE (rust/crates/windows-core-0.58.0.crate) = 41022
 SHA256 (rust/crates/windows-core-0.61.2.crate) = c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3
 SIZE (rust/crates/windows-core-0.61.2.crate) = 36771
-SHA256 (rust/crates/windows-core-0.62.2.crate) = b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb
-SIZE (rust/crates/windows-core-0.62.2.crate) = 36932
 SHA256 (rust/crates/windows-future-0.2.1.crate) = fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e
 SIZE (rust/crates/windows-future-0.2.1.crate) = 17532
-SHA256 (rust/crates/windows-future-0.3.2.crate) = e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb
-SIZE (rust/crates/windows-future-0.3.2.crate) = 17944
 SHA256 (rust/crates/windows-implement-0.58.0.crate) = 2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b
 SIZE (rust/crates/windows-implement-0.58.0.crate) = 10491
 SHA256 (rust/crates/windows-implement-0.60.2.crate) = 053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf
@@ -1907,8 +1901,6 @@ SHA256 (rust/crates/windows-link-0.2.1.crate) = f0805222e57f7521d6a62e36fa9163bc
 SIZE (rust/crates/windows-link-0.2.1.crate) = 6133
 SHA256 (rust/crates/windows-numerics-0.2.0.crate) = 9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1
 SIZE (rust/crates/windows-numerics-0.2.0.crate) = 9686
-SHA256 (rust/crates/windows-numerics-0.3.1.crate) = 6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26
-SIZE (rust/crates/windows-numerics-0.3.1.crate) = 9772
 SHA256 (rust/crates/windows-registry-0.6.1.crate) = 02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720
 SIZE (rust/crates/windows-registry-0.6.1.crate) = 13358
 SHA256 (rust/crates/windows-result-0.2.0.crate) = 1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e
@@ -1945,8 +1937,6 @@ SHA256 (rust/crates/windows-targets-0.53.5.crate) = 4945f9f551b88e0d65f3db0bc25c
 SIZE (rust/crates/windows-targets-0.53.5.crate) = 7126
 SHA256 (rust/crates/windows-threading-0.1.0.crate) = b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6
 SIZE (rust/crates/windows-threading-0.1.0.crate) = 9085
-SHA256 (rust/crates/windows-threading-0.2.1.crate) = 3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37
-SIZE (rust/crates/windows-threading-0.2.1.crate) = 9686
 SHA256 (rust/crates/windows_aarch64_gnullvm-0.42.2.crate) = 597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8
 SIZE (rust/crates/windows_aarch64_gnullvm-0.42.2.crate) = 364071
 SHA256 (rust/crates/windows_aarch64_gnullvm-0.48.5.crate) = 2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8
@@ -2115,5 +2105,5 @@ SHA256 (xMAC94x-portpicker-rs-e04e3a61d6c1645c865b36c57877f1f8e48e0cb7_GH0.tar.g
 SIZE (xMAC94x-portpicker-rs-e04e3a61d6c1645c865b36c57877f1f8e48e0cb7_GH0.tar.gz) = 2210
 SHA256 (veloren-conrod-c74446362371dc837b8b4b6d6ddcd7693b48d9b6_GL0.tar.gz) = 43f0faa196eb33341c8e9952da17876649dd3aade44fd357a3a098eaaeb78e9d
 SIZE (veloren-conrod-c74446362371dc837b8b4b6d6ddcd7693b48d9b6_GL0.tar.gz) = 808402
-SHA256 (veloren-v0.18.0-484-gad45ea3a91.tar.bz2) = fe77ba840670c3bf019bbb7ccfe8ea76d0efc9f57e448ecb1e269399e27ad5a5
-SIZE (veloren-v0.18.0-484-gad45ea3a91.tar.bz2) = 352744031
+SHA256 (veloren-v0.18.0-537-g345e457894.tar.bz2) = a7d0bd97e9d4dab057741c1475840edfd28d5c3c33a410616597084c25bfc0af
+SIZE (veloren-v0.18.0-537-g345e457894.tar.bz2) = 352754175
diff --git a/games/veloren-weekly/files/patch-cpal b/games/veloren-weekly/files/patch-cpal
new file mode 100644
index 000000000000..da76578c2dec
--- /dev/null
+++ b/games/veloren-weekly/files/patch-cpal
@@ -0,0 +1,58 @@
+Copied from audio/songrec 0.7.4
+
+--- cargo-crates/cpal-0.18.1/src/host/alsa/mod.rs.orig	2026-06-14 22:13:07 UTC
++++ cargo-crates/cpal-0.18.1/src/host/alsa/mod.rs
+@@ -92,6 +92,14 @@ const DEFAULT_PERIODS: alsa::pcm::Frames = 2;
+ const DEFAULT_DEVICE: &str = "default";
+ const DEFAULT_PERIODS: alsa::pcm::Frames = 2;
+ 
++// ESTRPIPE is Linux-specific (hardware suspend from ALSA); not present on FreeBSD.
++// The ALSA compatibility library on FreeBSD never returns this, so defining it as an
++// out-of-range sentinel ensures the match arms are unreachable without compile errors.
++#[cfg(target_os = "linux")]
++const ESTRPIPE: libc::c_int = libc::ESTRPIPE;
++#[cfg(not(target_os = "linux"))]
++const ESTRPIPE: libc::c_int = 86;
++
+ // Some ALSA plugins (e.g. alsaequal, certain USB drivers) are not reentrant.
+ static ALSA_OPEN_MUTEX: std::sync::Mutex<()> = std::sync::Mutex::new(());
+ 
+@@ -1122,7 +1130,7 @@ fn poll_for_period(
+         // Xrun: recover via prepare() (+ start() for capture, handled by the worker).
+         Err(err) if err.errno() == libc::EPIPE => return Err(ErrorKind::Xrun.into()),
+         // Suspend: try hardware resume first; fall back to prepare() if unsupported.
+-        Err(err) if err.errno() == libc::ESTRPIPE => return try_resume(&stream.handle),
++        Err(err) if err.errno() == ESTRPIPE => return try_resume(&stream.handle),
+         res => res,
+     }?;
+     // ALSA can have spurious wakeups where poll returns but avail < avail_min.
+@@ -1183,7 +1191,7 @@ fn process_input(
+             Err(err) if err.errno() == libc::EPIPE => return Err(ErrorKind::Xrun.into()),
+             // ESTRPIPE = hardware suspend: try soft resume first, falling back to underrun
+             // recovery if the hardware doesn't support it.
+-            Err(err) if err.errno() == libc::ESTRPIPE => {
++            Err(err) if err.errno() == ESTRPIPE => {
+                 return try_resume(&stream.handle).map(|_| ());
+             }
+             Err(err) => return Err(err.into()),
+@@ -1251,7 +1259,7 @@ fn process_output(
+             Err(err) if err.errno() == libc::EPIPE => return Err(ErrorKind::Xrun.into()),
+             // ESTRPIPE = hardware suspend: try soft resume first, falling back to underrun
+             // recovery if the hardware doesn't support it.
+-            Err(err) if err.errno() == libc::ESTRPIPE => {
++            Err(err) if err.errno() == ESTRPIPE => {
+                 return try_resume(&stream.handle).map(|_| ());
+             }
+             Err(err) => return Err(err.into()),
+--- cargo-crates/cpal-0.18.1/src/host/mod.rs.orig	2026-06-14 22:13:07 UTC
++++ cargo-crates/cpal-0.18.1/src/host/mod.rs
+@@ -226,6 +226,9 @@ pub(crate) use error_emit::try_emit_error;
+ /// Convert a frame count at a given sample rate to a [`std::time::Duration`].
+ #[cfg(any(
+     target_os = "linux",
++    target_os = "dragonfly",
++    target_os = "freebsd",
++    target_os = "netbsd",
+     target_os = "windows",
+     target_vendor = "apple",
+     feature = "audioworklet",
diff --git a/games/veloren-weekly/files/patch-gilrs b/games/veloren-weekly/files/patch-gilrs
index c0adbb2bd6ab..898b0a37d0c8 100644
--- a/games/veloren-weekly/files/patch-gilrs
+++ b/games/veloren-weekly/files/patch-gilrs
@@ -23,9 +23,45 @@ error[E0432]: unresolved imports `nix::sys::epoll`, `nix::sys::eventfd`
    |                |      help: a similar name exists in the module: `event`
    |                no `epoll` in `sys`
 
---- Cargo.lock.orig	2026-06-24 22:15:32 UTC
+--- Cargo.lock.orig	2026-07-21 22:32:17 UTC
 +++ Cargo.lock
-@@ -2917,9 +2917,9 @@ dependencies = [
+@@ -204,7 +204,7 @@ version = "1.1.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc"
+ dependencies = [
+- "windows-sys 0.60.2",
++ "windows-sys 0.61.2",
+ ]
+ 
+ [[package]]
+@@ -215,7 +215,7 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d"
+ dependencies = [
+  "anstyle",
+  "once_cell_polyfill",
+- "windows-sys 0.60.2",
++ "windows-sys 0.61.2",
+ ]
+ 
+ [[package]]
+@@ -2054,7 +2054,7 @@ dependencies = [
+  "libc",
+  "option-ext",
+  "redox_users 0.5.2",
+- "windows-sys 0.59.0",
++ "windows-sys 0.61.2",
+ ]
+ 
+ [[package]]
+@@ -2416,7 +2416,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
+ dependencies = [
+  "libc",
+- "windows-sys 0.59.0",
++ "windows-sys 0.61.2",
+ ]
+ 
+ [[package]]
+@@ -2954,9 +2954,9 @@ dependencies = [
  
  [[package]]
  name = "gilrs"
@@ -37,7 +73,7 @@ error[E0432]: unresolved imports `nix::sys::epoll`, `nix::sys::eventfd`
  dependencies = [
   "fnv",
   "gilrs-core",
-@@ -2931,24 +2931,23 @@ dependencies = [
+@@ -2968,24 +2968,23 @@ dependencies = [
  
  [[package]]
  name = "gilrs-core"
@@ -63,12 +99,21 @@ error[E0432]: unresolved imports `nix::sys::epoll`, `nix::sys::eventfd`
   "vec_map",
   "wasm-bindgen",
   "web-sys",
-- "windows 0.62.2",
+- "windows 0.58.0",
 + "windows 0.51.1",
  ]
  
  [[package]]
-@@ -3750,6 +3749,16 @@ dependencies = [
+@@ -3483,7 +3482,7 @@ dependencies = [
+  "js-sys",
+  "log",
+  "wasm-bindgen",
+- "windows-core 0.58.0",
++ "windows-core 0.61.2",
+ ]
+ 
+ [[package]]
+@@ -3795,6 +3794,16 @@ dependencies = [
   "windows-sys 0.59.0",
  ]
  
@@ -85,7 +130,7 @@ error[E0432]: unresolved imports `nix::sys::epoll`, `nix::sys::eventfd`
  [[package]]
  name = "io-lifetimes"
  version = "2.0.4"
-@@ -4619,6 +4628,17 @@ dependencies = [
+@@ -4661,6 +4670,17 @@ dependencies = [
   "memoffset 0.6.5",
  ]
  
@@ -103,7 +148,16 @@ error[E0432]: unresolved imports `nix::sys::epoll`, `nix::sys::eventfd`
  [[package]]
  name = "nix"
  version = "0.29.0"
-@@ -5157,17 +5177,6 @@ dependencies = [
+@@ -4776,7 +4796,7 @@ version = "0.50.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
+ dependencies = [
+- "windows-sys 0.59.0",
++ "windows-sys 0.61.2",
+ ]
+ 
+ [[package]]
+@@ -5200,17 +5220,6 @@ dependencies = [
   "objc2-core-foundation",
  ]
  
@@ -121,7 +175,43 @@ error[E0432]: unresolved imports `nix::sys::epoll`, `nix::sys::eventfd`
  [[package]]
  name = "objc2-io-surface"
  version = "0.3.2"
-@@ -7758,7 +7767,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+@@ -6720,7 +6729,7 @@ dependencies = [
+  "errno",
+  "libc",
+  "linux-raw-sys 0.12.1",
+- "windows-sys 0.59.0",
++ "windows-sys 0.61.2",
+ ]
+ 
+ [[package]]
+@@ -6796,7 +6805,7 @@ dependencies = [
+  "security-framework",
+  "security-framework-sys",
+  "webpki-root-certs",
+- "windows-sys 0.59.0",
++ "windows-sys 0.61.2",
+ ]
+ 
+ [[package]]
+@@ -7462,7 +7471,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51"
+ dependencies = [
+  "libc",
+- "windows-sys 0.60.2",
++ "windows-sys 0.61.2",
+ ]
+ 
+ [[package]]
+@@ -7533,7 +7542,7 @@ dependencies = [
+  "cfg-if 1.0.4",
+  "libc",
+  "psm",
+- "windows-sys 0.60.2",
++ "windows-sys 0.61.2",
+ ]
+ 
+ [[package]]
+@@ -7804,10 +7813,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
  checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
  dependencies = [
   "fastrand",
@@ -129,26 +219,21 @@ error[E0432]: unresolved imports `nix::sys::epoll`, `nix::sys::eventfd`
 + "getrandom 0.3.4",
   "once_cell",
   "rustix 1.1.4",
-  "windows-sys 0.61.2",
-@@ -8306,7 +8315,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
- checksum = "c5f7c95348f20c1c913d72157b3c6dee6ea3e30b3d19502c5a7f6d3f160dacbf"
- dependencies = [
-  "cc",
-- "windows-targets 0.52.6",
-+ "windows-targets 0.48.5",
+- "windows-sys 0.59.0",
++ "windows-sys 0.61.2",
  ]
  
  [[package]]
-@@ -8352,7 +8361,7 @@ version = "1.6.3"
+@@ -10376,7 +10385,7 @@ version = "0.1.11"
  source = "registry+https://github.com/rust-lang/crates.io-index"
- checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675"
+ checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
  dependencies = [
-- "cfg-if 1.0.4",
-+ "cfg-if 0.1.10",
-  "rand 0.8.6",
-  "static_assertions",
+- "windows-sys 0.52.0",
++ "windows-sys 0.61.2",
  ]
-@@ -10378,6 +10387,16 @@ dependencies = [
+ 
+ [[package]]
+@@ -10427,6 +10436,16 @@ dependencies = [
   "thiserror 2.0.18",
  ]
  
@@ -165,8 +250,8 @@ error[E0432]: unresolved imports `nix::sys::epoll`, `nix::sys::eventfd`
  [[package]]
  name = "windows"
  version = "0.58.0"
-@@ -10431,6 +10450,15 @@ dependencies = [
-  "windows-core 0.62.2",
+@@ -10459,6 +10478,15 @@ dependencies = [
+  "windows-core 0.61.2",
  ]
  
 +[[package]]