rust: docs: fix logo replacement
authorMiguel Ojeda <ojeda@kernel.org>
Wed, 18 Oct 2023 15:55:27 +0000 (17:55 +0200)
committerMiguel Ojeda <ojeda@kernel.org>
Thu, 19 Oct 2023 14:40:00 +0000 (16:40 +0200)
The static files placement by `rustdoc` changed in Rust 1.67.0 [1],
but the custom code we have to replace the logo in the generated
HTML files did not get updated.

Thus update it to have the Linux logo again in the output.

Hopefully `rustdoc` will eventually support a custom logo from
a local file [2], so that we do not need to maintain this hack
on our side.

Link: https://github.com/rust-lang/rust/pull/101702
Link: https://github.com/rust-lang/rfcs/pull/3226
Fixes: 3ed03f4da06e ("rust: upgrade to Rust 1.68.2")
Cc: stable@vger.kernel.org
Tested-by: Benno Lossin <benno.lossin@proton.me>
Reviewed-by: Andreas Hindborg <a.hindborg@samsung.com>
Link: https://lore.kernel.org/r/20231018155527.1015059-1-ojeda@kernel.org
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
rust/Makefile

index 1e78c82a18a87dfcd3c094183d8b77fc09cb9689..7dbf9abe0d0197fe88cece75e4c4d2f83c357174 100644 (file)
@@ -93,15 +93,14 @@ quiet_cmd_rustdoc = RUSTDOC $(if $(rustdoc_host),H, ) $<
 # and then retouch the generated files.
 rustdoc: rustdoc-core rustdoc-macros rustdoc-compiler_builtins \
     rustdoc-alloc rustdoc-kernel
-       $(Q)cp $(srctree)/Documentation/images/logo.svg $(rustdoc_output)
-       $(Q)cp $(srctree)/Documentation/images/COPYING-logo $(rustdoc_output)
+       $(Q)cp $(srctree)/Documentation/images/logo.svg $(rustdoc_output)/static.files/
+       $(Q)cp $(srctree)/Documentation/images/COPYING-logo $(rustdoc_output)/static.files/
        $(Q)find $(rustdoc_output) -name '*.html' -type f -print0 | xargs -0 sed -Ei \
-               -e 's:rust-logo\.svg:logo.svg:g' \
-               -e 's:rust-logo\.png:logo.svg:g' \
-               -e 's:favicon\.svg:logo.svg:g' \
-               -e 's:<link rel="alternate icon" type="image/png" href="[./]*favicon-(16x16|32x32)\.png">::g'
-       $(Q)echo '.logo-container > img { object-fit: contain; }' \
-               >> $(rustdoc_output)/rustdoc.css
+               -e 's:rust-logo-[0-9a-f]+\.svg:logo.svg:g' \
+               -e 's:favicon-[0-9a-f]+\.svg:logo.svg:g' \
+               -e 's:<link rel="alternate icon" type="image/png" href="[/.]+/static\.files/favicon-(16x16|32x32)-[0-9a-f]+\.png">::g'
+       $(Q)for f in $(rustdoc_output)/static.files/rustdoc-*.css; do \
+               echo ".logo-container > img { object-fit: contain; }" >> $$f; done
 
 rustdoc-macros: private rustdoc_host = yes
 rustdoc-macros: private rustc_target_flags = --crate-type proc-macro \