diff mbox series

[v2] package/python-orjson: disallow build when using musl.

Message ID 20220519160214.214701-1-gsmecher@threespeedlogic.com
State Deferred
Headers show
Series [v2] package/python-orjson: disallow build when using musl. | expand

Commit Message

Graeme Smecher May 19, 2022, 4:02 p.m. UTC
The python-orjson build bails as follows when using musl libc:

	error: cannot produce cdylib for `orjson v3.6.7 (...)` as the
	target `i586-unknown-linux-musl` does not support these crate types

It's not machine-specific (it occurs on i586, s389x, and arm platforms),
and is tied to what appears to be relatively arcane details for
rust/musl:

	https://github.com/rust-lang/rust/issues/59302

At some point, it will be possible to remove this restriction - but not
yet.

Signed-off-by: Graeme Smecher <gsmecher@threespeedlogic.com>
---
 package/python-orjson/Config.in | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Yann E. MORIN Feb. 7, 2023, 4:38 p.m. UTC | #1
Graeme, All,

On 2022-05-19 09:02 -0700, Graeme Smecher spake thusly:
> The python-orjson build bails as follows when using musl libc:
> 
> 	error: cannot produce cdylib for `orjson v3.6.7 (...)` as the
> 	target `i586-unknown-linux-musl` does not support these crate types

I could not reproduce such an error wit the following defconfig:

    BR2_TOOLCHAIN_BUILDROOT_MUSL=y
    BR2_TOOLCHAIN_BUILDROOT_CXX=y
    BR2_PER_PACKAGE_DIRECTORIES=y
    BR2_PACKAGE_PYTHON3=y
    BR2_PACKAGE_PYTHON_ORJSON=y

Since you submitted this patch, pythn-orjson was bumped multiple times,
and we've also bumped rust to 1.66.1, so maybe that was fixed now.

Could you have a further look into this, please?

Regards,
Yann E. MORIN.

> It's not machine-specific (it occurs on i586, s389x, and arm platforms),
> and is tied to what appears to be relatively arcane details for
> rust/musl:
> 
> 	https://github.com/rust-lang/rust/issues/59302
> 
> At some point, it will be possible to remove this restriction - but not
> yet.
> 
> Signed-off-by: Graeme Smecher <gsmecher@threespeedlogic.com>
> ---
>  package/python-orjson/Config.in | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/package/python-orjson/Config.in b/package/python-orjson/Config.in
> index 420e023b0a..b2ad9062cc 100644
> --- a/package/python-orjson/Config.in
> +++ b/package/python-orjson/Config.in
> @@ -1,6 +1,8 @@
>  config BR2_PACKAGE_PYTHON_ORJSON
>  	bool "python-orjson"
>  	depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
> +	# doesn't build with musl until rust's cdylib targets work with it
> +	depends on !BR2_TOOLCHAIN_USES_MUSL
>  	select BR2_PACKAGE_PYTHON_CFFI # runtime
>  	help
>  	  orjson is a fast, correct JSON library for Python. It
> @@ -10,3 +12,6 @@ config BR2_PACKAGE_PYTHON_ORJSON
>  	  instances natively.
>  
>  	  https://github.com/ijl/orjson
> +
> +comment "python-orjson requires rust cdylib support, which musl doesn't have yet"
> +	depends on BR2_TOOLCHAIN_USES_MUSL
> -- 
> 2.35.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
Graeme Smecher Feb. 7, 2023, 5:14 p.m. UTC | #2
Hi Yann,
On 2023-02-07 08:38, Yann E. MORIN wrote:
> Graeme, All,
> 
> On 2022-05-19 09:02 -0700, Graeme Smecher spake thusly:
>> The python-orjson build bails as follows when using musl libc:
>>
>> 	error: cannot produce cdylib for `orjson v3.6.7 (...)` as the
>> 	target `i586-unknown-linux-musl` does not support these crate types
> 
> I could not reproduce such an error wit the following defconfig:
> 
>      BR2_TOOLCHAIN_BUILDROOT_MUSL=y
>      BR2_TOOLCHAIN_BUILDROOT_CXX=y
>      BR2_PER_PACKAGE_DIRECTORIES=y
>      BR2_PACKAGE_PYTHON3=y
>      BR2_PACKAGE_PYTHON_ORJSON=y
> 
> Since you submitted this patch, pythn-orjson was bumped multiple times,
> and we've also bumped rust to 1.66.1, so maybe that was fixed now.
> 
> Could you have a further look into this, please?

This patch is obsolete. I used to receive orjson build failures associated with musl on a regular basis - they have tapered off since mid-2022.

Over the past ~6 months or so, only the mips autobuilds have failed with the following message:

- maturin failed
   Caused by: The architecture mips is not supported

http://autobuild.buildroot.net/results/7291d123479411e632b8380f0045a18814dc23ae

