From e623f40cbc79145930a0fdec496bb56dd948e792 Mon Sep 17 00:00:00 2001 From: "Andrew J. Hesford" Date: Thu, 11 Aug 2022 08:35:06 -0400 Subject: [PATCH] python3-setuptools-rust: update to 1.5.0. --- .../patches/unwind_cross_breakage.patch | 219 ------------------ srcpkgs/python3-setuptools-rust/template | 6 +- 2 files changed, 3 insertions(+), 222 deletions(-) delete mode 100644 srcpkgs/python3-setuptools-rust/patches/unwind_cross_breakage.patch diff --git a/srcpkgs/python3-setuptools-rust/patches/unwind_cross_breakage.patch b/srcpkgs/python3-setuptools-rust/patches/unwind_cross_breakage.patch deleted file mode 100644 index 690285c0abf..00000000000 --- a/srcpkgs/python3-setuptools-rust/patches/unwind_cross_breakage.patch +++ /dev/null @@ -1,219 +0,0 @@ -From 8e9892f08b1248dc03862da86915c2745e0ff7ec Mon Sep 17 00:00:00 2001 -From: "Andrew J. Hesford" -Date: Fri, 15 Jul 2022 10:33:02 -0400 -Subject: [PATCH] build_rust: remove linker handling that broke cross - compilation - ---- - setuptools_rust/build.py | 151 ++------------------------------------- - 1 file changed, 7 insertions(+), 144 deletions(-) - -diff --git a/setuptools_rust/build.py b/setuptools_rust/build.py -index 4fe594b..e81ed8f 100644 ---- a/setuptools_rust/build.py -+++ b/setuptools_rust/build.py -@@ -113,23 +113,10 @@ def build_extension( - self, ext: RustExtension, forced_target_triple: Optional[str] = None - ) -> List["_BuiltModule"]: - -- target_info = self._detect_rust_target(forced_target_triple) -- if target_info is not None: -- target_triple = target_info.triple -- cross_lib = target_info.cross_lib -- linker = target_info.linker -- # We're ignoring target_info.linker_args for now because we're not -- # sure if they will always do the right thing. Might help with some -- # of the OS-specific logic if it does. -- -- else: -- target_triple = None -- cross_lib = None -- linker = None -- -+ target_triple = self._detect_rust_target(forced_target_triple) - rustc_cfgs = get_rustc_cfgs(target_triple) - -- env = _prepare_build_environment(cross_lib) -+ env = _prepare_build_environment() - - if not os.path.exists(ext.path): - raise DistutilsFileError( -@@ -150,9 +137,6 @@ def build_extension( - - rustflags = [] - -- if linker is not None: -- rustflags.extend(["-C", "linker=" + linker]) -- - if ext._uses_exec_binding(): - command = [self.cargo, "build", "--manifest-path", ext.path, *cargo_args] - -@@ -407,45 +391,12 @@ def _py_limited_api(self) -> _PyLimitedApi: - - def _detect_rust_target( - self, forced_target_triple: Optional[str] = None -- ) -> Optional["_TargetInfo"]: -+ ) -> Optional[str]: - assert self.plat_name is not None -- cross_compile_info = _detect_unix_cross_compile_info() -- if cross_compile_info is not None: -- cross_target_info = cross_compile_info.to_target_info() -- if forced_target_triple is not None: -- if ( -- cross_target_info is not None -- and not cross_target_info.is_compatible_with(forced_target_triple) -- ): -- self.warn( -- f"Forced Rust target `{forced_target_triple}` is not " -- f"compatible with deduced Rust target " -- f"`{cross_target_info.triple}` - the built package " -- f" may not import successfully once installed." -- ) -- -- # Forcing the target in a cross-compile environment; use -- # the cross-compile information in combination with the -- # forced target -- return _TargetInfo( -- forced_target_triple, -- cross_compile_info.cross_lib, -- cross_compile_info.linker, -- cross_compile_info.linker_args, -- ) -- elif cross_target_info is not None: -- return cross_target_info -- else: -- raise DistutilsPlatformError( -- "Don't know the correct rust target for system type " -- f"{cross_compile_info.host_type}. Please set the " -- "CARGO_BUILD_TARGET environment variable." -- ) -- -- elif forced_target_triple is not None: -+ if forced_target_triple is not None: - # Automatic target detection can be overridden via the CARGO_BUILD_TARGET - # environment variable or --target command line option -- return _TargetInfo.for_triple(forced_target_triple) -+ return forced_target_triple - - # Determine local rust target which needs to be "forced" if necessary - local_rust_target = _adjusted_local_rust_target(self.plat_name) -@@ -457,7 +408,7 @@ def _detect_rust_target( - # check for None first to avoid calling to rustc if not needed - and local_rust_target != get_rust_host() - ): -- return _TargetInfo.for_triple(local_rust_target) -+ return local_rust_target - - return None - -@@ -547,91 +498,6 @@ class _BuiltModule(NamedTuple): - path: str - - --class _TargetInfo(NamedTuple): -- triple: str -- cross_lib: Optional[str] -- linker: Optional[str] -- linker_args: Optional[str] -- -- @staticmethod -- def for_triple(triple: str) -> "_TargetInfo": -- return _TargetInfo(triple, None, None, None) -- -- def is_compatible_with(self, target: str) -> bool: -- if self.triple == target: -- return True -- -- # the vendor field can be ignored, so x86_64-pc-linux-gnu is compatible -- # with x86_64-unknown-linux-gnu -- if _replace_vendor_with_unknown(self.triple) == target: -- return True -- -- return False -- -- --class _CrossCompileInfo(NamedTuple): -- host_type: str -- cross_lib: Optional[str] -- linker: Optional[str] -- linker_args: Optional[str] -- -- def to_target_info(self) -> Optional[_TargetInfo]: -- """Maps this cross compile info to target info. -- -- Returns None if the corresponding target information could not be -- deduced. -- """ -- # hopefully an exact match -- targets = get_rust_target_list() -- if self.host_type in targets: -- return _TargetInfo( -- self.host_type, self.cross_lib, self.linker, self.linker_args -- ) -- -- # the vendor field can be ignored, so x86_64-pc-linux-gnu is compatible -- # with x86_64-unknown-linux-gnu -- without_vendor = _replace_vendor_with_unknown(self.host_type) -- if without_vendor is not None and without_vendor in targets: -- return _TargetInfo( -- without_vendor, self.cross_lib, self.linker, self.linker_args -- ) -- -- return None -- -- --def _detect_unix_cross_compile_info() -> Optional["_CrossCompileInfo"]: -- # See https://github.com/PyO3/setuptools-rust/issues/138 -- # This is to support cross compiling on *NIX, where plat_name isn't -- # necessarily the same as the system we are running on. *NIX systems -- # have more detailed information available in sysconfig. We need that -- # because plat_name doesn't give us information on e.g., glibc vs musl. -- host_type = sysconfig.get_config_var("HOST_GNU_TYPE") -- build_type = sysconfig.get_config_var("BUILD_GNU_TYPE") -- -- if not host_type or host_type == build_type: -- # not *NIX, or not cross compiling -- return None -- -- if "apple-darwin" in host_type and (build_type and "apple-darwin" in build_type): -- # On macos and the build and host differ. This is probably an arm -- # Python which was built on x86_64. Don't try to handle this for now. -- # (See https://github.com/PyO3/setuptools-rust/issues/192) -- return None -- -- stdlib = sysconfig.get_path("stdlib") -- assert stdlib is not None -- cross_lib = os.path.dirname(stdlib) -- -- bldshared = sysconfig.get_config_var("BLDSHARED") -- if not bldshared: -- linker = None -- linker_args = None -- else: -- [linker, _, linker_args] = bldshared.partition(" ") -- -- return _CrossCompileInfo(host_type, cross_lib, linker, linker_args) -- -- - def _replace_vendor_with_unknown(target: str) -> Optional[str]: - """Replaces vendor in the target triple with unknown. - -@@ -644,7 +510,7 @@ def _replace_vendor_with_unknown(target: str) -> Optional[str]: - return "-".join(components) - - --def _prepare_build_environment(cross_lib: Optional[str]) -> Dict[str, str]: -+def _prepare_build_environment() -> Dict[str, str]: - """Prepares environment variables to use when executing cargo build.""" - - # Make sure that if pythonXX-sys is used, it builds against the current -@@ -665,9 +531,6 @@ def _prepare_build_environment(cross_lib: Optional[str]) -> Dict[str, str]: - } - ) - -- if cross_lib: -- env.setdefault("PYO3_CROSS_LIB_DIR", cross_lib) -- - env.pop("CARGO", None) - return env - diff --git a/srcpkgs/python3-setuptools-rust/template b/srcpkgs/python3-setuptools-rust/template index 2fa8c12f45a..2e7cc0a9c60 100644 --- a/srcpkgs/python3-setuptools-rust/template +++ b/srcpkgs/python3-setuptools-rust/template @@ -1,7 +1,7 @@ # Template file for 'python3-setuptools-rust' pkgname=python3-setuptools-rust -version=1.4.1 -revision=2 +version=1.5.0 +revision=1 wrksrc="${pkgname#python3-}-${version}" build_style=python3-module hostmakedepends="python3-setuptools_scm" @@ -12,7 +12,7 @@ license="MIT" homepage="https://github.com/PyO3/setuptools-rust" changelog="https://raw.githubusercontent.com/PyO3/setuptools-rust/master/CHANGELOG.md" distfiles="${PYPI_SITE}/s/setuptools-rust/setuptools-rust-${version}.tar.gz" -checksum=18ff850831f58ee21d5783825c99fad632da21e47645e9427fd7dec048029e76 +checksum=0b8aeb814afe0e9d7c31569ec0936d1f5201993530639244fa973e1742005671 # Tests have unpackaged dependencies make_check=no