[packages/firefox60-esr] - added rust-url-bugfix,rust-cssparser-bugfix,noztext patches, but still fails to build with current

qboosh qboosh at pld-linux.org
Sun Mar 15 14:55:48 CET 2020


commit 7d63a1ac175ca2e8729d0a1176755df6417e3ec5
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sun Mar 15 14:56:51 2020 +0100

    - added rust-url-bugfix,rust-cssparser-bugfix,noztext patches, but still fails to build with current rust

 firefox-noztext.patch       | 16 ++++++++
 firefox60-esr.spec          | 10 +++++
 rust-cssparser-bugfix.patch | 95 +++++++++++++++++++++++++++++++++++++++++++++
 rust-url-bugfix.patch       | 80 ++++++++++++++++++++++++++++++++++++++
 4 files changed, 201 insertions(+)
---
diff --git a/firefox60-esr.spec b/firefox60-esr.spec
index bb7fa1e..d3a5706 100644
--- a/firefox60-esr.spec
+++ b/firefox60-esr.spec
@@ -256,6 +256,7 @@ Source197:	http://releases.mozilla.org/pub/firefox/releases/%{lang_version}esr/l
 Patch0:		rust-1.33.patch
 Patch1:		%{origname}-libvpx1.7.patch
 Patch2:		glibc-2.30.patch
+Patch3:		rust-url-bugfix.patch
 Patch4:		%{origname}-prefs.patch
 Patch5:		%{origname}-pld-bookmarks.patch
 Patch6:		%{origname}-no-subshell.patch
@@ -264,6 +265,8 @@ Patch8:		%{origname}-system-virtualenv.patch
 Patch9:		%{origname}-Disable-Firefox-Health-Report.patch
 Patch10:	system-cairo.patch
 Patch11:	ignore-stats-errors.patch
+Patch12:	%{origname}-noztext.patch
+Patch13:	rust-cssparser-bugfix.patch
 URL:		https://www.mozilla.org/firefox/
 BuildRequires:	OpenGL-devel
 BuildRequires:	alsa-lib-devel
