pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/www/firefox Fix build with lang/rust-1.39.0 with upstr...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/c62b5315e086
branches:  trunk
changeset: 404368:c62b5315e086
user:      ryoon <ryoon%pkgsrc.org@localhost>
date:      Tue Nov 12 12:31:16 2019 +0000

description:
Fix build with lang/rust-1.39.0 with upstream patch, bump PKGREVISION

diffstat:

 www/firefox/Makefile                  |   11 ++-
 www/firefox/distinfo                  |    3 +-
 www/firefox/patches/patch-rust-1.39.0 |  164 ++++++++++++++++++++++++++++++++++
 3 files changed, 176 insertions(+), 2 deletions(-)

diffs (223 lines):

diff -r 27c1a776a0fc -r c62b5315e086 www/firefox/Makefile
--- a/www/firefox/Makefile      Tue Nov 12 12:06:04 2019 +0000
+++ b/www/firefox/Makefile      Tue Nov 12 12:31:16 2019 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.401 2019/11/04 22:09:54 rillig Exp $
+# $NetBSD: Makefile,v 1.402 2019/11/12 12:31:16 ryoon Exp $
 
 FIREFOX_VER=           ${MOZ_BRANCH}${MOZ_BRANCH_MINOR}
 MOZ_BRANCH=            70.0
