All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.