* [Buildroot] [PATCH v2 1/2] package/python-maturin: new package
@ 2022-05-10 0:31 James Hilliard
2022-05-10 0:31 ` [Buildroot] [PATCH v2 2/2] package/python-orjson: bump to version 3.6.8 James Hilliard
0 siblings, 1 reply; 6+ messages in thread
From: James Hilliard @ 2022-05-10 0:31 UTC (permalink / raw)
To: buildroot; +Cc: James Hilliard, Graeme Smecher, Thomas Petazzoni, Asaf Kahlon
This is pep517 pyo3 build backend that's an alternative to
python-setuptools-rust.
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
---
Changes v1 -> v2:
- update patch comment to backport as it is merged upstream
---
.../0001-Fix-invalid-pyproject.toml.patch | 62 +++++++++++++++++++
package/python-maturin/python-maturin.hash | 5 ++
package/python-maturin/python-maturin.mk | 20 ++++++
3 files changed, 87 insertions(+)
create mode 100644 package/python-maturin/0001-Fix-invalid-pyproject.toml.patch
create mode 100644 package/python-maturin/python-maturin.hash
create mode 100644 package/python-maturin/python-maturin.mk
diff --git a/package/python-maturin/0001-Fix-invalid-pyproject.toml.patch b/package/python-maturin/0001-Fix-invalid-pyproject.toml.patch
new file mode 100644
index 0000000000..91e9a3db94
--- /dev/null
+++ b/package/python-maturin/0001-Fix-invalid-pyproject.toml.patch
@@ -0,0 +1,62 @@
+From 9ad69941d02e494d45ee67f3bcccc83c0bb4cdcd Mon Sep 17 00:00:00 2001
+From: James Hilliard <james.hilliard1@gmail.com>
+Date: Mon, 9 May 2022 14:37:36 -0600
+Subject: [PATCH] Fix invalid pyproject.toml
+
+These attributes should be marked dynamic.
+
+Fixes:
+configuration error: `project` must contain ['version'] properties
+
+Fixes:
+The following seems to be defined outside of `pyproject.toml`:
+
+`description = 'Build and publish crates with pyo3, rust-cpython and cffi bindings as well as rust binaries as python packages'`
+
+According to the spec (see the link bellow), however, setuptools CANNOT
+consider this value unless 'description' is listed as `dynamic`.
+
+Fixes:
+The following seems to be defined outside of `pyproject.toml`:
+
+`license = 'MIT OR Apache-2.0'`
+
+According to the spec (see the link bellow), however, setuptools CANNOT
+consider this value unless 'license' is listed as `dynamic`.
+
+Fixes:
+The following seems to be defined outside of `pyproject.toml`:
+
+`authors = 'konstin'`
+
+According to the spec (see the link bellow), however, setuptools CANNOT
+consider this value unless 'authors' is listed as `dynamic`.
+
+Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
+[james.hilliard1@gmail.com: backport from upstream commit
+9ad69941d02e494d45ee67f3bcccc83c0bb4cdcd]
+---
+ pyproject.toml | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/pyproject.toml b/pyproject.toml
+index 207ceb7..329faae 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -13,6 +13,13 @@ classifiers = [
+ "Programming Language :: Python :: Implementation :: PyPy",
+ ]
+ dependencies = ["tomli>=1.1.0 ; python_version<'3.11'"]
++dynamic = [
++ "authors",
++ "description",
++ "license",
++ "readme",
++ "version"
++]
+
+ [project.optional-dependencies]
+ zig = [
+--
+2.25.1
+
diff --git a/package/python-maturin/python-maturin.hash b/package/python-maturin/python-maturin.hash
new file mode 100644
index 0000000000..e9ba83e78e
--- /dev/null
+++ b/package/python-maturin/python-maturin.hash
@@ -0,0 +1,5 @@
+# Locally calculated after vendoring
+sha256 092db51dfd1479e3abfc8eef4b109b6ab504481959e383090827e2024f09aab3 maturin-0.12.15.tar.gz
+# Locally computed sha256 checksums
+sha256 a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 license-apache
+sha256 ea7882c559733766ad08343bde1d1ec80a4967c03a738fb8e0058ef6289f7b7c license-mit
diff --git a/package/python-maturin/python-maturin.mk b/package/python-maturin/python-maturin.mk
new file mode 100644
index 0000000000..f6daabc008
--- /dev/null
+++ b/package/python-maturin/python-maturin.mk
@@ -0,0 +1,20 @@
+################################################################################
+#
+# python-maturin
+#
+################################################################################
+
+PYTHON_MATURIN_VERSION = 0.12.15
+PYTHON_MATURIN_SOURCE = maturin-$(PYTHON_MATURIN_VERSION).tar.gz
+PYTHON_MATURIN_SITE = https://files.pythonhosted.org/packages/30/4d/b8a32e0bd711f7905fa8f10487be7dbf9992c5b5b3bfa8734abf2487d967
+PYTHON_MATURIN_SETUP_TYPE = setuptools
+PYTHON_MATURIN_LICENSE = Apache-2.0 or MIT
+PYTHON_MATURIN_LICENSE_FILES = license-apache license-mit
+HOST_PYTHON_MATURIN_DEPENDENCIES = host-python-tomli host-rustc
+HOST_PYTHON_MATURIN_ENV = $(HOST_PKG_CARGO_ENV)
+# We need to vendor the Cargo crates at download time
+PYTHON_MATURIN_DOWNLOAD_POST_PROCESS = cargo
+PYTHON_MATURIN_DOWNLOAD_DEPENDENCIES = host-rustc
+HOST_PYTHON_MATURIN_DL_ENV = $(HOST_PKG_CARGO_ENV)
+
+$(eval $(host-python-package))
--
2.25.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH v2 2/2] package/python-orjson: bump to version 3.6.8
2022-05-10 0:31 [Buildroot] [PATCH v2 1/2] package/python-maturin: new package James Hilliard
@ 2022-05-10 0:31 ` James Hilliard
2022-05-10 19:01 ` Arnout Vandecappelle
0 siblings, 1 reply; 6+ messages in thread
From: James Hilliard @ 2022-05-10 0:31 UTC (permalink / raw)
To: buildroot; +Cc: James Hilliard, Graeme Smecher, Thomas Petazzoni, Asaf Kahlon
Convert package to use python infrastructure instead of cargo
infrastructure.
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
---
package/python-orjson/python-orjson.hash | 5 +++--
package/python-orjson/python-orjson.mk | 24 ++++++++++++------------
2 files changed, 15 insertions(+), 14 deletions(-)
diff --git a/package/python-orjson/python-orjson.hash b/package/python-orjson/python-orjson.hash
index 5ef2726d82..06cc5cae79 100644
--- a/package/python-orjson/python-orjson.hash
+++ b/package/python-orjson/python-orjson.hash
@@ -1,4 +1,5 @@
-# Locally calculated
-sha256 4713b120ad86b1b273f5952cbf9578c13d0f453064bd26d823e04a10c84824e6 python-orjson-3.6.7.tar.gz
+# Locally calculated after vendoring
+sha256 40b95576b81916d167f7a44829401acb3b6cbbfe9840b5ed88c9535a86507d7b orjson-3.6.8.tar.gz
+# Locally computed sha256 checksums
sha256 a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 LICENSE-APACHE
sha256 23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 LICENSE-MIT
diff --git a/package/python-orjson/python-orjson.mk b/package/python-orjson/python-orjson.mk
index 5de4b2c5fa..ccbaf37c6d 100644
--- a/package/python-orjson/python-orjson.mk
+++ b/package/python-orjson/python-orjson.mk
@@ -4,19 +4,19 @@
#
################################################################################
-PYTHON_ORJSON_VERSION = 3.6.7
-PYTHON_ORJSON_SITE = $(call github,ijl,orjson,$(PYTHON_ORJSON_VERSION))
+PYTHON_ORJSON_VERSION = 3.6.8
+PYTHON_ORJSON_SOURCE = orjson-$(PYTHON_ORJSON_VERSION).tar.gz
+PYTHON_ORJSON_SITE = https://files.pythonhosted.org/packages/14/8e/7e745d867466bdafb12ab7b0179d40f23f55639f7cd14bd375acfa74aca2
+PYTHON_ORJSON_SETUP_TYPE = pep517
PYTHON_ORJSON_LICENSE = Apache-2.0 or MIT
PYTHON_ORJSON_LICENSE_FILES = LICENSE-APACHE LICENSE-MIT
-PYTHON_ORJSON_DEPENDENCIES = host-python-cffi
-PYTHON_ORJSON_CARGO_ENV = \
+PYTHON_ORJSON_DEPENDENCIES = host-python-cffi host-python-maturin
+PYTHON_ORJSON_ENV = \
+ $(PKG_CARGO_ENV) \
PYO3_CROSS_LIB_DIR="$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)"
+# We need to vendor the Cargo crates at download time
+PYTHON_ORJSON_DOWNLOAD_POST_PROCESS = cargo
+PYTHON_ORJSON_DOWNLOAD_DEPENDENCIES = host-rustc
+PYTHON_ORJSON_DL_ENV = $(PKG_CARGO_ENV)
-# orjson uses "maturin" to generate distribution packages - rather than teach
-# buildroot how to understand this, we reach in and install directly.
-define PYTHON_ORJSON_INSTALL_TARGET_CMDS
- $(INSTALL) -m 0755 -D $(@D)/target/$(RUSTC_TARGET_NAME)/release/liborjson.so \
- $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/orjson.so
-endef
-
-$(eval $(cargo-package))
+$(eval $(python-package))
--
2.25.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Buildroot] [PATCH v2 2/2] package/python-orjson: bump to version 3.6.8
2022-05-10 0:31 ` [Buildroot] [PATCH v2 2/2] package/python-orjson: bump to version 3.6.8 James Hilliard
@ 2022-05-10 19:01 ` Arnout Vandecappelle
2022-05-10 20:03 ` James Hilliard
0 siblings, 1 reply; 6+ messages in thread
From: Arnout Vandecappelle @ 2022-05-10 19:01 UTC (permalink / raw)
To: James Hilliard, buildroot; +Cc: Graeme Smecher, Asaf Kahlon, Thomas Petazzoni
On 10/05/2022 02:31, James Hilliard wrote:
> Convert package to use python infrastructure instead of cargo
> infrastructure.
AFAIU, maturin was already available in 3.6.7, so the conversion should be
separate from the bump.
That said, I think Graeme intentionally did not use maturin because it doesn't
really offer much benefit over calling cargo directly. Do you have a reason to
prefer using maturin?
>
> Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
> ---
> package/python-orjson/python-orjson.hash | 5 +++--
> package/python-orjson/python-orjson.mk | 24 ++++++++++++------------
> 2 files changed, 15 insertions(+), 14 deletions(-)
>
> diff --git a/package/python-orjson/python-orjson.hash b/package/python-orjson/python-orjson.hash
> index 5ef2726d82..06cc5cae79 100644
> --- a/package/python-orjson/python-orjson.hash
> +++ b/package/python-orjson/python-orjson.hash
> @@ -1,4 +1,5 @@
> -# Locally calculated
> -sha256 4713b120ad86b1b273f5952cbf9578c13d0f453064bd26d823e04a10c84824e6 python-orjson-3.6.7.tar.gz
> +# Locally calculated after vendoring
> +sha256 40b95576b81916d167f7a44829401acb3b6cbbfe9840b5ed88c9535a86507d7b orjson-3.6.8.tar.gz
> +# Locally computed sha256 checksums
> sha256 a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 LICENSE-APACHE
> sha256 23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 LICENSE-MIT
> diff --git a/package/python-orjson/python-orjson.mk b/package/python-orjson/python-orjson.mk
> index 5de4b2c5fa..ccbaf37c6d 100644
> --- a/package/python-orjson/python-orjson.mk
> +++ b/package/python-orjson/python-orjson.mk
> @@ -4,19 +4,19 @@
> #
> ################################################################################
>
> -PYTHON_ORJSON_VERSION = 3.6.7
> -PYTHON_ORJSON_SITE = $(call github,ijl,orjson,$(PYTHON_ORJSON_VERSION))
> +PYTHON_ORJSON_VERSION = 3.6.8
> +PYTHON_ORJSON_SOURCE = orjson-$(PYTHON_ORJSON_VERSION).tar.gz
> +PYTHON_ORJSON_SITE = https://files.pythonhosted.org/packages/14/8e/7e745d867466bdafb12ab7b0179d40f23f55639f7cd14bd375acfa74aca2
Kind of an aside, since this applies to many other packages: is there a reason
we prefer to get Python packages from pypi rather than the upstream source itself?
> +PYTHON_ORJSON_SETUP_TYPE = pep517
> PYTHON_ORJSON_LICENSE = Apache-2.0 or MIT
> PYTHON_ORJSON_LICENSE_FILES = LICENSE-APACHE LICENSE-MIT
> -PYTHON_ORJSON_DEPENDENCIES = host-python-cffi
> -PYTHON_ORJSON_CARGO_ENV = \
> +PYTHON_ORJSON_DEPENDENCIES = host-python-cffi host-python-maturin
> +PYTHON_ORJSON_ENV = \
> + $(PKG_CARGO_ENV) \
> PYO3_CROSS_LIB_DIR="$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)"
> +# We need to vendor the Cargo crates at download time
> +PYTHON_ORJSON_DOWNLOAD_POST_PROCESS = cargo
> +PYTHON_ORJSON_DOWNLOAD_DEPENDENCIES = host-rustc
> +PYTHON_ORJSON_DL_ENV = $(PKG_CARGO_ENV)
Is this going to be needed for all maturin packages? If yes, it will make
sense to move this into a maturin setup type (but preferably only after we have
at least 3 packages that use it).
Regards,
Arnout
>
> -# orjson uses "maturin" to generate distribution packages - rather than teach
> -# buildroot how to understand this, we reach in and install directly.
> -define PYTHON_ORJSON_INSTALL_TARGET_CMDS
> - $(INSTALL) -m 0755 -D $(@D)/target/$(RUSTC_TARGET_NAME)/release/liborjson.so \
> - $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/orjson.so
> -endef
> -
> -$(eval $(cargo-package))
> +$(eval $(python-package))
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Buildroot] [PATCH v2 2/2] package/python-orjson: bump to version 3.6.8
2022-05-10 19:01 ` Arnout Vandecappelle
@ 2022-05-10 20:03 ` James Hilliard
2022-05-11 17:17 ` Graeme Smecher
0 siblings, 1 reply; 6+ messages in thread
From: James Hilliard @ 2022-05-10 20:03 UTC (permalink / raw)
To: Arnout Vandecappelle
Cc: Graeme Smecher, Asaf Kahlon, Thomas Petazzoni, buildroot
On Tue, May 10, 2022 at 1:01 PM Arnout Vandecappelle <arnout@mind.be> wrote:
>
>
>
> On 10/05/2022 02:31, James Hilliard wrote:
> > Convert package to use python infrastructure instead of cargo
> > infrastructure.
>
> AFAIU, maturin was already available in 3.6.7, so the conversion should be
> separate from the bump.
I mostly did it at the same time to avoid any potential conflicts/confusion
with mirrored assets.
>
> That said, I think Graeme intentionally did not use maturin because it doesn't
> really offer much benefit over calling cargo directly. Do you have a reason to
> prefer using maturin?
It should be more correct, I mean calling cargo directly doesn't really properly
install say pure python files and is more likely to break in weird ways.
>
> >
> > Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
> > ---
> > package/python-orjson/python-orjson.hash | 5 +++--
> > package/python-orjson/python-orjson.mk | 24 ++++++++++++------------
> > 2 files changed, 15 insertions(+), 14 deletions(-)
> >
> > diff --git a/package/python-orjson/python-orjson.hash b/package/python-orjson/python-orjson.hash
> > index 5ef2726d82..06cc5cae79 100644
> > --- a/package/python-orjson/python-orjson.hash
> > +++ b/package/python-orjson/python-orjson.hash
> > @@ -1,4 +1,5 @@
> > -# Locally calculated
> > -sha256 4713b120ad86b1b273f5952cbf9578c13d0f453064bd26d823e04a10c84824e6 python-orjson-3.6.7.tar.gz
> > +# Locally calculated after vendoring
> > +sha256 40b95576b81916d167f7a44829401acb3b6cbbfe9840b5ed88c9535a86507d7b orjson-3.6.8.tar.gz
> > +# Locally computed sha256 checksums
> > sha256 a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 LICENSE-APACHE
> > sha256 23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 LICENSE-MIT
> > diff --git a/package/python-orjson/python-orjson.mk b/package/python-orjson/python-orjson.mk
> > index 5de4b2c5fa..ccbaf37c6d 100644
> > --- a/package/python-orjson/python-orjson.mk
> > +++ b/package/python-orjson/python-orjson.mk
> > @@ -4,19 +4,19 @@
> > #
> > ################################################################################
> >
> > -PYTHON_ORJSON_VERSION = 3.6.7
> > -PYTHON_ORJSON_SITE = $(call github,ijl,orjson,$(PYTHON_ORJSON_VERSION))
> > +PYTHON_ORJSON_VERSION = 3.6.8
> > +PYTHON_ORJSON_SOURCE = orjson-$(PYTHON_ORJSON_VERSION).tar.gz
> > +PYTHON_ORJSON_SITE = https://files.pythonhosted.org/packages/14/8e/7e745d867466bdafb12ab7b0179d40f23f55639f7cd14bd375acfa74aca2
>
> Kind of an aside, since this applies to many other packages: is there a reason
> we prefer to get Python packages from pypi rather than the upstream source itself?
These are sdist's(release tarball equivalents for python packages)
while upstream
source is not.
>
> > +PYTHON_ORJSON_SETUP_TYPE = pep517
> > PYTHON_ORJSON_LICENSE = Apache-2.0 or MIT
> > PYTHON_ORJSON_LICENSE_FILES = LICENSE-APACHE LICENSE-MIT
> > -PYTHON_ORJSON_DEPENDENCIES = host-python-cffi
> > -PYTHON_ORJSON_CARGO_ENV = \
> > +PYTHON_ORJSON_DEPENDENCIES = host-python-cffi host-python-maturin
> > +PYTHON_ORJSON_ENV = \
> > + $(PKG_CARGO_ENV) \
> > PYO3_CROSS_LIB_DIR="$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)"
> > +# We need to vendor the Cargo crates at download time
> > +PYTHON_ORJSON_DOWNLOAD_POST_PROCESS = cargo
> > +PYTHON_ORJSON_DOWNLOAD_DEPENDENCIES = host-rustc
> > +PYTHON_ORJSON_DL_ENV = $(PKG_CARGO_ENV)
>
> Is this going to be needed for all maturin packages? If yes, it will make
> sense to move this into a maturin setup type (but preferably only after we have
> at least 3 packages that use it).
Yes, I'm planning on adding that along with a setuptools-rust setup type, I have
some upstream work that should making things clearer as well like this:
https://github.com/PyO3/maturin/pull/909
I'm going to rework this to handle maturin as well(both are pyo3 build tools):
https://patchwork.ozlabs.org/project/buildroot/patch/20220501074401.1135229-1-james.hilliard1@gmail.com/
>
> Regards,
> Arnout
>
> >
> > -# orjson uses "maturin" to generate distribution packages - rather than teach
> > -# buildroot how to understand this, we reach in and install directly.
> > -define PYTHON_ORJSON_INSTALL_TARGET_CMDS
> > - $(INSTALL) -m 0755 -D $(@D)/target/$(RUSTC_TARGET_NAME)/release/liborjson.so \
> > - $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/orjson.so
> > -endef
> > -
> > -$(eval $(cargo-package))
> > +$(eval $(python-package))
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Buildroot] [PATCH v2 2/2] package/python-orjson: bump to version 3.6.8
2022-05-10 20:03 ` James Hilliard
@ 2022-05-11 17:17 ` Graeme Smecher
2022-05-11 17:25 ` Arnout Vandecappelle
0 siblings, 1 reply; 6+ messages in thread
From: Graeme Smecher @ 2022-05-11 17:17 UTC (permalink / raw)
To: James Hilliard, Arnout Vandecappelle
Cc: Asaf Kahlon, Thomas Petazzoni, buildroot
Hi James and Arnout,
On 2022-05-10 13:03, James Hilliard wrote:
> On Tue, May 10, 2022 at 1:01 PM Arnout Vandecappelle <arnout@mind.be> wrote:
>>
>>
>>
>> On 10/05/2022 02:31, James Hilliard wrote:
>>> Convert package to use python infrastructure instead of cargo
>>> infrastructure.
>>
>> AFAIU, maturin was already available in 3.6.7, so the conversion should be
>> separate from the bump.
>
> I mostly did it at the same time to avoid any potential conflicts/confusion
> with mirrored assets.
>
>>
>> That said, I think Graeme intentionally did not use maturin because it doesn't
>> really offer much benefit over calling cargo directly. Do you have a reason to
>> prefer using maturin?
>
> It should be more correct, I mean calling cargo directly doesn't really properly
> install say pure python files and is more likely to break in weird ways.
The python-maturin package wasn't available when I initially packaged
orjson (3.6.7).
I suspect if this patch works, then shifting python-orjson to
python-maturin will be less brittle (or, brittle in ways that are less
isolated) than the current maturin bypass.
If the extra information would be helpful, I can give this
python-maturin approach a try and see if it works in my application.
best,
Graeme
>
>>
>>>
>>> Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
>>> ---
>>> package/python-orjson/python-orjson.hash | 5 +++--
>>> package/python-orjson/python-orjson.mk | 24 ++++++++++++------------
>>> 2 files changed, 15 insertions(+), 14 deletions(-)
>>>
>>> diff --git a/package/python-orjson/python-orjson.hash b/package/python-orjson/python-orjson.hash
>>> index 5ef2726d82..06cc5cae79 100644
>>> --- a/package/python-orjson/python-orjson.hash
>>> +++ b/package/python-orjson/python-orjson.hash
>>> @@ -1,4 +1,5 @@
>>> -# Locally calculated
>>> -sha256 4713b120ad86b1b273f5952cbf9578c13d0f453064bd26d823e04a10c84824e6 python-orjson-3.6.7.tar.gz
>>> +# Locally calculated after vendoring
>>> +sha256 40b95576b81916d167f7a44829401acb3b6cbbfe9840b5ed88c9535a86507d7b orjson-3.6.8.tar.gz
>>> +# Locally computed sha256 checksums
>>> sha256 a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 LICENSE-APACHE
>>> sha256 23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 LICENSE-MIT
>>> diff --git a/package/python-orjson/python-orjson.mk b/package/python-orjson/python-orjson.mk
>>> index 5de4b2c5fa..ccbaf37c6d 100644
>>> --- a/package/python-orjson/python-orjson.mk
>>> +++ b/package/python-orjson/python-orjson.mk
>>> @@ -4,19 +4,19 @@
>>> #
>>> ################################################################################
>>>
>>> -PYTHON_ORJSON_VERSION = 3.6.7
>>> -PYTHON_ORJSON_SITE = $(call github,ijl,orjson,$(PYTHON_ORJSON_VERSION))
>>> +PYTHON_ORJSON_VERSION = 3.6.8
>>> +PYTHON_ORJSON_SOURCE = orjson-$(PYTHON_ORJSON_VERSION).tar.gz
>>> +PYTHON_ORJSON_SITE = https://files.pythonhosted.org/packages/14/8e/7e745d867466bdafb12ab7b0179d40f23f55639f7cd14bd375acfa74aca2
>>
>> Kind of an aside, since this applies to many other packages: is there a reason
>> we prefer to get Python packages from pypi rather than the upstream source itself?
>
> These are sdist's(release tarball equivalents for python packages)
> while upstream
> source is not.
>
>>
>>> +PYTHON_ORJSON_SETUP_TYPE = pep517
>>> PYTHON_ORJSON_LICENSE = Apache-2.0 or MIT
>>> PYTHON_ORJSON_LICENSE_FILES = LICENSE-APACHE LICENSE-MIT
>>> -PYTHON_ORJSON_DEPENDENCIES = host-python-cffi
>>> -PYTHON_ORJSON_CARGO_ENV = \
>>> +PYTHON_ORJSON_DEPENDENCIES = host-python-cffi host-python-maturin
>>> +PYTHON_ORJSON_ENV = \
>>> + $(PKG_CARGO_ENV) \
>>> PYO3_CROSS_LIB_DIR="$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)"
>>> +# We need to vendor the Cargo crates at download time
>>> +PYTHON_ORJSON_DOWNLOAD_POST_PROCESS = cargo
>>> +PYTHON_ORJSON_DOWNLOAD_DEPENDENCIES = host-rustc
>>> +PYTHON_ORJSON_DL_ENV = $(PKG_CARGO_ENV)
>>
>> Is this going to be needed for all maturin packages? If yes, it will make
>> sense to move this into a maturin setup type (but preferably only after we have
>> at least 3 packages that use it).
>
> Yes, I'm planning on adding that along with a setuptools-rust setup type, I have
> some upstream work that should making things clearer as well like this:
> https://github.com/PyO3/maturin/pull/909
>
> I'm going to rework this to handle maturin as well(both are pyo3 build tools):
> https://patchwork.ozlabs.org/project/buildroot/patch/20220501074401.1135229-1-james.hilliard1@gmail.com/
>
>>
>> Regards,
>> Arnout
>>
>>>
>>> -# orjson uses "maturin" to generate distribution packages - rather than teach
>>> -# buildroot how to understand this, we reach in and install directly.
>>> -define PYTHON_ORJSON_INSTALL_TARGET_CMDS
>>> - $(INSTALL) -m 0755 -D $(@D)/target/$(RUSTC_TARGET_NAME)/release/liborjson.so \
>>> - $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/orjson.so
>>> -endef
>>> -
>>> -$(eval $(cargo-package))
>>> +$(eval $(python-package))
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Buildroot] [PATCH v2 2/2] package/python-orjson: bump to version 3.6.8
2022-05-11 17:17 ` Graeme Smecher
@ 2022-05-11 17:25 ` Arnout Vandecappelle
0 siblings, 0 replies; 6+ messages in thread
From: Arnout Vandecappelle @ 2022-05-11 17:25 UTC (permalink / raw)
To: Graeme Smecher, James Hilliard; +Cc: Asaf Kahlon, Thomas Petazzoni, buildroot
On 11/05/2022 19:17, Graeme Smecher wrote:
> Hi James and Arnout,
>
> On 2022-05-10 13:03, James Hilliard wrote:
>> On Tue, May 10, 2022 at 1:01 PM Arnout Vandecappelle <arnout@mind.be> wrote:
>>>
>>>
>>>
>>> On 10/05/2022 02:31, James Hilliard wrote:
>>>> Convert package to use python infrastructure instead of cargo
>>>> infrastructure.
>>>
>>> AFAIU, maturin was already available in 3.6.7, so the conversion should be
>>> separate from the bump.
>>
>> I mostly did it at the same time to avoid any potential conflicts/confusion
>> with mirrored assets.
>>
>>>
>>> That said, I think Graeme intentionally did not use maturin because it
>>> doesn't
>>> really offer much benefit over calling cargo directly. Do you have a reason to
>>> prefer using maturin?
>>
>> It should be more correct, I mean calling cargo directly doesn't really properly
>> install say pure python files and is more likely to break in weird ways.
>
> The python-maturin package wasn't available when I initially packaged orjson
> (3.6.7).
>
> I suspect if this patch works, then shifting python-orjson to python-maturin
> will be less brittle (or, brittle in ways that are less isolated) than the
> current maturin bypass.
>
> If the extra information would be helpful, I can give this python-maturin
> approach a try and see if it works in my application.
Yes please! If it's good, then please add your Tested-by to the first patch in
this series.
Regards,
Arnout
>
> best,
> Graeme
>
>>
>>>
>>>>
>>>> Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
>>>> ---
>>>> package/python-orjson/python-orjson.hash | 5 +++--
>>>> package/python-orjson/python-orjson.mk | 24 ++++++++++++------------
>>>> 2 files changed, 15 insertions(+), 14 deletions(-)
>>>>
>>>> diff --git a/package/python-orjson/python-orjson.hash
>>>> b/package/python-orjson/python-orjson.hash
>>>> index 5ef2726d82..06cc5cae79 100644
>>>> --- a/package/python-orjson/python-orjson.hash
>>>> +++ b/package/python-orjson/python-orjson.hash
>>>> @@ -1,4 +1,5 @@
>>>> -# Locally calculated
>>>> -sha256 4713b120ad86b1b273f5952cbf9578c13d0f453064bd26d823e04a10c84824e6
>>>> python-orjson-3.6.7.tar.gz
>>>> +# Locally calculated after vendoring
>>>> +sha256 40b95576b81916d167f7a44829401acb3b6cbbfe9840b5ed88c9535a86507d7b
>>>> orjson-3.6.8.tar.gz
>>>> +# Locally computed sha256 checksums
>>>> sha256 a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2
>>>> LICENSE-APACHE
>>>> sha256 23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3
>>>> LICENSE-MIT
>>>> diff --git a/package/python-orjson/python-orjson.mk
>>>> b/package/python-orjson/python-orjson.mk
>>>> index 5de4b2c5fa..ccbaf37c6d 100644
>>>> --- a/package/python-orjson/python-orjson.mk
>>>> +++ b/package/python-orjson/python-orjson.mk
>>>> @@ -4,19 +4,19 @@
>>>> #
>>>>
>>>> ################################################################################
>>>>
>>>>
>>>> -PYTHON_ORJSON_VERSION = 3.6.7
>>>> -PYTHON_ORJSON_SITE = $(call github,ijl,orjson,$(PYTHON_ORJSON_VERSION))
>>>> +PYTHON_ORJSON_VERSION = 3.6.8
>>>> +PYTHON_ORJSON_SOURCE = orjson-$(PYTHON_ORJSON_VERSION).tar.gz
>>>> +PYTHON_ORJSON_SITE =
>>>> https://files.pythonhosted.org/packages/14/8e/7e745d867466bdafb12ab7b0179d40f23f55639f7cd14bd375acfa74aca2
>>>>
>>>
>>> Kind of an aside, since this applies to many other packages: is there a
>>> reason
>>> we prefer to get Python packages from pypi rather than the upstream source
>>> itself?
>>
>> These are sdist's(release tarball equivalents for python packages)
>> while upstream
>> source is not.
>>
>>>
>>>> +PYTHON_ORJSON_SETUP_TYPE = pep517
>>>> PYTHON_ORJSON_LICENSE = Apache-2.0 or MIT
>>>> PYTHON_ORJSON_LICENSE_FILES = LICENSE-APACHE LICENSE-MIT
>>>> -PYTHON_ORJSON_DEPENDENCIES = host-python-cffi
>>>> -PYTHON_ORJSON_CARGO_ENV = \
>>>> +PYTHON_ORJSON_DEPENDENCIES = host-python-cffi host-python-maturin
>>>> +PYTHON_ORJSON_ENV = \
>>>> + $(PKG_CARGO_ENV) \
>>>>
>>>> PYO3_CROSS_LIB_DIR="$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)"
>>>> +# We need to vendor the Cargo crates at download time
>>>> +PYTHON_ORJSON_DOWNLOAD_POST_PROCESS = cargo
>>>> +PYTHON_ORJSON_DOWNLOAD_DEPENDENCIES = host-rustc
>>>> +PYTHON_ORJSON_DL_ENV = $(PKG_CARGO_ENV)
>>>
>>> Is this going to be needed for all maturin packages? If yes, it will make
>>> sense to move this into a maturin setup type (but preferably only after we have
>>> at least 3 packages that use it).
>>
>> Yes, I'm planning on adding that along with a setuptools-rust setup type, I have
>> some upstream work that should making things clearer as well like this:
>> https://github.com/PyO3/maturin/pull/909
>>
>> I'm going to rework this to handle maturin as well(both are pyo3 build tools):
>> https://patchwork.ozlabs.org/project/buildroot/patch/20220501074401.1135229-1-james.hilliard1@gmail.com/
>>
>>
>>>
>>> Regards,
>>> Arnout
>>>
>>>>
>>>> -# orjson uses "maturin" to generate distribution packages - rather than teach
>>>> -# buildroot how to understand this, we reach in and install directly.
>>>> -define PYTHON_ORJSON_INSTALL_TARGET_CMDS
>>>> - $(INSTALL) -m 0755 -D
>>>> $(@D)/target/$(RUSTC_TARGET_NAME)/release/liborjson.so \
>>>> -
>>>> $(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/orjson.so
>>>> -endef
>>>> -
>>>> -$(eval $(cargo-package))
>>>> +$(eval $(python-package))
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-05-11 17:25 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-10 0:31 [Buildroot] [PATCH v2 1/2] package/python-maturin: new package James Hilliard
2022-05-10 0:31 ` [Buildroot] [PATCH v2 2/2] package/python-orjson: bump to version 3.6.8 James Hilliard
2022-05-10 19:01 ` Arnout Vandecappelle
2022-05-10 20:03 ` James Hilliard
2022-05-11 17:17 ` Graeme Smecher
2022-05-11 17:25 ` Arnout Vandecappelle
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.