diff mbox series

[meta-python,v2,5/5] python3-pydantic-core: backport patch

Message ID 20240809135640.1496340-1-tim.orling@konsulko.com
State Accepted
Headers show
Series None | expand

Commit Message

Tim Orling Aug. 9, 2024, 1:56 p.m. UTC
From: Tim Orling <tim.orling@konsulko.com>

We've seen TMPDIR [build-paths] contamination in the
built pydantic_core/_pydantic_core.cpython-*-*-linux-gnu.so

See discussion upstream in:
https://github.com/pydantic/pydantic-core/issues/1365

Backport fix from:
https://github.com/pydantic/pydantic-core/commit/e07c41b3bad75948201a2201387225694c2fb501

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
---
Changes in v2:
* actually attach the patch

 ...embed-RUSTFLAGS-in-final-binary-1396.patch | 58 +++++++++++++++++++
 .../python/python3-pydantic-core_2.21.0.bb    |  1 +
 2 files changed, 59 insertions(+)
 create mode 100644 meta-python/recipes-devtools/python/python3-pydantic-core/0001-dont-embed-RUSTFLAGS-in-final-binary-1396.patch
diff mbox series

Patch

diff --git a/meta-python/recipes-devtools/python/python3-pydantic-core/0001-dont-embed-RUSTFLAGS-in-final-binary-1396.patch b/meta-python/recipes-devtools/python/python3-pydantic-core/0001-dont-embed-RUSTFLAGS-in-final-binary-1396.patch
new file mode 100644
index 0000000000..5d732d5bee
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pydantic-core/0001-dont-embed-RUSTFLAGS-in-final-binary-1396.patch
@@ -0,0 +1,58 @@ 
+From e07c41b3bad75948201a2201387225694c2fb501 Mon Sep 17 00:00:00 2001
+From: Boxy <rust@boxyuwu.dev>
+Date: Wed, 7 Aug 2024 17:11:02 +0100
+Subject: [PATCH] dont embed `RUSTFLAGS` in final binary (#1396)
+
+Upstream-Status: Backport [https://github.com/pydantic/pydantic-core/pull/1396]
+
+See discussion upstream in:
+https://github.com/pydantic/pydantic-core/issues/1365
+
+Backport fix from:
+https://github.com/pydantic/pydantic-core/commit/e07c41b3bad75948201a2201387225694c2fb501
+
+Signed-off-by: Tim Orling <tim.orling@konsulko.com>
+---
+ build.rs   | 9 +++++++++
+ src/lib.rs | 5 ++++-
+ 2 files changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/build.rs b/build.rs
+index d1093c74..f8f66901 100644
+--- a/build.rs
++++ b/build.rs
+@@ -36,6 +36,15 @@ fn main() {
+         println!("cargo:rustc-cfg=has_coverage_attribute");
+     }
+     println!("cargo:rustc-check-cfg=cfg(has_coverage_attribute)");
++
++    if std::env::var("RUSTFLAGS")
++        .unwrap_or_default()
++        .contains("-Cprofile-use=")
++    {
++        println!("cargo:rustc-cfg=specified_profile_use");
++    }
++    println!("cargo:rustc-check-cfg=cfg(specified_profile_use)");
++
+     generate_self_schema();
+     println!("cargo:rustc-env=PROFILE={}", std::env::var("PROFILE").unwrap());
+ }
+diff --git a/src/lib.rs b/src/lib.rs
+index eb598424..eb486da6 100644
+--- a/src/lib.rs
++++ b/src/lib.rs
+@@ -98,7 +98,10 @@ pub fn build_info() -> String {
+     format!(
+         "profile={} pgo={}",
+         env!("PROFILE"),
+-        option_env!("RUSTFLAGS").unwrap_or("").contains("-Cprofile-use="),
++        // We use a `cfg!` here not `env!`/`option_env!` as those would
++        // embed `RUSTFLAGS` into the generated binary which causes problems
++        // with reproducable builds.
++        cfg!(specified_profile_use),
+     )
+ }
+ 
+-- 
+2.46.0
+
diff --git a/meta-python/recipes-devtools/python/python3-pydantic-core_2.21.0.bb b/meta-python/recipes-devtools/python/python3-pydantic-core_2.21.0.bb
index b4ca66a54d..b24e141f60 100644
--- a/meta-python/recipes-devtools/python/python3-pydantic-core_2.21.0.bb
+++ b/meta-python/recipes-devtools/python/python3-pydantic-core_2.21.0.bb
@@ -11,6 +11,7 @@  LIC_FILES_CHKSUM = "file://LICENSE;md5=ab599c188b4a314d2856b3a55030c75c"
 require ${BPN}-crates.inc
 
 SRC_URI += "file://run-ptest"
+SRC_URI += "file://0001-dont-embed-RUSTFLAGS-in-final-binary-1396.patch"
 
 SRC_URI[sha256sum] = "79c747f9916e5b6cb588dfd994d9ac15a93e43eb07467d9e6f24d892c176bbf5"