git: 67be379c96ce - main - games/veloren-weekly: update to s20230510
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 11 May 2023 00:47:30 UTC
The branch main has been updated by jbeich:
URL: https://cgit.FreeBSD.org/ports/commit/?id=67be379c96cebf8ba57d89275e4bd04a94dc44b3
commit 67be379c96cebf8ba57d89275e4bd04a94dc44b3
Author: Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2023-05-10 10:31:17 +0000
Commit: Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2023-05-11 00:47:07 +0000
games/veloren-weekly: update to s20230510
Changes: https://gitlab.com/veloren/veloren/-/compare/95a38ff8f...db860de51
---
games/veloren-weekly/Makefile | 11 +-
games/veloren-weekly/Makefile.crates | 32 +-
games/veloren-weekly/distinfo | 70 ++---
games/veloren-weekly/files/patch-rust-1.69 | 475 +++++++++++++++++++++++++++++
4 files changed, 511 insertions(+), 77 deletions(-)
diff --git a/games/veloren-weekly/Makefile b/games/veloren-weekly/Makefile
index b664a91c7169..81418cce6d90 100644
--- a/games/veloren-weekly/Makefile
+++ b/games/veloren-weekly/Makefile
@@ -1,5 +1,5 @@
PORTNAME= veloren
-PORTVERSION= s20230506
+PORTVERSION= s20230510
CATEGORIES= games wayland
PKGNAMESUFFIX= -weekly
@@ -24,7 +24,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_COMMIT= 95a38ff8f60d8895461971eb1266a5530cca8cce
+GL_COMMIT= db860de51760d94e1f501390c5e1f472d89a8db7
CARGO_ENV= VELOREN_USERDATA_STRATEGY=system SHADERC_LIB_DIR="${LOCALBASE}/lib"
PLIST_FILES= bin/${PORTNAME}-server-cli \
bin/${PORTNAME}-voxygen \
@@ -60,6 +60,13 @@ post-patch:
@${REINPLACE_CMD} -e 's,/usr/share,${DATADIR:H},' \
${WRKSRC}/common/assets/src/lib.rs
+do-install:
+# XXX [workspace.dependencies] breaks rebuild in subdirs
+.for f in ${CARGO_INSTALL_PATH}
+ ${INSTALL_PROGRAM} ${CARGO_TARGET_DIR}/*/*/${PORTNAME}-$f \
+ ${STAGEDIR}${PREFIX}/bin
+.endfor
+
post-install:
${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/*
(cd ${WRKSRC} && ${COPYTREE_SHARE} assets ${STAGEDIR}${DATADIR})
diff --git a/games/veloren-weekly/Makefile.crates b/games/veloren-weekly/Makefile.crates
index 79ea1bda2740..e174d26989ce 100644
--- a/games/veloren-weekly/Makefile.crates
+++ b/games/veloren-weekly/Makefile.crates
@@ -188,7 +188,6 @@ CARGO_CRATES= ab_glyph-0.2.21 \
enumset_derive-0.7.0 \
epaint-0.12.0 \
epi-0.12.0 \
- errno-0.2.8 \
errno-0.3.1 \
errno-dragonfly-0.1.2 \
error-code-2.3.1 \
@@ -199,7 +198,7 @@ CARGO_CRATES= ab_glyph-0.2.21 \
fallible-iterator-0.2.0 \
fallible-streaming-iterator-0.1.9 \
fastrand-1.9.0 \
- fd-lock-3.0.4 \
+ fd-lock-3.0.12 \
fdeflate-0.3.0 \
fehler-1.0.0 \
fehler-macros-1.0.0 \
@@ -283,7 +282,6 @@ CARGO_CRATES= ab_glyph-0.2.21 \
instant-0.1.12 \
intl_pluralrules-7.0.2 \
io-kit-sys-0.3.0 \
- io-lifetimes-0.5.3 \
io-lifetimes-1.0.10 \
is-terminal-0.4.7 \
itertools-0.10.5 \
@@ -317,7 +315,6 @@ CARGO_CRATES= ab_glyph-0.2.21 \
libudev-sys-0.1.4 \
link-cplusplus-1.0.8 \
linked-hash-map-0.5.6 \
- linux-raw-sys-0.0.42 \
linux-raw-sys-0.3.7 \
lock_api-0.3.4 \
lock_api-0.4.9 \
@@ -344,7 +341,7 @@ CARGO_CRATES= ab_glyph-0.2.21 \
miniz_oxide-0.6.2 \
miniz_oxide-0.7.1 \
mio-0.7.14 \
- mio-0.8.2 \
+ mio-0.8.6 \
mio-misc-1.2.2 \
miow-0.3.7 \
mopa-0.2.2 \
@@ -372,7 +369,6 @@ CARGO_CRATES= ab_glyph-0.2.21 \
noise-0.7.0 \
nom-7.1.3 \
notify-5.1.0 \
- ntapi-0.3.7 \
nu-ansi-term-0.46.0 \
num-0.2.1 \
num-0.4.0 \
@@ -412,10 +408,10 @@ CARGO_CRATES= ab_glyph-0.2.21 \
packed_simd_2-0.3.8 \
parking_lot-0.10.2 \
parking_lot-0.11.2 \
- parking_lot-0.12.0 \
+ parking_lot-0.12.1 \
parking_lot_core-0.7.3 \
parking_lot_core-0.8.6 \
- parking_lot_core-0.9.2 \
+ parking_lot_core-0.9.7 \
parse-zoneinfo-0.3.0 \
paste-1.0.12 \
peeking_take_while-0.1.2 \
@@ -499,7 +495,6 @@ CARGO_CRATES= ab_glyph-0.2.21 \
rmp-serde-1.1.1 \
rodio-0.15.0 \
ron-0.6.6 \
- ron-0.7.1 \
ron-0.8.0 \
roots-0.0.6 \
rose_tree-0.2.0 \
@@ -511,7 +506,6 @@ CARGO_CRATES= ab_glyph-0.2.21 \
rustc-hash-1.1.0 \
rustc_version-0.2.3 \
rustc_version-0.4.0 \
- rustix-0.33.7 \
rustix-0.37.19 \
rustls-0.19.1 \
rustls-0.20.8 \
@@ -527,6 +521,7 @@ CARGO_CRATES= ab_glyph-0.2.21 \
ryu-1.0.13 \
same-file-1.0.6 \
schannel-0.1.19 \
+ schnellru-0.2.1 \
scoped-tls-1.0.1 \
scopeguard-1.1.0 \
scratch-1.0.5 \
@@ -621,8 +616,8 @@ CARGO_CRATES= ab_glyph-0.2.21 \
tinytemplate-1.2.1 \
tinyvec-1.6.0 \
tinyvec_macros-0.1.1 \
- tokio-1.20.0 \
- tokio-macros-1.8.2 \
+ tokio-1.28.0 \
+ tokio-macros-2.1.0 \
tokio-rustls-0.22.0 \
tokio-stream-0.1.14 \
tokio-util-0.7.1 \
@@ -723,9 +718,7 @@ CARGO_CRATES= ab_glyph-0.2.21 \
window_clipboard-0.2.4 \
windows-0.37.0 \
windows-0.48.0 \
- windows-sys-0.30.0 \
windows-sys-0.33.0 \
- windows-sys-0.34.0 \
windows-sys-0.42.0 \
windows-sys-0.45.0 \
windows-sys-0.48.0 \
@@ -733,35 +726,25 @@ CARGO_CRATES= ab_glyph-0.2.21 \
windows-targets-0.48.0 \
windows_aarch64_gnullvm-0.42.2 \
windows_aarch64_gnullvm-0.48.0 \
- windows_aarch64_msvc-0.30.0 \
windows_aarch64_msvc-0.33.0 \
- windows_aarch64_msvc-0.34.0 \
windows_aarch64_msvc-0.37.0 \
windows_aarch64_msvc-0.42.2 \
windows_aarch64_msvc-0.48.0 \
- windows_i686_gnu-0.30.0 \
windows_i686_gnu-0.33.0 \
- windows_i686_gnu-0.34.0 \
windows_i686_gnu-0.37.0 \
windows_i686_gnu-0.42.2 \
windows_i686_gnu-0.48.0 \
- windows_i686_msvc-0.30.0 \
windows_i686_msvc-0.33.0 \
- windows_i686_msvc-0.34.0 \
windows_i686_msvc-0.37.0 \
windows_i686_msvc-0.42.2 \
windows_i686_msvc-0.48.0 \
- windows_x86_64_gnu-0.30.0 \
windows_x86_64_gnu-0.33.0 \
- windows_x86_64_gnu-0.34.0 \
windows_x86_64_gnu-0.37.0 \
windows_x86_64_gnu-0.42.2 \
windows_x86_64_gnu-0.48.0 \
windows_x86_64_gnullvm-0.42.2 \
windows_x86_64_gnullvm-0.48.0 \
- windows_x86_64_msvc-0.30.0 \
windows_x86_64_msvc-0.33.0 \
- windows_x86_64_msvc-0.34.0 \
windows_x86_64_msvc-0.37.0 \
windows_x86_64_msvc-0.42.2 \
windows_x86_64_msvc-0.48.0 \
@@ -787,6 +770,7 @@ CARGO_CRATES= ab_glyph-0.2.21 \
yasna-0.5.2 \
wgpu-profiler@git+https://github.com/Imberflur/wgpu-profiler?tag=wgpu-0.8\#b156eb145bc223386ef344860d9b33b3c181650c \
tui@git+https://github.com/fdehau/tui-rs.git?branch=paragraph-scroll\#54b841fab6cfdb38e8dc1382176e965787964b4c \
+ ntapi@git+https://github.com/MSxDOS/ntapi.git?rev=9f56b149c9e25796739157c0fce3e0007a7de6eb\#9f56b149c9e25796739157c0fce3e0007a7de6eb \
fluent,fluent-bundle,fluent-syntax,intl-memoizer@git+https://github.com/juliancoffee/fluent-rs.git?branch=patched\#929cf9512de121cce9b4cbf1cb860cd3294a1cd9 \
auth-common,authc@git+https://gitlab.com/veloren/auth.git?rev=fb3dcbc4962b367253f8f2f92760ef44d2679c9a\#fb3dcbc4962b367253f8f2f92760ef44d2679c9a \
iced_core,iced_futures,iced_graphics,iced_native,iced_style,iced_winit@git+https://github.com/Imberflur/iced?tag=winit-0.25\#18a48a5eeefd2aa6e50f5dd0751ac2e94c88a9eb \
diff --git a/games/veloren-weekly/distinfo b/games/veloren-weekly/distinfo
index 4ee4c370400b..c6728814c361 100644
--- a/games/veloren-weekly/distinfo
+++ b/games/veloren-weekly/distinfo
@@ -1,4 +1,4 @@
-TIMESTAMP = 1683349940
+TIMESTAMP = 1683755570
SHA256 (rust/crates/ab_glyph-0.2.21.crate) = 5110f1c78cf582855d895ecd0746b653db010cec6d9f5575293f27934d980a39
SIZE (rust/crates/ab_glyph-0.2.21.crate) = 17764
SHA256 (rust/crates/ab_glyph_rasterizer-0.1.8.crate) = c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046
@@ -379,8 +379,6 @@ SHA256 (rust/crates/epaint-0.12.0.crate) = 80e2db640801230bdda80629bc3a063927a46
SIZE (rust/crates/epaint-0.12.0.crate) = 672262
SHA256 (rust/crates/epi-0.12.0.crate) = 59c4f6cbede1fc8f836384f85295a59199a4825940abcc3a8a29cfe2e3c37583
SIZE (rust/crates/epi-0.12.0.crate) = 6678
-SHA256 (rust/crates/errno-0.2.8.crate) = f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1
-SIZE (rust/crates/errno-0.2.8.crate) = 9276
SHA256 (rust/crates/errno-0.3.1.crate) = 4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a
SIZE (rust/crates/errno-0.3.1.crate) = 10348
SHA256 (rust/crates/errno-dragonfly-0.1.2.crate) = aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf
@@ -401,8 +399,8 @@ SHA256 (rust/crates/fallible-streaming-iterator-0.1.9.crate) = 7360491ce676a36bf
SIZE (rust/crates/fallible-streaming-iterator-0.1.9.crate) = 9249
SHA256 (rust/crates/fastrand-1.9.0.crate) = e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be
SIZE (rust/crates/fastrand-1.9.0.crate) = 11910
-SHA256 (rust/crates/fd-lock-3.0.4.crate) = 02ecad9808e0596f8956d14f7fa868f996290bd01c8d7329d6e5bc2bb76adf8f
-SIZE (rust/crates/fd-lock-3.0.4.crate) = 13381
+SHA256 (rust/crates/fd-lock-3.0.12.crate) = 39ae6b3d9530211fb3b12a95374b8b0823be812f53d09e18c5675c0146b09642
+SIZE (rust/crates/fd-lock-3.0.12.crate) = 13692
SHA256 (rust/crates/fdeflate-0.3.0.crate) = d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10
SIZE (rust/crates/fdeflate-0.3.0.crate) = 21790
SHA256 (rust/crates/fehler-1.0.0.crate) = d5729fe49ba028cd550747b6e62cd3d841beccab5390aa398538c31a2d983635
@@ -569,8 +567,6 @@ SHA256 (rust/crates/intl_pluralrules-7.0.2.crate) = 078ea7b7c29a2b4df841a7f6ac87
SIZE (rust/crates/intl_pluralrules-7.0.2.crate) = 9201
SHA256 (rust/crates/io-kit-sys-0.3.0.crate) = 9b2d4429acc1deff0fbdece0325b4997bdb02b2c245ab7023fd5deca0f6348de
SIZE (rust/crates/io-kit-sys-0.3.0.crate) = 38799
-SHA256 (rust/crates/io-lifetimes-0.5.3.crate) = ec58677acfea8a15352d42fc87d11d63596ade9239e0a7c9352914417515dbe6
-SIZE (rust/crates/io-lifetimes-0.5.3.crate) = 37540
SHA256 (rust/crates/io-lifetimes-1.0.10.crate) = 9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220
SIZE (rust/crates/io-lifetimes-1.0.10.crate) = 37294
SHA256 (rust/crates/is-terminal-0.4.7.crate) = adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f
@@ -637,8 +633,6 @@ SHA256 (rust/crates/link-cplusplus-1.0.8.crate) = ecd207c9c713c34f95a097a5b029ac
SIZE (rust/crates/link-cplusplus-1.0.8.crate) = 7674
SHA256 (rust/crates/linked-hash-map-0.5.6.crate) = 0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f
SIZE (rust/crates/linked-hash-map-0.5.6.crate) = 15049
-SHA256 (rust/crates/linux-raw-sys-0.0.42.crate) = 5284f00d480e1c39af34e72f8ad60b94f47007e3481cd3b731c1d67190ddc7b7
-SIZE (rust/crates/linux-raw-sys-0.0.42.crate) = 756837
SHA256 (rust/crates/linux-raw-sys-0.3.7.crate) = ece97ea872ece730aed82664c424eb4c8291e1ff2480247ccf7409044bc6479f
SIZE (rust/crates/linux-raw-sys-0.3.7.crate) = 1013423
SHA256 (rust/crates/lock_api-0.3.4.crate) = c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75
@@ -691,8 +685,8 @@ SHA256 (rust/crates/miniz_oxide-0.7.1.crate) = e7810e0be55b428ada41041c41f32c9f1
SIZE (rust/crates/miniz_oxide-0.7.1.crate) = 55194
SHA256 (rust/crates/mio-0.7.14.crate) = 8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc
SIZE (rust/crates/mio-0.7.14.crate) = 87429
-SHA256 (rust/crates/mio-0.8.2.crate) = 52da4364ffb0e4fe33a9841a98a3f3014fb964045ce4f7a45a398243c8d6b0c9
-SIZE (rust/crates/mio-0.8.2.crate) = 88272
+SHA256 (rust/crates/mio-0.8.6.crate) = 5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9
+SIZE (rust/crates/mio-0.8.6.crate) = 93658
SHA256 (rust/crates/mio-misc-1.2.2.crate) = b47412f3a52115b936ff2a229b803498c7b4d332adeb87c2f1498c9da54c398c
SIZE (rust/crates/mio-misc-1.2.2.crate) = 11898
SHA256 (rust/crates/miow-0.3.7.crate) = b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21
@@ -747,8 +741,6 @@ SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b
SIZE (rust/crates/nom-7.1.3.crate) = 117570
SHA256 (rust/crates/notify-5.1.0.crate) = 58ea850aa68a06e48fdb069c0ec44d0d64c8dbffa49bf3b6f7f0a901fdea1ba9
SIZE (rust/crates/notify-5.1.0.crate) = 37269
-SHA256 (rust/crates/ntapi-0.3.7.crate) = c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f
-SIZE (rust/crates/ntapi-0.3.7.crate) = 126994
SHA256 (rust/crates/nu-ansi-term-0.46.0.crate) = 77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84
SIZE (rust/crates/nu-ansi-term-0.46.0.crate) = 24311
SHA256 (rust/crates/num-0.2.1.crate) = b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36
@@ -827,14 +819,14 @@ SHA256 (rust/crates/parking_lot-0.10.2.crate) = d3a704eb390aafdc107b0e392f56a82b
SIZE (rust/crates/parking_lot-0.10.2.crate) = 39536
SHA256 (rust/crates/parking_lot-0.11.2.crate) = 7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99
SIZE (rust/crates/parking_lot-0.11.2.crate) = 39869
-SHA256 (rust/crates/parking_lot-0.12.0.crate) = 87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58
-SIZE (rust/crates/parking_lot-0.12.0.crate) = 39761
+SHA256 (rust/crates/parking_lot-0.12.1.crate) = 3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f
+SIZE (rust/crates/parking_lot-0.12.1.crate) = 40967
SHA256 (rust/crates/parking_lot_core-0.7.3.crate) = b93f386bb233083c799e6e642a9d73db98c24a5deeb95ffc85bf281255dffc98
SIZE (rust/crates/parking_lot_core-0.7.3.crate) = 33855
SHA256 (rust/crates/parking_lot_core-0.8.6.crate) = 60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc
SIZE (rust/crates/parking_lot_core-0.8.6.crate) = 32567
-SHA256 (rust/crates/parking_lot_core-0.9.2.crate) = 995f667a6c822200b0433ac218e05582f0e2efa1b922a3fd2fbaadc5f87bab37
-SIZE (rust/crates/parking_lot_core-0.9.2.crate) = 32254
+SHA256 (rust/crates/parking_lot_core-0.9.7.crate) = 9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521
+SIZE (rust/crates/parking_lot_core-0.9.7.crate) = 32412
SHA256 (rust/crates/parse-zoneinfo-0.3.0.crate) = c705f256449c60da65e11ff6626e0c16a0a0b96aaa348de61376b249bc340f41
SIZE (rust/crates/parse-zoneinfo-0.3.0.crate) = 76590
SHA256 (rust/crates/paste-1.0.12.crate) = 9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79
@@ -1001,8 +993,6 @@ SHA256 (rust/crates/rodio-0.15.0.crate) = ec0939e9f626e6c6f1989adb6226a039c855ca
SIZE (rust/crates/rodio-0.15.0.crate) = 7414161
SHA256 (rust/crates/ron-0.6.6.crate) = 86018df177b1beef6c7c8ef949969c4f7cb9a9344181b92486b23c79995bdaa4
SIZE (rust/crates/ron-0.6.6.crate) = 45107
-SHA256 (rust/crates/ron-0.7.1.crate) = 88073939a61e5b7680558e6be56b419e208420c2adb92be54921fa6b72283f1a
-SIZE (rust/crates/ron-0.7.1.crate) = 53572
SHA256 (rust/crates/ron-0.8.0.crate) = 300a51053b1cb55c80b7a9fde4120726ddf25ca241a1cbb926626f62fb136bff
SIZE (rust/crates/ron-0.8.0.crate) = 57013
SHA256 (rust/crates/roots-0.0.6.crate) = 84348444bd7ad45729d0c49a4240d7cdc11c9d512c06c5ad1835c1ad4acda6db
@@ -1025,8 +1015,6 @@ SHA256 (rust/crates/rustc_version-0.2.3.crate) = 138e3e0acb6c9fb258b19b67cb8abd6
SIZE (rust/crates/rustc_version-0.2.3.crate) = 10210
SHA256 (rust/crates/rustc_version-0.4.0.crate) = bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366
SIZE (rust/crates/rustc_version-0.4.0.crate) = 12175
-SHA256 (rust/crates/rustix-0.33.7.crate) = 938a344304321a9da4973b9ff4f9f8db9caf4597dfd9dda6a60b523340a0fff0
-SIZE (rust/crates/rustix-0.33.7.crate) = 268622
SHA256 (rust/crates/rustix-0.37.19.crate) = acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d
SIZE (rust/crates/rustix-0.37.19.crate) = 323809
SHA256 (rust/crates/rustls-0.19.1.crate) = 35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7
@@ -1057,6 +1045,8 @@ SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e
SIZE (rust/crates/same-file-1.0.6.crate) = 10183
SHA256 (rust/crates/schannel-0.1.19.crate) = 8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75
SIZE (rust/crates/schannel-0.1.19.crate) = 42755
+SHA256 (rust/crates/schnellru-0.2.1.crate) = 772575a524feeb803e5b0fcbc6dd9f367e579488197c94c6e4023aad2305774d
+SIZE (rust/crates/schnellru-0.2.1.crate) = 22458
SHA256 (rust/crates/scoped-tls-1.0.1.crate) = e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294
SIZE (rust/crates/scoped-tls-1.0.1.crate) = 8202
SHA256 (rust/crates/scopeguard-1.1.0.crate) = d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd
@@ -1245,10 +1235,10 @@ SHA256 (rust/crates/tinyvec-1.6.0.crate) = 87cc5ceb3875bb20c2890005a4e226a465126
SIZE (rust/crates/tinyvec-1.6.0.crate) = 45991
SHA256 (rust/crates/tinyvec_macros-0.1.1.crate) = 1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20
SIZE (rust/crates/tinyvec_macros-0.1.1.crate) = 5865
-SHA256 (rust/crates/tokio-1.20.0.crate) = 57aec3cfa4c296db7255446efb4928a6be304b431a806216105542a67b6ca82e
-SIZE (rust/crates/tokio-1.20.0.crate) = 589938
-SHA256 (rust/crates/tokio-macros-1.8.2.crate) = d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8
-SIZE (rust/crates/tokio-macros-1.8.2.crate) = 10071
+SHA256 (rust/crates/tokio-1.28.0.crate) = c3c786bf8134e5a3a166db9b29ab8f48134739014a3eca7bc6bfa95d673b136f
+SIZE (rust/crates/tokio-1.28.0.crate) = 660469
+SHA256 (rust/crates/tokio-macros-2.1.0.crate) = 630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e
+SIZE (rust/crates/tokio-macros-2.1.0.crate) = 11472
SHA256 (rust/crates/tokio-rustls-0.22.0.crate) = bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6
SIZE (rust/crates/tokio-rustls-0.22.0.crate) = 22706
SHA256 (rust/crates/tokio-stream-0.1.14.crate) = 397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842
@@ -1449,12 +1439,8 @@ SHA256 (rust/crates/windows-0.37.0.crate) = 57b543186b344cc61c85b5aab0d2e3adf4e0
SIZE (rust/crates/windows-0.37.0.crate) = 14060820
SHA256 (rust/crates/windows-0.48.0.crate) = e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f
SIZE (rust/crates/windows-0.48.0.crate) = 11864177
-SHA256 (rust/crates/windows-sys-0.30.0.crate) = 030b7ff91626e57a05ca64a07c481973cbb2db774e4852c9c7ca342408c6a99a
-SIZE (rust/crates/windows-sys-0.30.0.crate) = 3256610
SHA256 (rust/crates/windows-sys-0.33.0.crate) = 43dbb096663629518eb1dfa72d80243ca5a6aca764cae62a2df70af760a9be75
SIZE (rust/crates/windows-sys-0.33.0.crate) = 3355291
-SHA256 (rust/crates/windows-sys-0.34.0.crate) = 5acdd78cb4ba54c0045ac14f62d8f94a03d10047904ae2a40afa1e99d8f70825
-SIZE (rust/crates/windows-sys-0.34.0.crate) = 3369228
SHA256 (rust/crates/windows-sys-0.42.0.crate) = 5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7
SIZE (rust/crates/windows-sys-0.42.0.crate) = 3006791
SHA256 (rust/crates/windows-sys-0.45.0.crate) = 75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0
@@ -1469,48 +1455,32 @@ SHA256 (rust/crates/windows_aarch64_gnullvm-0.42.2.crate) = 597a5118570b68bc08d8
SIZE (rust/crates/windows_aarch64_gnullvm-0.42.2.crate) = 364071
SHA256 (rust/crates/windows_aarch64_gnullvm-0.48.0.crate) = 91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc
SIZE (rust/crates/windows_aarch64_gnullvm-0.48.0.crate) = 366543
-SHA256 (rust/crates/windows_aarch64_msvc-0.30.0.crate) = 29277a4435d642f775f63c7d1faeb927adba532886ce0287bd985bffb16b6bca
-SIZE (rust/crates/windows_aarch64_msvc-0.30.0.crate) = 669666
SHA256 (rust/crates/windows_aarch64_msvc-0.33.0.crate) = cd761fd3eb9ab8cc1ed81e56e567f02dd82c4c837e48ac3b2181b9ffc5060807
SIZE (rust/crates/windows_aarch64_msvc-0.33.0.crate) = 674447
-SHA256 (rust/crates/windows_aarch64_msvc-0.34.0.crate) = 17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d
-SIZE (rust/crates/windows_aarch64_msvc-0.34.0.crate) = 674445
SHA256 (rust/crates/windows_aarch64_msvc-0.37.0.crate) = 2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a
SIZE (rust/crates/windows_aarch64_msvc-0.37.0.crate) = 661960
SHA256 (rust/crates/windows_aarch64_msvc-0.42.2.crate) = e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43
SIZE (rust/crates/windows_aarch64_msvc-0.42.2.crate) = 666981
SHA256 (rust/crates/windows_aarch64_msvc-0.48.0.crate) = b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3
SIZE (rust/crates/windows_aarch64_msvc-0.48.0.crate) = 671479
-SHA256 (rust/crates/windows_i686_gnu-0.30.0.crate) = 1145e1989da93956c68d1864f32fb97c8f561a8f89a5125f6a2b7ea75524e4b8
-SIZE (rust/crates/windows_i686_gnu-0.30.0.crate) = 774464
SHA256 (rust/crates/windows_i686_gnu-0.33.0.crate) = cab0cf703a96bab2dc0c02c0fa748491294bf9b7feb27e1f4f96340f208ada0e
SIZE (rust/crates/windows_i686_gnu-0.33.0.crate) = 772346
-SHA256 (rust/crates/windows_i686_gnu-0.34.0.crate) = 2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed
-SIZE (rust/crates/windows_i686_gnu-0.34.0.crate) = 772343
SHA256 (rust/crates/windows_i686_gnu-0.37.0.crate) = d3925fd0b0b804730d44d4b6278c50f9699703ec49bcd628020f46f4ba07d9e1
SIZE (rust/crates/windows_i686_gnu-0.37.0.crate) = 818111
SHA256 (rust/crates/windows_i686_gnu-0.42.2.crate) = c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f
SIZE (rust/crates/windows_i686_gnu-0.42.2.crate) = 736236
SHA256 (rust/crates/windows_i686_gnu-0.48.0.crate) = 622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241
SIZE (rust/crates/windows_i686_gnu-0.48.0.crate) = 741490
-SHA256 (rust/crates/windows_i686_msvc-0.30.0.crate) = d4a09e3a0d4753b73019db171c1339cd4362c8c44baf1bcea336235e955954a6
-SIZE (rust/crates/windows_i686_msvc-0.30.0.crate) = 732295
SHA256 (rust/crates/windows_i686_msvc-0.33.0.crate) = 8cfdbe89cc9ad7ce618ba34abc34bbb6c36d99e96cae2245b7943cd75ee773d0
SIZE (rust/crates/windows_i686_msvc-0.33.0.crate) = 733499
-SHA256 (rust/crates/windows_i686_msvc-0.34.0.crate) = 9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956
-SIZE (rust/crates/windows_i686_msvc-0.34.0.crate) = 733497
SHA256 (rust/crates/windows_i686_msvc-0.37.0.crate) = ce907ac74fe331b524c1298683efbf598bb031bc84d5e274db2083696d07c57c
SIZE (rust/crates/windows_i686_msvc-0.37.0.crate) = 724577
SHA256 (rust/crates/windows_i686_msvc-0.42.2.crate) = 44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060
SIZE (rust/crates/windows_i686_msvc-0.42.2.crate) = 724951
SHA256 (rust/crates/windows_i686_msvc-0.48.0.crate) = 4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00
SIZE (rust/crates/windows_i686_msvc-0.48.0.crate) = 730056
-SHA256 (rust/crates/windows_x86_64_gnu-0.30.0.crate) = 8ca64fcb0220d58db4c119e050e7af03c69e6f4f415ef69ec1773d9aab422d5a
-SIZE (rust/crates/windows_x86_64_gnu-0.30.0.crate) = 743236
SHA256 (rust/crates/windows_x86_64_gnu-0.33.0.crate) = b4dd9b0c0e9ece7bb22e84d70d01b71c6d6248b81a3c60d11869451b4cb24784
SIZE (rust/crates/windows_x86_64_gnu-0.33.0.crate) = 744302
-SHA256 (rust/crates/windows_x86_64_gnu-0.34.0.crate) = cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4
-SIZE (rust/crates/windows_x86_64_gnu-0.34.0.crate) = 744301
SHA256 (rust/crates/windows_x86_64_gnu-0.37.0.crate) = 2babfba0828f2e6b32457d5341427dcbb577ceef556273229959ac23a10af33d
SIZE (rust/crates/windows_x86_64_gnu-0.37.0.crate) = 790933
SHA256 (rust/crates/windows_x86_64_gnu-0.42.2.crate) = 8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36
@@ -1521,12 +1491,8 @@ SHA256 (rust/crates/windows_x86_64_gnullvm-0.42.2.crate) = 26d41b46a36d453748aed
SIZE (rust/crates/windows_x86_64_gnullvm-0.42.2.crate) = 364068
SHA256 (rust/crates/windows_x86_64_gnullvm-0.48.0.crate) = 7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953
SIZE (rust/crates/windows_x86_64_gnullvm-0.48.0.crate) = 366536
-SHA256 (rust/crates/windows_x86_64_msvc-0.30.0.crate) = 08cabc9f0066848fef4bc6a1c1668e6efce38b661d2aeec75d18d8617eebb5f1
-SIZE (rust/crates/windows_x86_64_msvc-0.30.0.crate) = 668972
SHA256 (rust/crates/windows_x86_64_msvc-0.33.0.crate) = ff1e4aa646495048ec7f3ffddc411e1d829c026a2ec62b39da15c1055e406eaa
SIZE (rust/crates/windows_x86_64_msvc-0.33.0.crate) = 669901
-SHA256 (rust/crates/windows_x86_64_msvc-0.34.0.crate) = d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9
-SIZE (rust/crates/windows_x86_64_msvc-0.34.0.crate) = 669900
SHA256 (rust/crates/windows_x86_64_msvc-0.37.0.crate) = f4dd6dc7df2d84cf7b33822ed5b86318fb1781948e9663bacd047fc9dd52259d
SIZE (rust/crates/windows_x86_64_msvc-0.37.0.crate) = 661993
SHA256 (rust/crates/windows_x86_64_msvc-0.42.2.crate) = 9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0
@@ -1577,6 +1543,8 @@ SHA256 (Imberflur-wgpu-profiler-wgpu-0.8_GH0.tar.gz) = e30fa6d177db9c77c8f938a0b
SIZE (Imberflur-wgpu-profiler-wgpu-0.8_GH0.tar.gz) = 14759
SHA256 (fdehau-tui-rs-54b841fab6cfdb38e8dc1382176e965787964b4c_GH0.tar.gz) = 920e26b3816975b77f9111206aec5859560141e222bef2d539c05894798ac4ba
SIZE (fdehau-tui-rs-54b841fab6cfdb38e8dc1382176e965787964b4c_GH0.tar.gz) = 1531288
+SHA256 (MSxDOS-ntapi-9f56b149c9e25796739157c0fce3e0007a7de6eb_GH0.tar.gz) = 8fb5cffa8c7196189f5cf4483275c803598620cc6e03fdc875102f7fa3986767
+SIZE (MSxDOS-ntapi-9f56b149c9e25796739157c0fce3e0007a7de6eb_GH0.tar.gz) = 186924
SHA256 (juliancoffee-fluent-rs-929cf9512de121cce9b4cbf1cb860cd3294a1cd9_GH0.tar.gz) = b1666caeb396b844788a732346e8ab6e555190978efe7a6386469040959acebf
SIZE (juliancoffee-fluent-rs-929cf9512de121cce9b4cbf1cb860cd3294a1cd9_GH0.tar.gz) = 351345
SHA256 (veloren-auth-fb3dcbc4962b367253f8f2f92760ef44d2679c9a_GL0.tar.gz) = b2d4945ddb39ad719985b189fb720350ab86df94332f362a0e4477d7a2a774a3
@@ -1597,5 +1565,5 @@ SHA256 (hasenbanck-egui_wgpu_backend-63a002c6a9b6c016e45806dd065864431caab621_GH
SIZE (hasenbanck-egui_wgpu_backend-63a002c6a9b6c016e45806dd065864431caab621_GH0.tar.gz) = 11500
SHA256 (yoanlcq-vek-84d5cb65841d46599a986c5477341bea4456be26_GH0.tar.gz) = f6fc0b8e9b1290729ea94865be84a8c47846e49e3c193dab700940e1452d2fed
SIZE (yoanlcq-vek-84d5cb65841d46599a986c5477341bea4456be26_GH0.tar.gz) = 90485
-SHA256 (veloren-veloren-95a38ff8f60d8895461971eb1266a5530cca8cce_GL0.tar.gz) = 37a2cd42a300c8c0f3fe4a794cb18d2c3c86114c53d0f3a0c50ae038092c59ba
-SIZE (veloren-veloren-95a38ff8f60d8895461971eb1266a5530cca8cce_GL0.tar.gz) = 263353066
+SHA256 (veloren-veloren-db860de51760d94e1f501390c5e1f472d89a8db7_GL0.tar.gz) = f26615339514f26bdd85d643266a3f4eb5f627d1c15931f70fe3f4d053a86b6f
+SIZE (veloren-veloren-db860de51760d94e1f501390c5e1f472d89a8db7_GL0.tar.gz) = 263372562
diff --git a/games/veloren-weekly/files/patch-rust-1.69 b/games/veloren-weekly/files/patch-rust-1.69
new file mode 100644
index 000000000000..a1778a37bea3
--- /dev/null
+++ b/games/veloren-weekly/files/patch-rust-1.69
@@ -0,0 +1,475 @@
+Revert https://gitlab.com/veloren/veloren/-/commit/95bca5418af7
+until lang/rust >= 1.70 update e.g.,
+
+https://github.com/rust-lang/rust/commit/8a7ca936e61d
+
+error[E0658]: use of unstable library feature 'once_cell'
+ --> voxygen/src/scene/terrain.rs:620:20
+ |
+620 | let init = core::cell::OnceCell::new();
+ | ^^^^^^^^^^^^^^^^^^^^
+ |
+ = note: see issue #74465 <https://github.com/rust-lang/rust/issues/74465> for more information
+ = help: add `#![feature(once_cell)]` to the crate attributes to enable
+
+error[E0658]: use of unstable library feature 'once_cell'
+ --> voxygen/src/scene/terrain.rs:620:20
+ |
+620 | let init = core::cell::OnceCell::new();
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^
+ |
+ = note: see issue #74465 <https://github.com/rust-lang/rust/issues/74465> for more information
+ = help: add `#![feature(once_cell)]` to the crate attributes to enable
+
+error[E0658]: use of unstable library feature 'once_cell'
+ --> voxygen/src/scene/terrain.rs:656:39
+ |
+656 | Box::new(move |renderer| init.get_or_init(|| closure(renderer)).clone())
+ | ^^^^^^^^^^^
+ |
+ = note: see issue #74465 <https://github.com/rust-lang/rust/issues/74465> for more information
+ = help: add `#![feature(once_cell)]` to the crate attributes to enable
+
+diff --git client/src/bin/bot/main.rs client/src/bin/bot/main.rs
+index ca7298d81b7e..f1c31e449b71 100644
+--- client/src/bin/bot/main.rs
++++ client/src/bin/bot/main.rs
+@@ -117,6 +117,7 @@ impl BotClient {
+ pub fn handle_register(&mut self, prefix: &str, password: &str, count: Option<usize>) {
+ let usernames = match count {
+ Some(n) => (0..n)
++ .into_iter()
+ .map(|i| format!("{}{:03}", prefix, i))
+ .collect::<Vec<String>>(),
+ None => vec![prefix.to_string()],
+diff --git common/src/comp/agent.rs common/src/comp/agent.rs
+index 6fd73d380dae..39f9d232052e 100644
+--- common/src/comp/agent.rs
++++ common/src/comp/agent.rs
+@@ -503,7 +503,7 @@ impl Timer {
+ /// Reset the timer for the given action, returning true if the timer was
+ /// not already reset.
+ pub fn reset(&mut self, action: TimerAction) -> bool {
+- self.action_starts[Self::idx_for(action)].take().is_some()
++ std::mem::replace(&mut self.action_starts[Self::idx_for(action)], None).is_some()
+ }
+
+ /// Start the timer for the given action, even if it was already started.
+diff --git common/src/comp/inventory/item/mod.rs common/src/comp/inventory/item/mod.rs
+index 2716aac923e3..06c9a49a21bf 100644
+--- common/src/comp/inventory/item/mod.rs
++++ common/src/comp/inventory/item/mod.rs
+@@ -330,7 +330,7 @@ impl ItemKind {
+ // Used for inventory sorting, what comes before the first colon (:) is used as
+ // a broader category
+ pub fn get_itemkind_string(&self) -> String {
+- match self {
++ let result = match self {
+ // Using tool and toolkind to sort tools by kind
+ ItemKind::Tool(tool) => format!("Tool: {:?}", tool.kind),
+ ItemKind::ModularComponent(modular_component) => {
+@@ -346,7 +346,8 @@ impl ItemKind {
+ ItemKind::Utility { kind } => format!("Utility: {:?}", kind),
+ ItemKind::Ingredient { descriptor } => format!("Ingredient: {}", descriptor),
+ ItemKind::TagExamples { item_ids } => format!("TagExamples: {:?}", item_ids),
+- }
++ };
++ result
+ }
+
+ pub fn has_durability(&self) -> bool {
+diff --git common/src/comp/skillset/mod.rs common/src/comp/skillset/mod.rs
+index 6b14321b5e65..21bb5ebda3fd 100644
+--- common/src/comp/skillset/mod.rs
++++ common/src/comp/skillset/mod.rs
+@@ -81,6 +81,7 @@ lazy_static! {
+ .map(|skill| {
+ let max_level = skill.max_level();
+ (1..=max_level)
++ .into_iter()
+ .map(|level| skill.skill_cost(level))
+ .sum::<u16>()
+ })
+diff --git common/src/skillset_builder.rs common/src/skillset_builder.rs
+index d330f2c834b7..f3df4511f1aa 100644
+--- common/src/skillset_builder.rs
++++ common/src/skillset_builder.rs
+@@ -112,7 +112,8 @@ impl SkillSetBuilder {
+ pub fn with_skill(mut self, skill: Skill, level: u16) -> Self {
+ let Some(group) = skill.skill_group_kind() else {
+ let err = format!(
+- "Tried to add skill: {skill:?} which does not have an associated skill group."
++ "Tried to add skill: {:?} which does not have an associated skill group.",
++ skill
+ );
+ common_base::dev_panic!(err, or return self);
+ };
+@@ -120,7 +121,8 @@ impl SkillSetBuilder {
+ let SkillSetBuilder(ref mut skill_set) = self;
+ if skill_is_applied(skill_set, skill, level) {
+ let err = format!(
+- "Tried to add skill: {skill:?} with level {level:?} which is already applied"
++ "Tried to add skill: {:?} with level {:?} which is already applied",
++ skill, level,
+ );
+ common_base::dev_panic!(err, or return self);
+ }
+@@ -133,8 +135,9 @@ impl SkillSetBuilder {
+ }
+ if !skill_is_applied(skill_set, skill, level) {
+ let err = format!(
+- "Failed to add skill: {skill:?}. Verify that it has the appropriate skill group \
+- available and meets all prerequisite skills."
++ "Failed to add skill: {:?}. Verify that it has the appropriate skill group \
++ available and meets all prerequisite skills.",
++ skill
+ );
+ common_base::dev_panic!(err);
+ }
+diff --git common/src/terrain/biome.rs common/src/terrain/biome.rs
+index c40956863fb0..8b6c83c8b4b3 100644
+--- common/src/terrain/biome.rs
++++ common/src/terrain/biome.rs
+@@ -1,9 +1,8 @@
+ use serde::{Deserialize, Serialize};
+ use strum::EnumIter;
+
+-#[derive(Default, Debug, Copy, Clone, Serialize, Deserialize, PartialEq, Eq, Hash, EnumIter)]
++#[derive(Debug, Copy, Clone, Serialize, Deserialize, PartialEq, Eq, Hash, EnumIter)]
+ pub enum BiomeKind {
+- #[default]
+ Void,
+ Lake,
+ Grassland,
+@@ -17,3 +16,7 @@ pub enum BiomeKind {
+ Savannah,
+ Taiga,
+ }
++
++impl Default for BiomeKind {
++ fn default() -> BiomeKind { BiomeKind::Void }
++}
+diff --git common/src/terrain/site.rs common/src/terrain/site.rs
+index 8358daaf2d24..fdcee627fd8c 100644
+--- common/src/terrain/site.rs
++++ common/src/terrain/site.rs
+@@ -1,12 +1,11 @@
+ use serde::{Deserialize, Serialize};
+
+-#[derive(Default, Debug, Copy, Clone, Serialize, Deserialize, PartialEq, Eq)]
++#[derive(Debug, Copy, Clone, Serialize, Deserialize, PartialEq, Eq)]
+ pub enum SiteKindMeta {
+ Dungeon(DungeonKindMeta),
+ Cave,
+ Settlement(SettlementKindMeta),
+ Castle,
+- #[default]
+ Void,
+ }
+
+@@ -23,3 +22,7 @@ pub enum SettlementKindMeta {
+ DesertCity,
+ SavannahPit,
+ }
++
++impl Default for SiteKindMeta {
++ fn default() -> SiteKindMeta { SiteKindMeta::Void }
++}
+diff --git common/src/typed.rs common/src/typed.rs
+index 752c8d908dcf..ea7d97f66a19 100644
+--- common/src/typed.rs
++++ common/src/typed.rs
+@@ -321,7 +321,7 @@ macro_rules! make_case_elim {
+ elim.reduce(((self,), context))
+ }
+
+- pub fn elim_case_pure<'a, Type>(&self, cases: &'a $mod::PureCases<Type>) -> &'a Type
++ pub fn elim_case_pure<'a, 'b, Type>(&'a self, cases: &'b $mod::PureCases<Type>) -> &'b Type
+ {
+ let (expr, ()) = self.elim(cases, ());
+ expr
+@@ -425,7 +425,7 @@ macro_rules! make_proj_elim {
+ elim.reduce(((self,), context))
+ }
+
+- pub fn elim_proj_pure<'a, Type>(&self, cases: &'a $mod::PureProj<Type>) -> &'a Type
++ pub fn elim_proj_pure<'a, 'b, Type>(&'a self, cases: &'b $mod::PureProj<Type>) -> &'b Type
+ {
+ let (expr, ()) = self.elim(cases, ());
+ expr
+diff --git rust-toolchain rust-toolchain
+index b27a258d1a80..c7c621708744 100644
+--- rust-toolchain
++++ rust-toolchain
+@@ -1 +1 @@
+-nightly-2023-04-20
++nightly-2022-11-28
+diff --git server/src/events/inventory_manip.rs server/src/events/inventory_manip.rs
+index f86f23d31fba..bb62a7ba0305 100644
+--- server/src/events/inventory_manip.rs
++++ server/src/events/inventory_manip.rs
+@@ -786,6 +786,7 @@ pub fn handle_inventory(server: &mut Server, entity: EcsEntity, manip: comp::Inv
+ })
+ .and_then(|r| {
+ let items = (0..amount)
++ .into_iter()
+ .filter_map(|_| {
+ r.craft_simple(
+ &mut inventory,
+diff --git server/src/sys/chunk_serialize.rs server/src/sys/chunk_serialize.rs
+index 4226ea0429f3..0810aa9951a9 100644
+--- server/src/sys/chunk_serialize.rs
++++ server/src/sys/chunk_serialize.rs
+@@ -110,6 +110,7 @@ impl<'a> System<'a> for Sys {
+ .get_key_arc_real(chunk_key)
+ .map(|chunk| (Arc::clone(chunk), chunk_key, meta))
+ })
++ .into_iter()
+ .peekable();
+
+ while chunks_iter.peek().is_some() {
+diff --git voxygen/src/lib.rs voxygen/src/lib.rs
+index bee0a875709e..ccb5eb34d3e5 100644
+--- voxygen/src/lib.rs
++++ voxygen/src/lib.rs
+@@ -6,6 +6,7 @@
+ array_methods,
+ array_zip,
+ drain_filter,
++ once_cell,
+ trait_alias,
+ option_get_or_insert_default,
+ map_try_insert,
+diff --git voxygen/src/render/mod.rs voxygen/src/render/mod.rs
+index 9764930c0cc2..d77cf8806a5b 100644
+--- voxygen/src/render/mod.rs
++++ voxygen/src/render/mod.rs
+@@ -70,13 +70,12 @@ pub trait Vertex: Clone + bytemuck::Pod {
+
+ use serde::{Deserialize, Serialize};
+ /// Anti-aliasing modes
+-#[derive(Default, PartialEq, Eq, Clone, Copy, Debug, Serialize, Deserialize)]
++#[derive(PartialEq, Eq, Clone, Copy, Debug, Serialize, Deserialize)]
+ pub enum AaMode {
+ /// Fast approximate antialiasing.
+ ///
+ /// This is a screen-space technique, and therefore works fine with greedy
+ /// meshing.
+- #[default]
+ Fxaa,
+ /// Multisampling AA, up to 4 samples per pixel.
+ ///
+@@ -122,8 +121,12 @@ impl AaMode {
+ }
+ }
+
++impl Default for AaMode {
++ fn default() -> Self { AaMode::Fxaa }
++}
++
+ /// Cloud modes
+-#[derive(Default, PartialEq, Eq, Clone, Copy, Debug, Serialize, Deserialize)]
++#[derive(PartialEq, Eq, Clone, Copy, Debug, Serialize, Deserialize)]
+ pub enum CloudMode {
+ /// No clouds. As cheap as it gets.
+ None,
+@@ -141,7 +144,6 @@ pub enum CloudMode {
+ Ultra,
+ /// Lots of detail with good-but-costly derivation of parameters.
+ #[serde(other)]
+- #[default]
+ High,
+ }
+
+@@ -149,8 +151,12 @@ impl CloudMode {
+ pub fn is_enabled(&self) -> bool { *self != CloudMode::None }
+ }
+
++impl Default for CloudMode {
++ fn default() -> Self { CloudMode::High }
++}
++
+ /// Fluid modes
+-#[derive(Default, PartialEq, Eq, Clone, Copy, Debug, Serialize, Deserialize)]
++#[derive(PartialEq, Eq, Clone, Copy, Debug, Serialize, Deserialize)]
+ pub enum FluidMode {
+ /// "Low" water. This water implements no waves, no reflections, no
+ /// diffraction, and no light attenuation through water. As a result,
+@@ -174,26 +180,32 @@ pub enum FluidMode {
+ /// which causes attenuation to be computed incorrectly; this can be
+ /// addressed by using shadow maps (at least for terrain).
+ #[serde(other)]
+- #[default]
+ Medium,
+ }
+
++impl Default for FluidMode {
++ fn default() -> Self { FluidMode::Medium }
++}
++
+ /// Reflection modes
+-#[derive(Default, PartialEq, Eq, Clone, Copy, Debug, Serialize, Deserialize)]
++#[derive(PartialEq, Eq, Clone, Copy, Debug, Serialize, Deserialize)]
+ pub enum ReflectionMode {
+ /// No or minimal reflections.
+ Low,
+ /// High quality reflections with screen-space raycasting and
+ /// all the bells & whistles.
+- #[default]
+ High,
+ // Medium quality screen-space reflections.
+ #[serde(other)]
+ Medium,
+ }
+
++impl Default for ReflectionMode {
++ fn default() -> Self { ReflectionMode::High }
++}
++
+ /// Lighting modes
+-#[derive(Default, PartialEq, Eq, Clone, Copy, Debug, Serialize, Deserialize)]
++#[derive(PartialEq, Eq, Clone, Copy, Debug, Serialize, Deserialize)]
+ pub enum LightingMode {
+ /// Ashikhmin-Shirley BRDF lighting model. Attempts to generate a
+ /// physically plausible (to some extent) lighting distribution.
+@@ -210,10 +222,13 @@ pub enum LightingMode {
+ /// Standard Blinn-Phong shading, combing Lambertian diffuse reflections and
+ /// specular highlights.
+ #[serde(other)]
+- #[default]
+ BlinnPhong,
+ }
+
++impl Default for LightingMode {
++ fn default() -> Self { LightingMode::BlinnPhong }
++}
++
+ /// Shadow map settings.
+ #[derive(PartialEq, Clone, Copy, Debug, Serialize, Deserialize)]
+ pub struct ShadowMapMode {
+@@ -299,7 +314,7 @@ impl From<PresentMode> for wgpu::PresentMode {
+
+ /// Bloom factor
+ /// Controls fraction of output image luminosity that is blurred bloom
+-#[derive(Default, PartialEq, Clone, Copy, Debug, Serialize, Deserialize)]
++#[derive(PartialEq, Clone, Copy, Debug, Serialize, Deserialize)]
+ pub enum BloomFactor {
+ Low,
+ High,
+@@ -307,10 +322,13 @@ pub enum BloomFactor {
+ Custom(f32),
+ // other variant has to be placed last
+ #[serde(other)]
+- #[default]
+ Medium,
+ }
+
++impl Default for BloomFactor {
++ fn default() -> Self { Self::Medium }
++}
++
+ impl BloomFactor {
+ /// Fraction of output image luminosity that is blurred bloom
+ pub fn fraction(self) -> f32 {
+diff --git voxygen/src/window.rs voxygen/src/window.rs
+index 0713ad4a0eaf..fd1e62ae04fe 100644
+--- voxygen/src/window.rs
++++ voxygen/src/window.rs
+@@ -1359,14 +1359,16 @@ impl Window {
+ pub fn scale_factor(&self) -> f64 { self.scale_factor }
+ }
+
+-#[derive(Default, Copy, Clone, Hash, Eq, PartialEq, Debug, Serialize, Deserialize)]
++#[derive(Copy, Clone, Hash, Eq, PartialEq, Debug, Serialize, Deserialize)]
+ pub enum FullscreenMode {
+ Exclusive,
+ #[serde(other)]
+- #[default]
+ Borderless,
+ }
+
++impl Default for FullscreenMode {
++ fn default() -> Self { FullscreenMode::Borderless }
++}
+ #[derive(PartialEq, Eq, Clone, Copy, Debug, Serialize, Deserialize)]
+ #[serde(default)]
+ pub struct FullScreenSettings {
+diff --git world/examples/chunk_compression_benchmarks.rs world/examples/chunk_compression_benchmarks.rs
+index 46727195b953..5cf915701c89 100644
+--- world/examples/chunk_compression_benchmarks.rs
++++ world/examples/chunk_compression_benchmarks.rs
+@@ -1190,7 +1190,10 @@ fn main() {
+ if !SKIP_VOLGRID {
+ let _ = volgrid.insert(spiralpos, Arc::new(chunk));
+
+- if (1usize..20).any(|i| (2 * i + 1) * (2 * i + 1) == count) {
++ if (1usize..20)
++ .into_iter()
++ .any(|i| (2 * i + 1) * (2 * i + 1) == count)
++ {
+ use std::fs::File;
+ let mut f = File::create(&format!("chonkjpegs/{}_{}.jpg", sitename, count))
+ .unwrap();
+diff --git world/examples/world_block_statistics.rs world/examples/world_block_statistics.rs
+index a0bf81309fbe..bd478b75dd82 100644
+--- world/examples/world_block_statistics.rs
++++ world/examples/world_block_statistics.rs
+@@ -85,9 +85,12 @@ fn generate(db_path: &str, ymin: Option<i32>, ymax: Option<i32>) -> Result<(), B
+ let (tx, rx) = mpsc::channel();
+ rayon::spawn(move || {
+ let coords: Vec<_> = (ymin.unwrap_or(1)..ymax.unwrap_or(sz.y as i32))
++ .into_iter()
+ .flat_map(move |y| {
+ let tx = tx.clone();
+- (1..sz.x as i32).map(move |x| (tx.clone(), x, y))
++ (1..sz.x as i32)
++ .into_iter()
++ .map(move |x| (tx.clone(), x, y))
+ })
+ .collect();
+ coords.into_par_iter().for_each(|(tx, x, y)| {
+diff --git world/src/sim/util.rs world/src/sim/util.rs
+index f94d584b2f0c..bc7d49a4a684 100644
+--- world/src/sim/util.rs
++++ world/src/sim/util.rs
+@@ -218,6 +218,7 @@ pub fn local_cells(map_size_lg: MapSizeLg, posi: usize) -> impl Clone + Iterator
+ let grid_size = 3i32;
+ let grid_bounds = 2 * grid_size + 1;
+ (0..grid_bounds * grid_bounds)
++ .into_iter()
+ .map(move |index| {
+ Vec2::new(
+ pos.x + (index % grid_bounds) - grid_size,
+diff --git world/src/site2/plot/dungeon.rs world/src/site2/plot/dungeon.rs
+index 1b092edcc926..b44b9df3f89f 100644
+--- world/src/site2/plot/dungeon.rs
++++ world/src/site2/plot/dungeon.rs
+@@ -948,7 +948,7 @@ pub fn inscribed_polystar(
+ use std::f32::consts::TAU;
+ let rpos: Vec2<f32> = pos.xy().as_() - origin.as_();
+ let is_border = rpos.magnitude_squared() > (radius - 2.0).powi(2);
+- let is_line = (0..sides).any(|i| {
++ let is_line = (0..sides).into_iter().any(|i| {
+ let f = |j: f32| {
+ let t = j * TAU / sides as f32;
+ radius * Vec2::new(t.cos(), t.sin())
+diff --git world/src/site2/plot/gnarling.rs world/src/site2/plot/gnarling.rs
+index 837390d8c6d5..9606622410ab 100644
+--- world/src/site2/plot/gnarling.rs
++++ world/src/site2/plot/gnarling.rs
+@@ -112,6 +112,7 @@ impl GnarlingFortification {
+
+ let num_points = (wall_radius / 15).max(5);
+ let outer_wall_corners = (0..num_points)
++ .into_iter()
+ .map(|a| {
+ let angle = a as f32 / num_points as f32 * core::f32::consts::TAU;
+ Vec2::new(angle.cos(), angle.sin()).map(|a| (a * wall_radius as f32) as i32)
+@@ -447,6 +448,7 @@ impl Structure for GnarlingFortification {
+ const SECTIONS_PER_WALL_SEGMENT: usize = 8;
+
+ (0..(SECTIONS_PER_WALL_SEGMENT as i32))
++ .into_iter()
+ .map(move |a| {
+ let get_point =
+ |a| point + (next_point - point) * a / (SECTIONS_PER_WALL_SEGMENT as i32);