I am happy to drop the patch.

best,
Graeme

> 
> Regards,
> Yann E. MORIN.
> 
>> It's not machine-specific (it occurs on i586, s389x, and arm platforms),
>> and is tied to what appears to be relatively arcane details for
>> rust/musl:
>>
>> 	https://github.com/rust-lang/rust/issues/59302
>>
>> At some point, it will be possible to remove this restriction - but not
>> yet.
>>
>> Signed-off-by: Graeme Smecher <gsmecher@threespeedlogic.com>
>> ---
>>   package/python-orjson/Config.in | 5 +++++
>>   1 file changed, 5 insertions(+)
>>
>> diff --git a/package/python-orjson/Config.in b/package/python-orjson/Config.in
>> index 420e023b0a..b2ad9062cc 100644
>> --- a/package/python-orjson/Config.in
>> +++ b/package/python-orjson/Config.in
>> @@ -1,6 +1,8 @@
>>   config BR2_PACKAGE_PYTHON_ORJSON
>>   	bool "python-orjson"
>>   	depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
>> +	# doesn't build with musl until rust's cdylib targets work with it
>> +	depends on !BR2_TOOLCHAIN_USES_MUSL
>>   	select BR2_PACKAGE_PYTHON_CFFI # runtime
>>   	help
>>   	  orjson is a fast, correct JSON library for Python. It
>> @@ -10,3 +12,6 @@ config BR2_PACKAGE_PYTHON_ORJSON
>>   	  instances natively.
>>   
>>   	  https://github.com/ijl/orjson
>> +
>> +comment "python-orjson requires rust cdylib support, which musl doesn't have yet"
>> +	depends on BR2_TOOLCHAIN_USES_MUSL
>> -- 
>> 2.35.1
>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot@buildroot.org
>> https://lists.buildroot.org/mailman/listinfo/buildroot
>
Yann E. MORIN Feb. 7, 2023, 5:29 p.m. UTC | #3
Graeme, All,

On 2023-02-07 09:14 -0800, Graeme Smecher spake thusly:
> On 2023-02-07 08:38, Yann E. MORIN wrote:
> >On 2022-05-19 09:02 -0700, Graeme Smecher spake thusly:
> >>The python-orjson build bails as follows when using musl libc:
> >I could not reproduce such an error wit the following defconfig:
[--SNIP--]
> This patch is obsolete. I used to receive orjson build failures
> associated with musl on a regular basis - they have tapered off since
> mid-2022.

In the meantime, Thomas has bisected the resolution to that commit from
James:

    2cbf1e4d3a1a package/python-orjson: convert to use the python-package infrastructure

The commit before, it fails to build; with that commit, the build
succeeds.

Regards,
Yann E. MORIN.
Graeme Smecher Feb. 7, 2023, 5:56 p.m. UTC | #4
Hi Yann,

On 2023-02-07 09:29, Yann E. MORIN wrote:
> Graeme, All,
> 
> On 2023-02-07 09:14 -0800, Graeme Smecher spake thusly:
>> On 2023-02-07 08:38, Yann E. MORIN wrote:
>>> On 2022-05-19 09:02 -0700, Graeme Smecher spake thusly:
>>>> The python-orjson build bails as follows when using musl libc:
>>> I could not reproduce such an error wit the following defconfig:
> [--SNIP--]
>> This patch is obsolete. I used to receive orjson build failures
>> associated with musl on a regular basis - they have tapered off since
>> mid-2022.
> 
> In the meantime, Thomas has bisected the resolution to that commit from
> James:
> 
>      2cbf1e4d3a1a package/python-orjson: convert to use the python-package infrastructure
> 
> The commit before, it fails to build; with that commit, the build
> succeeds.

Excellent - two birds, one stone. Thanks again for all your work.

best,
Graeme
diff mbox series

Patch

diff --git a/package/python-orjson/Config.in b/package/python-orjson/Config.in
index 420e023b0a..b2ad9062cc 100644
--- a/package/python-orjson/Config.in
+++ b/package/python-orjson/Config.in
@@ -1,6 +1,8 @@ 
 config BR2_PACKAGE_PYTHON_ORJSON
 	bool "python-orjson"
 	depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
+	# doesn't build with musl until rust's cdylib targets work with it
+	depends on !BR2_TOOLCHAIN_USES_MUSL
 	select BR2_PACKAGE_PYTHON_CFFI # runtime
 	help
 	  orjson is a fast, correct JSON library for Python. It
@@ -10,3 +12,6 @@  config BR2_PACKAGE_PYTHON_ORJSON
 	  instances natively.
 
 	  https://github.com/ijl/orjson
+
+comment "python-orjson requires rust cdylib support, which musl doesn't have yet"
+	depends on BR2_TOOLCHAIN_USES_MUSL