@@ -6,6 +6,7 @@
 
 DISTNAME=      firefox-${FIREFOX_VER}.source
 PKGNAME=       ${DISTNAME:S/.source//:S/b/beta/:S/esr//}
+PKGREVISION=   1
 CATEGORIES=    www
 MASTER_SITES+= ${MASTER_SITE_MOZILLA:=firefox/releases/${FIREFOX_VER}/source/}
 EXTRACT_SUFX=  .tar.xz
@@ -74,12 +75,20 @@
 # Replace checksum fields for following patches:
 # patch-third__party_rust_libc_src_unix_bsd_netbsdlike_netbsd_mod.rs,v 1.1
 # patch-third__party_rust_libc_src_unix_bsd_netbsdlike_netbsd_other_mod.rs,v 1.1
+# patch-rust-1.39.0
        ${CP} ${WRKSRC}/third_party/rust/libc/.cargo-checksum.json \
              ${WRKSRC}/third_party/rust/libc/.cargo-checksum.json.orig
        ${CAT} ${WRKSRC}/third_party/rust/libc/.cargo-checksum.json.orig | \
                ${SED} -e 's/4d9f7091af8e166943ac6f42ce85558909e5b6e61325039bff7adfbcf4b90212/7f3da734d5e2e9426051da4f406e46d9e9bed43ed2d7d048e8afc8af7ed44795/' | \
                ${SED} -e 's/1cd66ed5967c788562d4ad626cfbeb1544f4b9267111de5f6790379b8327f28e/6ae549dd21581748b2f1d82880eaca3445c11e3354965e5b49b20342075a3e52/' \
                > ${WRKSRC}/third_party/rust/libc/.cargo-checksum.json
+       ${CP} ${WRKSRC}/third_party/rust/bindgen/.cargo-checksum.json \
+             ${WRKSRC}/third_party/rust/bindgen/.cargo-checksum.json.orig
+       ${CAT} ${WRKSRC}/third_party/rust/bindgen/.cargo-checksum.json.orig | \
+               ${SED} -e 's/5788372d27bdbaaf0454bc17be31a5480918bc41a8a1c4832e8c61185c07f9cd/8c92a52c0f859c7bec7bfbc36b9d18f904baab0c8c9dc1b3e7af34de1a0b0da4/' | \
+               ${SED} -e 's/b73865b6689d4f3546edd91909a47c329c4ae630ea97715d29bc683ae1dc17ad/efdada601d13c489451da9d65a78c42598841cebddf6f3a8012add2380628a51/' | \
+               ${SED} -e 's/34f9aa76b6c9c05136bb69dcd6455397faef571a567254d2c541d50a962994db/e5581852eec87918901a129284b4965aefc8a19394187a8095779a084f28fabe/' \
+               > ${WRKSRC}/third_party/rust/bindgen/.cargo-checksum.json
 
 pre-configure:
        cd ${WRKSRC} && autoconf
diff -r 27c1a776a0fc -r c62b5315e086 www/firefox/distinfo
--- a/www/firefox/distinfo      Tue Nov 12 12:06:04 2019 +0000
+++ b/www/firefox/distinfo      Tue Nov 12 12:31:16 2019 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.371 2019/11/02 02:09:32 ryoon Exp $
+$NetBSD: distinfo,v 1.372 2019/11/12 12:31:16 ryoon Exp $
 
 SHA1 (firefox-70.0.1.source.tar.xz) = 3abee69d9001e27d82b51aa9db2bb8558d590cb6
 RMD160 (firefox-70.0.1.source.tar.xz) = a5e6645b3ee8a7423f64b6812a1887baf3aeee7c
@@ -27,6 +27,7 @@
 SHA1 (patch-media_libcubeb_src_moz.build) = dcca90cb5132442877712cd7b1f4e832c93d2655
 SHA1 (patch-media_libcubeb_update.sh) = 4508319d8534a0cc983e4767c2142169af9e5033
 SHA1 (patch-media_libpng_pngpriv.h) = c8084332560017cd7c9b519b61d125fa28af0dbc
+SHA1 (patch-rust-1.39.0) = a46cbc610892fbd061ac1b344beeb00737c0838a
 SHA1 (patch-toolkit_components_terminator_nsTerminator.cpp) = e5700d95302ef9672b404ab19e13ef7ba3ede5cf
 SHA1 (patch-toolkit_library_moz.build) = 102e3713552c26f76e8b4e473846bb8fbc44b278
 SHA1 (patch-toolkit_modules_subprocess_subprocess__shared__unix.js) = 22a39e54e042ab2270a3cb54e4e307c8900cad12
diff -r 27c1a776a0fc -r c62b5315e086 www/firefox/patches/patch-rust-1.39.0
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/www/firefox/patches/patch-rust-1.39.0     Tue Nov 12 12:31:16 2019 +0000
@@ -0,0 +1,164 @@
+From 9696bc1795c75b1b527e2b70d9baf3ced9e3c154 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= <emilio%crisal.io@localhost>
+Date: Mon, 23 Sep 2019 17:54:37 +0200
+Subject: [PATCH] ir: Make Ord and PartialOrd implementations agree.
+
+See https://github.com/rust-lang/rust/issues/64710.
+
+Bogus implementations were introduced in 230545e7c, d3e39dc62, and 379bb1663.
+
+--- third_party/rust/bindgen/src/ir/analysis/has_vtable.rs.orig        2019-10-30 17:36:44 UTC
++++ third_party/rust/bindgen/src/ir/analysis/has_vtable.rs
+@@ -9,37 +9,22 @@ use std::ops;
+ use {HashMap, Entry};
+ 
+ /// The result of the `HasVtableAnalysis` for an individual item.
+-#[derive(Copy, Clone, Debug, PartialEq, Eq, Ord)]
++#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
+ pub enum HasVtableResult {
+-    /// The item has a vtable, but the actual vtable pointer is in a base
+-    /// member.
+-    BaseHasVtable,
++    /// The item does not have a vtable pointer.
++    No,
+ 
+     /// The item has a vtable and the actual vtable pointer is within this item.
+     SelfHasVtable,
+ 
+-    /// The item does not have a vtable pointer.
+-    No
++    /// The item has a vtable, but the actual vtable pointer is in a base
++    /// member.
++    BaseHasVtable,
+ }
+ 
+ impl Default for HasVtableResult {
+     fn default() -> Self {
+         HasVtableResult::No
+-    }
+-}
+-
+-impl cmp::PartialOrd for HasVtableResult {
+-    fn partial_cmp(&self, rhs: &Self) -> Option<cmp::Ordering> {
+-        use self::HasVtableResult::*;
+-
+-        match (*self, *rhs) {
+-            (x, y) if x == y => Some(cmp::Ordering::Equal),
+-            (BaseHasVtable, _) => Some(cmp::Ordering::Greater),
+-            (_, BaseHasVtable) => Some(cmp::Ordering::Less),
+-            (SelfHasVtable, _) => Some(cmp::Ordering::Greater),
+-            (_, SelfHasVtable) => Some(cmp::Ordering::Less),
+-            _ => unreachable!(),
+-        }
+     }
+ }
+ 
+--- third_party/rust/bindgen/src/ir/analysis/sizedness.rs.orig 2019-10-30 17:36:21 UTC
++++ third_party/rust/bindgen/src/ir/analysis/sizedness.rs
+@@ -22,13 +22,14 @@ use {HashMap, Entry};
+ ///
+ /// We initially assume that all types are `ZeroSized` and then update our
+ /// understanding as we learn more about each type.
+-#[derive(Copy, Clone, Debug, PartialEq, Eq, Ord)]
++#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
+ pub enum SizednessResult {
+-    /// Has some size that is known to be greater than zero. That doesn't mean
+-    /// it has a static size, but it is not zero sized for sure. In other words,
+-    /// it might contain an incomplete array or some other dynamically sized
+-    /// type.
+-    NonZeroSized,
++    /// The type is zero-sized.
++    ///
++    /// This means that if it is a C++ type, and is not being used as a base
++    /// member, then we must add an `_address` byte to enforce the
++    /// unique-address-per-distinct-object-instance rule.
++    ZeroSized,
+ 
+     /// Whether this type is zero-sized or not depends on whether a type
+     /// parameter is zero-sized or not.
+@@ -52,32 +53,16 @@ pub enum SizednessResult {
+     /// https://github.com/rust-lang/rust-bindgen/issues/586
+     DependsOnTypeParam,
+ 
+-    /// The type is zero-sized.
+-    ///
+-    /// This means that if it is a C++ type, and is not being used as a base
+-    /// member, then we must add an `_address` byte to enforce the
+-    /// unique-address-per-distinct-object-instance rule.
+-    ZeroSized,
++    /// Has some size that is known to be greater than zero. That doesn't mean
++    /// it has a static size, but it is not zero sized for sure. In other words,
++    /// it might contain an incomplete array or some other dynamically sized
++    /// type.
++    NonZeroSized,
+ }
+ 
+ impl Default for SizednessResult {
+     fn default() -> Self {
+         SizednessResult::ZeroSized
+-    }
+-}
+-
+-impl cmp::PartialOrd for SizednessResult {
+-    fn partial_cmp(&self, rhs: &Self) -> Option<cmp::Ordering> {
+-        use self::SizednessResult::*;
+-
+-        match (*self, *rhs) {
+-            (x, y) if x == y => Some(cmp::Ordering::Equal),
+-            (NonZeroSized, _) => Some(cmp::Ordering::Greater),
+-            (_, NonZeroSized) => Some(cmp::Ordering::Less),
+-            (DependsOnTypeParam, _) => Some(cmp::Ordering::Greater),
+-            (_, DependsOnTypeParam) => Some(cmp::Ordering::Less),
+-            _ => unreachable!(),
+-        }
+     }
+ }
+ 
+--- third_party/rust/bindgen/src/ir/derive.rs.orig     2019-10-30 17:36:44 UTC
++++ third_party/rust/bindgen/src/ir/derive.rs
+@@ -92,10 +92,10 @@ pub trait CanDeriveOrd {
+ ///
+ /// Initially we assume that we can derive trait for all types and then
+ /// update our understanding as we learn more about each type.
+-#[derive(Debug, Copy, Clone, PartialEq, Eq, Ord)]
++#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord)]
+ pub enum CanDerive {
+-    /// No, we cannot.
+-    No,
++    /// Yes, we can derive automatically.
++    Yes,
+ 
+     /// The only thing that stops us from automatically deriving is that
+     /// array with more than maximum number of elements is used.
+@@ -103,29 +103,13 @@ pub enum CanDerive {
+     /// This means we probably can "manually" implement such trait.
+     Manually,
+ 
+-    /// Yes, we can derive automatically.
+-    Yes,
++    /// No, we cannot.
++    No,
+ }
+ 
+ impl Default for CanDerive {
+     fn default() -> CanDerive {
+         CanDerive::Yes
+-    }
+-}
+-
+-impl cmp::PartialOrd for CanDerive {
+-    fn partial_cmp(&self, rhs: &Self) -> Option<cmp::Ordering> {
+-        use self::CanDerive::*;
+-
+-        let ordering = match (*self, *rhs) {
+-            (x, y) if x == y => cmp::Ordering::Equal,
+-            (No, _) => cmp::Ordering::Greater,
+-            (_, No) => cmp::Ordering::Less,
+-            (Manually, _) => cmp::Ordering::Greater,
+-            (_, Manually) => cmp::Ordering::Less,
+-            _ => unreachable!()
+-        };
+-        Some(ordering)
+     }
+ }
+ 



Home | Main Index | Thread Index | Old Index