diff options
Diffstat (limited to '')
-rw-r--r-- | debian/patches/d-0002-mdbook-strip-embedded-libs.patch | 420 |
1 files changed, 420 insertions, 0 deletions
diff --git a/debian/patches/d-0002-mdbook-strip-embedded-libs.patch b/debian/patches/d-0002-mdbook-strip-embedded-libs.patch new file mode 100644 index 000000000..3916871a2 --- /dev/null +++ b/debian/patches/d-0002-mdbook-strip-embedded-libs.patch @@ -0,0 +1,420 @@ +From: Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net> +Date: Sat, 2 Oct 2021 01:08:00 +0100 +Subject: d-0002-mdbook-strip-embedded-libs + +Comment: Use https://github.com/infinity0/mdBook/tree/debian to help you rebase the patch on top of a newer version. . Make sure the paths here match the ones in debian/rust-doc.links +--- + src/tools/linkchecker/main.rs | 28 ++++++- + vendor/mdbook/src/book/init.rs | 6 -- + .../src/renderer/html_handlebars/hbs_renderer.rs | 80 ++----------------- + .../mdbook/src/renderer/html_handlebars/search.rs | 2 - + vendor/mdbook/src/theme/index.hbs | 93 +--------------------- + vendor/mdbook/src/theme/mod.rs | 27 ------- + vendor/mdbook/src/theme/searcher/mod.rs | 2 - + 7 files changed, 35 insertions(+), 203 deletions(-) + +diff --git a/src/tools/linkchecker/main.rs b/src/tools/linkchecker/main.rs +index a7c78d8..22927f8 100644 +--- a/src/tools/linkchecker/main.rs ++++ b/src/tools/linkchecker/main.rs +@@ -183,7 +183,17 @@ impl Checker { + for entry in t!(dir.read_dir()).map(|e| t!(e)) { + let path = entry.path(); + // Goes through symlinks +- let metadata = t!(fs::metadata(&path)); ++ let metadata = fs::metadata(&path); ++ if let Err(err) = metadata { ++ if let Ok(target) = fs::read_link(&path) { ++ if target.starts_with("/usr/share") { ++ // broken symlink to /usr/share, ok for our Debian build ++ return; ++ } ++ } ++ panic!("error at file {:?} while walking - {:?}", path, err) ++ } ++ let metadata = t!(metadata); + if metadata.is_dir() { + self.walk(&path, report); + } else { +@@ -196,7 +206,15 @@ impl Checker { + fn check(&mut self, file: &Path, report: &mut Report) { + let (pretty_path, entry) = self.load_file(file, report); + let source = match entry { +- FileEntry::Missing => panic!("missing file {:?} while walking", file), ++ FileEntry::Missing => { ++ if let Ok(target) = fs::read_link(&file) { ++ if target.starts_with("/usr/share") { ++ // broken symlink to /usr/share, ok for our Debian build ++ return; ++ } ++ } ++ panic!("missing file {:?} while walking", file) ++ } + FileEntry::Dir => unreachable!("never with `check` path"), + FileEntry::OtherFile => return, + FileEntry::Redirect { .. } => return, +@@ -261,6 +279,12 @@ impl Checker { + let (target_pretty_path, target_entry) = self.load_file(&path, report); + let (target_source, target_ids) = match target_entry { + FileEntry::Missing => { ++ if let Ok(target) = fs::read_link(&path) { ++ if target.starts_with("/usr/share") { ++ // broken symlink to /usr/share, ok for our Debian build ++ return; ++ } ++ } + if is_exception(file, &target_pretty_path) { + report.links_ignored_exception += 1; + } else { +diff --git a/vendor/mdbook/src/book/init.rs b/vendor/mdbook/src/book/init.rs +index 264c113..2b0ff3a 100644 +--- a/vendor/mdbook/src/book/init.rs ++++ b/vendor/mdbook/src/book/init.rs +@@ -151,12 +151,6 @@ impl BookBuilder { + let mut js = File::create(themedir.join("book.js"))?; + js.write_all(theme::JS)?; + +- let mut highlight_css = File::create(themedir.join("highlight.css"))?; +- highlight_css.write_all(theme::HIGHLIGHT_CSS)?; +- +- let mut highlight_js = File::create(themedir.join("highlight.js"))?; +- highlight_js.write_all(theme::HIGHLIGHT_JS)?; +- + Ok(()) + } + +diff --git a/vendor/mdbook/src/renderer/html_handlebars/hbs_renderer.rs b/vendor/mdbook/src/renderer/html_handlebars/hbs_renderer.rs +index b933a35..09b4a7a 100644 +--- a/vendor/mdbook/src/renderer/html_handlebars/hbs_renderer.rs ++++ b/vendor/mdbook/src/renderer/html_handlebars/hbs_renderer.rs +@@ -3,7 +3,7 @@ use crate::config::{BookConfig, Config, HtmlConfig, Playground, RustEdition}; + use crate::errors::*; + use crate::renderer::html_handlebars::helpers; + use crate::renderer::{RenderContext, Renderer}; +-use crate::theme::{self, playground_editor, Theme}; ++use crate::theme::{self, Theme}; + use crate::utils; + + use std::borrow::Cow; +@@ -11,6 +11,7 @@ use std::collections::BTreeMap; + use std::collections::HashMap; + use std::fs::{self, File}; + use std::path::{Path, PathBuf}; ++use std::os::unix::fs::symlink; + + use crate::utils::fs::get_404_output_file; + use handlebars::Handlebars; +@@ -232,80 +233,13 @@ impl HtmlHandlebars { + if let Some(contents) = &theme.favicon_svg { + write_file(destination, "favicon.svg", contents)?; + } +- write_file(destination, "highlight.css", &theme.highlight_css)?; + write_file(destination, "tomorrow-night.css", &theme.tomorrow_night_css)?; + write_file(destination, "ayu-highlight.css", &theme.ayu_highlight_css)?; +- write_file(destination, "highlight.js", &theme.highlight_js)?; +- write_file(destination, "clipboard.min.js", &theme.clipboard_js)?; +- write_file( +- destination, +- "FontAwesome/css/font-awesome.css", +- theme::FONT_AWESOME, +- )?; +- write_file( +- destination, +- "FontAwesome/fonts/fontawesome-webfont.eot", +- theme::FONT_AWESOME_EOT, +- )?; +- write_file( +- destination, +- "FontAwesome/fonts/fontawesome-webfont.svg", +- theme::FONT_AWESOME_SVG, +- )?; +- write_file( +- destination, +- "FontAwesome/fonts/fontawesome-webfont.ttf", +- theme::FONT_AWESOME_TTF, +- )?; +- write_file( +- destination, +- "FontAwesome/fonts/fontawesome-webfont.woff", +- theme::FONT_AWESOME_WOFF, +- )?; +- write_file( +- destination, +- "FontAwesome/fonts/fontawesome-webfont.woff2", +- theme::FONT_AWESOME_WOFF2, +- )?; +- write_file( +- destination, +- "FontAwesome/fonts/FontAwesome.ttf", +- theme::FONT_AWESOME_TTF, +- )?; +- if html_config.copy_fonts { +- write_file(destination, "fonts/fonts.css", theme::fonts::CSS)?; +- for (file_name, contents) in theme::fonts::LICENSES.iter() { +- write_file(destination, file_name, contents)?; +- } +- for (file_name, contents) in theme::fonts::OPEN_SANS.iter() { +- write_file(destination, file_name, contents)?; +- } +- write_file( +- destination, +- theme::fonts::SOURCE_CODE_PRO.0, +- theme::fonts::SOURCE_CODE_PRO.1, +- )?; +- } +- +- let playground_config = &html_config.playground; +- +- // Ace is a very large dependency, so only load it when requested +- if playground_config.editable && playground_config.copy_js { +- // Load the editor +- write_file(destination, "editor.js", playground_editor::JS)?; +- write_file(destination, "ace.js", playground_editor::ACE_JS)?; +- write_file(destination, "mode-rust.js", playground_editor::MODE_RUST_JS)?; +- write_file( +- destination, +- "theme-dawn.js", +- playground_editor::THEME_DAWN_JS, +- )?; +- write_file( +- destination, +- "theme-tomorrow_night.js", +- playground_editor::THEME_TOMORROW_NIGHT_JS, +- )?; +- } ++ symlink("/usr/share/fonts-font-awesome/css/font-awesome.min.css", destination.join("css/font-awesome.min.css"))?; ++ symlink("/usr/share/fonts-font-awesome/fonts", destination.join("fonts"))?; ++ symlink("/usr/share/javascript/highlight.js/styles/atelier-dune-light.css", destination.join("highlight.css"))?; ++ symlink("/usr/share/javascript/highlight.js/highlight.js", destination.join("highlight.js"))?; ++ symlink("/usr/share/javascript/mathjax/MathJax.js", destination.join("MathJax.js"))?; + + Ok(()) + } +diff --git a/vendor/mdbook/src/renderer/html_handlebars/search.rs b/vendor/mdbook/src/renderer/html_handlebars/search.rs +index c3b944c..d4bbe35 100644 +--- a/vendor/mdbook/src/renderer/html_handlebars/search.rs ++++ b/vendor/mdbook/src/renderer/html_handlebars/search.rs +@@ -52,8 +52,6 @@ pub fn create_files(search_config: &Search, destination: &Path, book: &Book) -> + format!("Object.assign(window.search, {});", index).as_bytes(), + )?; + utils::fs::write_file(destination, "searcher.js", searcher::JS)?; +- utils::fs::write_file(destination, "mark.min.js", searcher::MARK_JS)?; +- utils::fs::write_file(destination, "elasticlunr.min.js", searcher::ELASTICLUNR_JS)?; + debug!("Copying search files ✓"); + } + +diff --git a/vendor/mdbook/src/theme/index.hbs b/vendor/mdbook/src/theme/index.hbs +index 18d984a..4a0e2d1 100644 +--- a/vendor/mdbook/src/theme/index.hbs ++++ b/vendor/mdbook/src/theme/index.hbs +@@ -34,10 +34,7 @@ + {{/if}} + + <!-- Fonts --> +- <link rel="stylesheet" href="{{ path_to_root }}FontAwesome/css/font-awesome.css"> +- {{#if copy_fonts}} +- <link rel="stylesheet" href="{{ path_to_root }}fonts/fonts.css"> +- {{/if}} ++ <link rel="stylesheet" href="{{ path_to_root }}css/font-awesome.min.css"> + + <!-- Highlight.js Stylesheets --> + <link rel="stylesheet" href="{{ path_to_root }}highlight.css"> +@@ -51,7 +48,7 @@ + + {{#if mathjax_support}} + <!-- MathJax --> +- <script async type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> ++ <script async type="text/javascript" src="MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + {{/if}} + </head> + <body> +@@ -61,46 +58,6 @@ + var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "{{ preferred_dark_theme }}" : "{{ default_theme }}"; + </script> + +- <!-- Work around some values being stored in localStorage wrapped in quotes --> +- <script type="text/javascript"> +- try { +- var theme = localStorage.getItem('mdbook-theme'); +- var sidebar = localStorage.getItem('mdbook-sidebar'); +- +- if (theme.startsWith('"') && theme.endsWith('"')) { +- localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1)); +- } +- +- if (sidebar.startsWith('"') && sidebar.endsWith('"')) { +- localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1)); +- } +- } catch (e) { } +- </script> +- +- <!-- Set the theme before any content is loaded, prevents flash --> +- <script type="text/javascript"> +- var theme; +- try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { } +- if (theme === null || theme === undefined) { theme = default_theme; } +- var html = document.querySelector('html'); +- html.classList.remove('no-js') +- html.classList.remove('{{ default_theme }}') +- html.classList.add(theme); +- html.classList.add('js'); +- </script> +- +- <!-- Hide / unhide sidebar before it is displayed --> +- <script type="text/javascript"> +- var html = document.querySelector('html'); +- var sidebar = 'hidden'; +- if (document.body.clientWidth >= 1080) { +- try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { } +- sidebar = sidebar || 'visible'; +- } +- html.classList.remove('sidebar-visible'); +- html.classList.add("sidebar-" + sidebar); +- </script> +- + <nav id="sidebar" class="sidebar" aria-label="Table of contents"> + <div class="sidebar-scrollbox"> + {{#toc}}{{/toc}} +@@ -238,52 +195,6 @@ + </script> + {{/if}} + +- {{#if google_analytics}} +- <!-- Google Analytics Tag --> +- <script type="text/javascript"> +- var localAddrs = ["localhost", "127.0.0.1", ""]; +- +- // make sure we don't activate google analytics if the developer is +- // inspecting the book locally... +- if (localAddrs.indexOf(document.location.hostname) === -1) { +- (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ +- (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), +- m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) +- })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); +- +- ga('create', '{{google_analytics}}', 'auto'); +- ga('send', 'pageview'); +- } +- </script> +- {{/if}} +- +- {{#if playground_line_numbers}} +- <script type="text/javascript"> +- window.playground_line_numbers = true; +- </script> +- {{/if}} +- +- {{#if playground_copyable}} +- <script type="text/javascript"> +- window.playground_copyable = true; +- </script> +- {{/if}} +- +- {{#if playground_js}} +- <script src="{{ path_to_root }}ace.js" type="text/javascript" charset="utf-8"></script> +- <script src="{{ path_to_root }}editor.js" type="text/javascript" charset="utf-8"></script> +- <script src="{{ path_to_root }}mode-rust.js" type="text/javascript" charset="utf-8"></script> +- <script src="{{ path_to_root }}theme-dawn.js" type="text/javascript" charset="utf-8"></script> +- <script src="{{ path_to_root }}theme-tomorrow_night.js" type="text/javascript" charset="utf-8"></script> +- {{/if}} +- +- {{#if search_js}} +- <script src="{{ path_to_root }}elasticlunr.min.js" type="text/javascript" charset="utf-8"></script> +- <script src="{{ path_to_root }}mark.min.js" type="text/javascript" charset="utf-8"></script> +- <script src="{{ path_to_root }}searcher.js" type="text/javascript" charset="utf-8"></script> +- {{/if}} +- +- <script src="{{ path_to_root }}clipboard.min.js" type="text/javascript" charset="utf-8"></script> + <script src="{{ path_to_root }}highlight.js" type="text/javascript" charset="utf-8"></script> + <script src="{{ path_to_root }}book.js" type="text/javascript" charset="utf-8"></script> + +diff --git a/vendor/mdbook/src/theme/mod.rs b/vendor/mdbook/src/theme/mod.rs +index a1ee18a..d059f01 100644 +--- a/vendor/mdbook/src/theme/mod.rs ++++ b/vendor/mdbook/src/theme/mod.rs +@@ -1,9 +1,5 @@ + #![allow(missing_docs)] + +-pub mod playground_editor; +- +-pub mod fonts; +- + #[cfg(feature = "search")] + pub mod searcher; + +@@ -24,19 +20,8 @@ pub static VARIABLES_CSS: &[u8] = include_bytes!("css/variables.css"); + pub static FAVICON_PNG: &[u8] = include_bytes!("favicon.png"); + pub static FAVICON_SVG: &[u8] = include_bytes!("favicon.svg"); + pub static JS: &[u8] = include_bytes!("book.js"); +-pub static HIGHLIGHT_JS: &[u8] = include_bytes!("highlight.js"); + pub static TOMORROW_NIGHT_CSS: &[u8] = include_bytes!("tomorrow-night.css"); +-pub static HIGHLIGHT_CSS: &[u8] = include_bytes!("highlight.css"); + pub static AYU_HIGHLIGHT_CSS: &[u8] = include_bytes!("ayu-highlight.css"); +-pub static CLIPBOARD_JS: &[u8] = include_bytes!("clipboard.min.js"); +-pub static FONT_AWESOME: &[u8] = include_bytes!("FontAwesome/css/font-awesome.min.css"); +-pub static FONT_AWESOME_EOT: &[u8] = include_bytes!("FontAwesome/fonts/fontawesome-webfont.eot"); +-pub static FONT_AWESOME_SVG: &[u8] = include_bytes!("FontAwesome/fonts/fontawesome-webfont.svg"); +-pub static FONT_AWESOME_TTF: &[u8] = include_bytes!("FontAwesome/fonts/fontawesome-webfont.ttf"); +-pub static FONT_AWESOME_WOFF: &[u8] = include_bytes!("FontAwesome/fonts/fontawesome-webfont.woff"); +-pub static FONT_AWESOME_WOFF2: &[u8] = +- include_bytes!("FontAwesome/fonts/fontawesome-webfont.woff2"); +-pub static FONT_AWESOME_OTF: &[u8] = include_bytes!("FontAwesome/fonts/FontAwesome.otf"); + + /// The `Theme` struct should be used instead of the static variables because + /// the `new()` method will look if the user has a theme directory in their +@@ -57,11 +42,8 @@ pub struct Theme { + pub favicon_png: Option<Vec<u8>>, + pub favicon_svg: Option<Vec<u8>>, + pub js: Vec<u8>, +- pub highlight_css: Vec<u8>, + pub tomorrow_night_css: Vec<u8>, + pub ayu_highlight_css: Vec<u8>, +- pub highlight_js: Vec<u8>, +- pub clipboard_js: Vec<u8>, + } + + impl Theme { +@@ -91,9 +73,6 @@ impl Theme { + theme_dir.join("css/variables.css"), + &mut theme.variables_css, + ), +- (theme_dir.join("highlight.js"), &mut theme.highlight_js), +- (theme_dir.join("clipboard.min.js"), &mut theme.clipboard_js), +- (theme_dir.join("highlight.css"), &mut theme.highlight_css), + ( + theme_dir.join("tomorrow-night.css"), + &mut theme.tomorrow_night_css, +@@ -156,11 +135,8 @@ impl Default for Theme { + favicon_png: Some(FAVICON_PNG.to_owned()), + favicon_svg: Some(FAVICON_SVG.to_owned()), + js: JS.to_owned(), +- highlight_css: HIGHLIGHT_CSS.to_owned(), + tomorrow_night_css: TOMORROW_NIGHT_CSS.to_owned(), + ayu_highlight_css: AYU_HIGHLIGHT_CSS.to_owned(), +- highlight_js: HIGHLIGHT_JS.to_owned(), +- clipboard_js: CLIPBOARD_JS.to_owned(), + } + } + } +@@ -243,11 +219,8 @@ mod tests { + favicon_png: Some(Vec::new()), + favicon_svg: Some(Vec::new()), + js: Vec::new(), +- highlight_css: Vec::new(), + tomorrow_night_css: Vec::new(), + ayu_highlight_css: Vec::new(), +- highlight_js: Vec::new(), +- clipboard_js: Vec::new(), + }; + + assert_eq!(got, empty); +diff --git a/vendor/mdbook/src/theme/searcher/mod.rs b/vendor/mdbook/src/theme/searcher/mod.rs +index d5029db..59eda8a 100644 +--- a/vendor/mdbook/src/theme/searcher/mod.rs ++++ b/vendor/mdbook/src/theme/searcher/mod.rs +@@ -2,5 +2,3 @@ + //! the "search" cargo feature is disabled. + + pub static JS: &[u8] = include_bytes!("searcher.js"); +-pub static MARK_JS: &[u8] = include_bytes!("mark.min.js"); +-pub static ELASTICLUNR_JS: &[u8] = include_bytes!("elasticlunr.min.js"); |