@@ -2074,6 +2077,9 @@ unpack() {
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
+cd third_party/rust/url
+%patch3 -p1
+cd ../../..
 %patch4 -p1
 %patch5 -p1
 %patch6 -p2
@@ -2082,6 +2088,10 @@ unpack() {
 %patch9 -p1
 %{?with_system_cairo:%patch10 -p1}
 %patch11 -p1
+%patch12 -p1
+cd third_party/rust/cssparser
+%patch13 -p1
+cd ../../..
 
 %{__sed} -i -e '1s,/usr/bin/env python,%{__python},' xpcom/typelib/xpt/tools/xpt.py xpcom/idl-parser/xpidl/xpidl.py
 
diff --git a/firefox-noztext.patch b/firefox-noztext.patch
new file mode 100644
index 0000000..504bb4d
--- /dev/null
+++ b/firefox-noztext.patch
@@ -0,0 +1,16 @@
+--- firefox-60.9.0/old-configure.in.orig	2019-09-01 15:09:29.000000000 +0200
++++ firefox-60.9.0/old-configure.in	2020-03-12 20:02:48.849293176 +0100
+@@ -518,13 +518,6 @@
+                   AC_MSG_RESULT([no])
+                   LDFLAGS=$_SAVE_LDFLAGS)
+ 
+-    AC_MSG_CHECKING([for -z text option to ld])
+-    _SAVE_LDFLAGS=$LDFLAGS
+-    LDFLAGS="$LDFLAGS -Wl,-z,text"
+-    AC_TRY_LINK(,,AC_MSG_RESULT([yes]),
+-                  AC_MSG_RESULT([no])
+-                  LDFLAGS=$_SAVE_LDFLAGS)
+-
+     AC_MSG_CHECKING([for -z relro option to ld])
+     _SAVE_LDFLAGS=$LDFLAGS
+     LDFLAGS="$LDFLAGS -Wl,-z,relro"
diff --git a/rust-cssparser-bugfix.patch b/rust-cssparser-bugfix.patch
new file mode 100644
index 0000000..d117c33
--- /dev/null
+++ b/rust-cssparser-bugfix.patch
@@ -0,0 +1,95 @@
+From 3c98d22c5de3b696bf1fde2b6c90069812312aa6 Mon Sep 17 00:00:00 2001
+From: Simon Sapin <simon.sapin at exyr.org>
+Date: Tue, 23 Apr 2019 13:47:25 +0200
+Subject: [PATCH] Fix a future-compat warning
+
+```
+warning[E0506]: cannot assign to `self.input.cached_token` because it is borrowed
+   --> src/parser.rs:591:17
+    |
+566 |     pub fn next_including_whitespace_and_comments(&mut self) -> Result<&Token<'i>, BasicParseError<'i>> {
+    |                                                   - let's call the lifetime of this reference `'1`
+...
+579 |             Some(ref cached_token)
+    |                  ---------------- borrow of `self.input.cached_token` occurs here
+...
+591 |                 self.input.cached_token = Some(CachedToken {
+    |                 ^^^^^^^^^^^^^^^^^^^^^^^ assignment to borrowed `self.input.cached_token` occurs here
+...
+603 |         Ok(token)
+    |         --------- returning this value requires that `self.input.cached_token.0` is borrowed for `'1`
+    |
+    = warning: this error has been downgraded to a warning for backwards compatibility with previous releases
+    = warning: this represents potential undefined behavior in your code and this warning will become a hard error in the future
+```
+---
+ src/parser.rs | 50 +++++++++++++++++++++++++++-----------------------
+ 1 file changed, 27 insertions(+), 23 deletions(-)
+
+diff --git a/src/parser.rs b/src/parser.rs
+index 51f441e4..7cef117c 100644
+--- a/src/parser.rs
++++ b/src/parser.rs
+@@ -555,28 +555,34 @@
+         }
+ 
+         let token_start_position = self.input.tokenizer.position();
+-        let token;
+-        match self.input.cached_token {
+-            Some(ref cached_token)
+-            if cached_token.start_position == token_start_position => {
+-                self.input.tokenizer.reset(&cached_token.end_state);
+-                match cached_token.token {
+-                    Token::Function(ref name) => self.input.tokenizer.see_function(name),
+-                    _ => {}
+-                }
+-                token = &cached_token.token
++        let using_cached_token = self
++            .input
++            .cached_token
++            .as_ref()
++            .map_or(false, |cached_token| {
++                cached_token.start_position == token_start_position
++            });
++        let token = if using_cached_token {
++            let cached_token = self.input.cached_token.as_ref().unwrap();
++            self.input.tokenizer.reset(&cached_token.end_state);
++            match cached_token.token {
++                Token::Function(ref name) => self.input.tokenizer.see_function(name),
++                _ => {}
+             }
+-            _ => {
+-                let new_token = self.input.tokenizer.next()
+-                    .map_err(|()| self.new_basic_error(BasicParseErrorKind::EndOfInput))?;
+-                self.input.cached_token = Some(CachedToken {
+-                    token: new_token,
+-                    start_position: token_start_position,
+-                    end_state: self.input.tokenizer.state(),
+-                });
+-                token = self.input.cached_token_ref()
+-            }
+-        }
++            &cached_token.token
++        } else {
++            let new_token = self
++                .input
++                .tokenizer
++                .next()
++                .map_err(|()| self.new_basic_error(BasicParseErrorKind::EndOfInput))?;
++            self.input.cached_token = Some(CachedToken {
++                token: new_token,
++                start_position: token_start_position,
++                end_state: self.input.tokenizer.state(),
++            });
++            self.input.cached_token_ref()
++        };
+ 
+         if let Some(block_type) = BlockType::opening(token) {
+             self.at_start_of = Some(block_type);
+--- cssparser/.cargo-checksum.json.orig	2019-09-01 15:09:43.000000000 +0200
++++ cssparser/.cargo-checksum.json	2020-03-14 16:46:08.210418153 +0100
+@@ -1 +1 @@
+-{"files":{".travis.yml":"f1fb4b65964c81bc1240544267ea334f554ca38ae7a74d57066f4d47d2b5d568","Cargo.toml":"7807f16d417eb1a6ede56cd4ba2da6c5c63e4530289b3f0848f4b154e18eba02","LICENSE":"fab3dd6bdab226f1c08630b1dd917e11fcb4ec5e1e020e2c16f83a0a13863e85","README.md":"c5781e673335f37ed3d7acb119f8ed33efdf6eb75a7094b7da2abe0c3230adb8","build.rs":"b29fc57747f79914d1c2fb541e2bb15a003028bb62751dcb901081ccc174b119","build/match_byte.rs":"2c84b8ca5884347d2007f49aecbd85b4c7582085526e2704399817249996e19b","docs/.nojekyll":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","docs/404.html":"025861f76f8d1f6d67c20ab624c6e418f4f824385e2dd8ad8732c4ea563c6a2e","docs/index.html":"025861f76f8d1f6d67c20ab624c6e418f4f824385e2dd8ad8732c4ea563c6a2e","src/color.rs":"c60f1b0ab7a2a6213e434604ee33f78e7ef74347f325d86d0b9192d8225ae1cc","src/cow_rc_str.rs":"541216f8ef74ee3cc5cbbc1347e5f32ed66588c401851c9a7d68b867aede1de0","src/from_bytes.rs":"331fe63af2123ae3675b61928a69461b5ac77799fff3ce9978c55cf2c558f4ff","src/lib.rs":"46c377e0c9a75780d5cb0bcf4dfb960f0fb2a996a13e7349bb111b9082252233","src/macros.rs":"adb9773c157890381556ea83d7942dcc676f99eea71abbb6afeffee1e3f28960","src/nth.rs":"5c70fb542d1376cddab69922eeb4c05e4fcf8f413f27563a2af50f72a47c8f8c","src/parser.rs":"9ed4aec998221eb2d2ba99db2f9f82a02399fb0c3b8500627f68f5aab872adde","src/rules_and_declarations.rs":"be2c4f3f3bb673d866575b6cb6084f1879dff07356d583ca9a3595f63b7f916f","src/serializer.rs":"4ccfc9b4fe994aab3803662bbf31cc25052a6a39531073a867b14b224afe42dd","src/size_of_tests.rs":"e5f63c8c18721cc3ff7a5407e84f9889ffa10e66da96e8510a696c3e00ad72d5","src/tests.rs":"80b02c80ab0fd580dad9206615c918e0db7dff63dfed0feeedb66f317d24b24b","src/tokenizer.rs":"429b2cba419cf8b923fbcc32d3bd34c0b39284ebfcb9fc29b8eb8643d8d5f312","src/unicode_range.rs":"c1c4ed2493e09d248c526ce1ef8575a5f8258da3962b64ffc814ef3bdf9780d0"},"package":"8a807ac3ab7a217829c2a3b65732b926b2befe6a35f33b4bf8b503692430f223"}
+\ No newline at end of file
++{"files":{".travis.yml":"f1fb4b65964c81bc1240544267ea334f554ca38ae7a74d57066f4d47d2b5d568","Cargo.toml":"7807f16d417eb1a6ede56cd4ba2da6c5c63e4530289b3f0848f4b154e18eba02","LICENSE":"fab3dd6bdab226f1c08630b1dd917e11fcb4ec5e1e020e2c16f83a0a13863e85","README.md":"c5781e673335f37ed3d7acb119f8ed33efdf6eb75a7094b7da2abe0c3230adb8","build.rs":"b29fc57747f79914d1c2fb541e2bb15a003028bb62751dcb901081ccc174b119","build/match_byte.rs":"2c84b8ca5884347d2007f49aecbd85b4c7582085526e2704399817249996e19b","docs/.nojekyll":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","docs/404.html":"025861f76f8d1f6d67c20ab624c6e418f4f824385e2dd8ad8732c4ea563c6a2e","docs/index.html":"025861f76f8d1f6d67c20ab624c6e418f4f824385e2dd8ad8732c4ea563c6a2e","src/color.rs":"c60f1b0ab7a2a6213e434604ee33f78e7ef74347f325d86d0b9192d8225ae1cc","src/cow_rc_str.rs":"541216f8ef74ee3cc5cbbc1347e5f32ed66588c401851c9a7d68b867aede1de0","src/from_bytes.rs":"331fe63af2123ae3675b61928a69461b5ac77799fff3ce9978c55cf2c558f4ff","src/lib.rs":"46c377e0c9a75780d5cb0bcf4dfb960f0fb2a996a13e7349bb111b9082252233","src/macros.rs":"adb9773c157890381556ea83d7942dcc676f99eea71abbb6afeffee1e3f28960","src/nth.rs":"5c70fb542d1376cddab69922eeb4c05e4fcf8f413f27563a2af50f72a47c8f8c","src/parser.rs":"6bd16e08c29cb31c358f3cfeb9c6659227f24a95d399c14cf969c8b1a0e931fd","src/rules_and_declarations.rs":"be2c4f3f3bb673d866575b6cb6084f1879dff07356d583ca9a3595f63b7f916f","src/serializer.rs":"4ccfc9b4fe994aab3803662bbf31cc25052a6a39531073a867b14b224afe42dd","src/size_of_tests.rs":"e5f63c8c18721cc3ff7a5407e84f9889ffa10e66da96e8510a696c3e00ad72d5","src/tests.rs":"80b02c80ab0fd580dad9206615c918e0db7dff63dfed0feeedb66f317d24b24b","src/tokenizer.rs":"429b2cba419cf8b923fbcc32d3bd34c0b39284ebfcb9fc29b8eb8643d8d5f312","src/unicode_range.rs":"c1c4ed2493e09d248c526ce1ef8575a5f8258da3962b64ffc814ef3bdf9780d0"},"package":"8a807ac3ab7a217829c2a3b65732b926b2befe6a35f33b4bf8b503692430f223"}
+\ No newline at end of file
diff --git a/rust-url-bugfix.patch b/rust-url-bugfix.patch
new file mode 100644
index 0000000..085bf07
--- /dev/null
+++ b/rust-url-bugfix.patch
@@ -0,0 +1,80 @@
+commit 2efa106431e6fb15b73478f67e37cb307bac2be6
+Author: Simon Sapin <simon.sapin at exyr.org>
+Date:   Wed Jul 4 22:18:36 2018 +0200
+
+    Fix a lifetime bug uncovered by NLL, thanks @lqd
+
+#diff --git a/Cargo.toml b/Cargo.toml
+#index 4d7ed8a..164be45 100644
+#--- a/Cargo.toml
+#+++ b/Cargo.toml
+#@@ -2,7 +2,7 @@
+# 
+# name = "url"
+# # When updating version, also modify html_root_url in the lib.rs
+#-version = "1.7.0"
+#+version = "1.7.1"
+# authors = ["The rust-url developers"]
+# 
+# description = "URL library for Rust, based on the WHATWG URL Standard"
+diff --git a/src/form_urlencoded.rs b/src/form_urlencoded.rs
+index 7ba8b4a..f378c9a 100644
+--- a/src/form_urlencoded.rs
++++ b/src/form_urlencoded.rs
+@@ -257,8 +257,16 @@ impl<'a> Target for &'a mut String {
+ // * `Serializer` keeps its target in a private field
+ // * Unlike in other `Target` impls, `UrlQuery::finished` does not return `Self`.
+ impl<'a> Target for ::UrlQuery<'a> {
+-    fn as_mut_string(&mut self) -> &mut String { &mut self.url.serialization }
+-    fn finish(self) -> &'a mut ::Url { self.url }
++    fn as_mut_string(&mut self) -> &mut String {
++        &mut self.url.as_mut().unwrap().serialization
++    }
++
++    fn finish(mut self) -> &'a mut ::Url {
++        let url = self.url.take().unwrap();
++        url.restore_already_parsed_fragment(self.fragment.take());
++        url
++    }
++
+     type Finished = &'a mut ::Url;
+ }
+ 
+diff --git a/src/lib.rs b/src/lib.rs
+index f24285f..4edd426 100644
+--- a/src/lib.rs
++++ b/src/lib.rs
+@@ -1343,7 +1343,7 @@ impl Url {
+             self.serialization.push('?');
+         }
+ 
+-        let query = UrlQuery { url: self, fragment: fragment };
++        let query = UrlQuery { url: Some(self), fragment: fragment };
+         form_urlencoded::Serializer::for_suffix(query, query_start + "?".len())
+     }
+ 
+@@ -2423,13 +2423,15 @@ fn io_error<T>(reason: &str) -> io::Result<T> {
+ /// Implementation detail of `Url::query_pairs_mut`. Typically not used directly.
+ #[derive(Debug)]
+ pub struct UrlQuery<'a> {
+-    url: &'a mut Url,
++    url: Option<&'a mut Url>,
+     fragment: Option<String>,
+ }
+ 
+ impl<'a> Drop for UrlQuery<'a> {
+     fn drop(&mut self) {
+-        self.url.restore_already_parsed_fragment(self.fragment.take())
++        if let Some(url) = self.url.take() {
++            url.restore_already_parsed_fragment(self.fragment.take())
++        }
+     }
+ }
+ 
+--- url/.cargo-checksum.json.orig	2020-03-12 09:49:20.822032699 +0100
++++ url/.cargo-checksum.json	2020-03-12 11:53:38.228299131 +0100
+@@ -1 +1 @@
+-{"files":{".travis.yml":"890af214187ffcba4732acb2d1af30d7adb9aade0679e9fdb06baae363240b8e","Cargo.toml":"52e8e0a7014d3b0c654491184e9fc82f8c61ba7f51332e2b6a787330be42a301","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"20c7855c364d57ea4c97889a5e8d98470a9952dade37bd9248b9a54431670e5e","Makefile":"bffd75d34654b2955d4f005f1a5e85c821c90becf1a8a52cbe10121972f43148","README.md":"eb3f4694003f408cbe3c7f3e9fbbc71241defb940cc55a816981f0f0f144c8eb","UPGRADING.md":"fbcc2d39bdf17db0745793db6626fcd5c909dddd4ce13b27566cfabece22c368","appveyor.yml":"c78486dbfbe6ebbf3d808afb9a19f7ec18c4704ce451c6305f0716999b70a1a6","docs/.nojekyll":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","docs/404.html":"f61e6271c1ea1aa113b64b356e994595fa548f0433f89948d747503ad22195cd","docs/index.html":"f61e6271c1ea1aa113b64b356e994595fa548f0433f89948d747503ad22195cd","github.png":"b432fd855efe7c430fe6a57ccf83935c1996f03a7cdc8d6e1b34154b8c43f6ec","rust-url-todo":"1192cee7b6cedf2133d97dc6074b593a1d19b0ee13fff6f28d6329855044e575","src/encoding.rs":"f3e109ca8ec5a9130da50cdfb3003530aedb6dd5a440f0790d76b71f6981119c","src/form_urlencoded.rs":"320418526c4564a4469581d426e7467bcefe504eecd098e1eb90a2663a75fd80","src/host.rs":"4c74946777d76e9b307604f8e24a3485fd0856b664450194e8b429e262cf410d","src/lib.rs":"894cc76c31357fb588292e990a87f4e951043e32ea3d9f38fddc145302d0b318","src/origin.rs":"6e4821eb9600a32ef54d05c8e1a7937f6d9b4dd1e3bda7f36c7988f6a2bef78b","src/parser.rs":"e379c9eb51cff977b9cef368ab64bcff7626e885b859772ab1bc76c9193e9fde","src/path_segments.rs":"7bd3142eaa568863ef44e2255c181239141f9eeee337f889b9ffaaeab4ca669d","src/quirks.rs":"fe6095104cf583053ab35d8a2a093a8581da083641e32d1c5acfe322a26c4bde","src/slicing.rs":"4e539886b23945a92094625f3e531a4bff40daa44240b5d19ee8577478c4f7fe","tests/data.rs":"50a110e475b1717fdaff6524be7d8916cb41a45461e0715f632ff54d0ce28886","tests/setters_tests.json":"ebcbdb52e9a4b5a565f8806d52ebc610d46a34df883e10b0be080d026468ff73","tests/unit.rs":"c0305ca991b2c03815aac2e69ef1c1792b087df92272a6196eb698b27625321f","tests/urltestdata.json":"df87028e1eaea4ef70cf1c1faaed2584e81a46b8b6cd90f50d47b77726ece41c"},"package":"fa35e768d4daf1d85733418a49fb42e10d7f633e394fccab4ab7aba897053fe2"}
+\ No newline at end of file
++{"files":{".travis.yml":"890af214187ffcba4732acb2d1af30d7adb9aade0679e9fdb06baae363240b8e","Cargo.toml":"52e8e0a7014d3b0c654491184e9fc82f8c61ba7f51332e2b6a787330be42a301","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"20c7855c364d57ea4c97889a5e8d98470a9952dade37bd9248b9a54431670e5e","Makefile":"bffd75d34654b2955d4f005f1a5e85c821c90becf1a8a52cbe10121972f43148","README.md":"eb3f4694003f408cbe3c7f3e9fbbc71241defb940cc55a816981f0f0f144c8eb","UPGRADING.md":"fbcc2d39bdf17db0745793db6626fcd5c909dddd4ce13b27566cfabece22c368","appveyor.yml":"c78486dbfbe6ebbf3d808afb9a19f7ec18c4704ce451c6305f0716999b70a1a6","docs/.nojekyll":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","docs/404.html":"f61e6271c1ea1aa113b64b356e994595fa548f0433f89948d747503ad22195cd","docs/index.html":"f61e6271c1ea1aa113b64b356e994595fa548f0433f89948d747503ad22195cd","github.png":"b432fd855efe7c430fe6a57ccf83935c1996f03a7cdc8d6e1b34154b8c43f6ec","rust-url-todo":"1192cee7b6cedf2133d97dc6074b593a1d19b0ee13fff6f28d6329855044e575","src/encoding.rs":"f3e109ca8ec5a9130da50cdfb3003530aedb6dd5a440f0790d76b71f6981119c","src/form_urlencoded.rs":"d8c35e92375cafcd7e12c4f0d5374bab62aa1f333629d55b007a9c3d5c3cb615","src/host.rs":"4c74946777d76e9b307604f8e24a3485fd0856b664450194e8b429e262cf410d","src/lib.rs":"f132a35fdade0a52f1022792bb8a430dae1e50a34f5c05faeb84d386e7f50397","src/origin.rs":"6e4821eb9600a32ef54d05c8e1a7937f6d9b4dd1e3bda7f36c7988f6a2bef78b","src/parser.rs":"e379c9eb51cff977b9cef368ab64bcff7626e885b859772ab1bc76c9193e9fde","src/path_segments.rs":"7bd3142eaa568863ef44e2255c181239141f9eeee337f889b9ffaaeab4ca669d","src/quirks.rs":"fe6095104cf583053ab35d8a2a093a8581da083641e32d1c5acfe322a26c4bde","src/slicing.rs":"4e539886b23945a92094625f3e531a4bff40daa44240b5d19ee8577478c4f7fe","tests/data.rs":"50a110e475b1717fdaff6524be7d8916cb41a45461e0715f632ff54d0ce28886","tests/setters_tests.json":"ebcbdb52e9a4b5a565f8806d52ebc610d46a34df883e10b0be080d026468ff73","tests/unit.rs":"c0305ca991b2c03815aac2e69ef1c1792b087df92272a6196eb698b27625321f","tests/urltestdata.json":"df87028e1eaea4ef70cf1c1faaed2584e81a46b8b6cd90f50d47b77726ece41c"},"package":"fa35e768d4daf1d85733418a49fb42e10d7f633e394fccab4ab7aba897053fe2"}
+\ No newline at end of file
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/firefox60-esr.git/commitdiff/7d63a1ac175ca2e8729d0a1176755df6417e3ec5



More information about the pld-cvs-commit mailing list