All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2 0/2] new Avro packages
@ 2019-12-12 12:41 Titouan Christophe
  2019-12-12 12:41 ` [Buildroot] [PATCH v2 1/2] package/avro-c: new package Titouan Christophe
  2019-12-12 12:41 ` [Buildroot] [PATCH v2 2/2] package/python-avro: " Titouan Christophe
  0 siblings, 2 replies; 8+ messages in thread
From: Titouan Christophe @ 2019-12-12 12:41 UTC (permalink / raw)
  To: buildroot

Apache Avro is a data serialization system, somewhat similar to protobuff or
cap'n proto. Unlike them however, Avro schemas can be distributed in JSON
files to be loaded at runtime, rather than language-specific generated code
to use at compile time, even though the latter is also possible with Avro.

This series adds 2 packages for the Avro serialization format:
* 1 package for the C language bindings and files manipulation utilities
* 1 package for the Python3 language bindings, and a file manipulation utility

There are also Avro bindings for other languages such as Perl, PHP, Java, Ruby
or C++. However, because I am not familiar with these ones and not using them,
they are not part of this initial series.
---
Changes v1->v2:
* Use per-language archives from upstream
* Split new packages in multiple patches
* Keep my DEVELOPERS packages in alphabetical order
---
Titouan Christophe (2):
  package/avro-c: new package
  package/python-avro: new package

 DEVELOPERS                                |  2 ++
 package/Config.in                         |  2 ++
 package/avro-c/0001-Compile-on-musl.patch | 39 +++++++++++++++++++++++
 package/avro-c/Config.in                  | 20 ++++++++++++
 package/avro-c/avro-c.hash                |  6 ++++
 package/avro-c/avro-c.mk                  | 14 ++++++++
 package/python-avro/Config.in             | 18 +++++++++++
 package/python-avro/python-avro.hash      |  6 ++++
 package/python-avro/python-avro.mk        | 14 ++++++++
 9 files changed, 121 insertions(+)
 create mode 100644 package/avro-c/0001-Compile-on-musl.patch
 create mode 100644 package/avro-c/Config.in
 create mode 100644 package/avro-c/avro-c.hash
 create mode 100644 package/avro-c/avro-c.mk
 create mode 100644 package/python-avro/Config.in
 create mode 100644 package/python-avro/python-avro.hash
 create mode 100644 package/python-avro/python-avro.mk

-- 
2.23.0

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH v2 1/2] package/avro-c: new package
  2019-12-12 12:41 [Buildroot] [PATCH v2 0/2] new Avro packages Titouan Christophe
@ 2019-12-12 12:41 ` Titouan Christophe
  2019-12-12 20:49   ` Gilles Talis
  2019-12-12 12:41 ` [Buildroot] [PATCH v2 2/2] package/python-avro: " Titouan Christophe
  1 sibling, 1 reply; 8+ messages in thread
From: Titouan Christophe @ 2019-12-12 12:41 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Titouan Christophe <titouan.christophe@railnova.eu>
---
 DEVELOPERS                                |  1 +
 package/Config.in                         |  1 +
 package/avro-c/0001-Compile-on-musl.patch | 39 +++++++++++++++++++++++
 package/avro-c/Config.in                  | 20 ++++++++++++
 package/avro-c/avro-c.hash                |  6 ++++
 package/avro-c/avro-c.mk                  | 14 ++++++++
 6 files changed, 81 insertions(+)
 create mode 100644 package/avro-c/0001-Compile-on-musl.patch
 create mode 100644 package/avro-c/Config.in
 create mode 100644 package/avro-c/avro-c.hash
 create mode 100644 package/avro-c/avro-c.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index 66964d035d..639bd21904 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2399,6 +2399,7 @@ N:	Timo Ketola <timo.ketola@exertus.fi>
 F:	package/fbgrab/
 
 N:	Titouan Christophe <titouan.christophe@railnova.eu>
+F:	package/avro-c/
 F:	package/mosquitto/
 F:	package/redis/
 
diff --git a/package/Config.in b/package/Config.in
index 405732bc7a..29eaf043cd 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1708,6 +1708,7 @@ menu "Other"
 	source "package/argp-standalone/Config.in"
 	source "package/armadillo/Config.in"
 	source "package/atf/Config.in"
+	source "package/avro-c/Config.in"
 	source "package/bctoolbox/Config.in"
 	source "package/bdwgc/Config.in"
 	source "package/boost/Config.in"
diff --git a/package/avro-c/0001-Compile-on-musl.patch b/package/avro-c/0001-Compile-on-musl.patch
new file mode 100644
index 0000000000..2f1b0f62db
--- /dev/null
+++ b/package/avro-c/0001-Compile-on-musl.patch
@@ -0,0 +1,39 @@
+From 55a5ad94c77896eb25e2c7ed024d78a0a2c09007 Mon Sep 17 00:00:00 2001
+From: Titouan Christophe <titouan.christophe@railnova.eu>
+Date: Sun, 8 Dec 2019 01:55:59 +0100
+Subject: [PATCH 1/1] Allow avro C to be built on musl based systems.
+
+The type `ssize_t` is defined in sys/types.h, and nowhere else
+in the musl standard C library, so it should be included for the
+compilation to succeed.
+
+This fixes several errors like:
+
+    In file included from src/generic.c:29:0:
+    src/generic.c: In function 'avro_generic_value_new':
+    src/avro_generic_internal.h:63:39:
+        error: 'ssize_t' undeclared (first use in this function);
+               did you mean 'size_t'?
+
+Signed-off-by: Titouan Christophe <titouan.christophe@railnova.eu>
+[Upstream status: https://github.com/apache/avro/pull/740]
+---
+ src/avro_generic_internal.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/avro_generic_internal.h b/src/avro_generic_internal.h
+index 709403c0..9843ed65 100644
+--- a/src/avro_generic_internal.h
++++ b/src/avro_generic_internal.h
+@@ -24,6 +24,8 @@ extern "C" {
+ #define CLOSE_EXTERN
+ #endif
+ 
++#include <sys/types.h>
++
+ #include "avro/generic.h"
+ #include "avro/schema.h"
+ #include "avro/value.h"
+-- 
+2.21.0
+
diff --git a/package/avro-c/Config.in b/package/avro-c/Config.in
new file mode 100644
index 0000000000..a21446186a
--- /dev/null
+++ b/package/avro-c/Config.in
@@ -0,0 +1,20 @@
+config BR2_PACKAGE_AVRO_C
+	bool "avro"
+	depends on !BR2_STATIC_LIBS
+	select BR2_PACKAGE_JANSSON
+	help
+	  Select this option to install the Avro C language bindings,
+	  and the command line tools avroappend, avrocat, avromod and
+	  avropipe.
+
+	  Apache Avro is a data serialization system.
+	  Avro provides:
+	  - Rich data structures.
+	  - A compact, fast, binary data format.
+	  - A container file, to store persistent data.
+	  - Remote procedure call (RPC).
+	  - Simple integration with dynamic languages.
+	  - Code generation is not required to read or write data
+	    files nor to use or implement RPC protocols.
+	  - Code generation as an optional optimization,
+	    only worth implementing for statically typed languages.
diff --git a/package/avro-c/avro-c.hash b/package/avro-c/avro-c.hash
new file mode 100644
index 0000000000..239cb36f57
--- /dev/null
+++ b/package/avro-c/avro-c.hash
@@ -0,0 +1,6 @@
+# From https://www-eu.apache.org/dist/avro/avro-1.9.1/c/avro-c-1.9.1.tar.gz.sha512
+sha512 68b1f44f870c9b6f0b2380da9e34d91148ff4398cb300f4bdd4e3e1ad00820acd9084b73232b00d4cd4935fb992b41dc65afdafcbea14a3d87259608688df904  avro-c-1.9.1.tar.gz
+
+# License files
+sha256 d62488d6ba17132e92c23c03c80bfedc848267f96ab36489fec860f76cf6819a  LICENSE
+sha256 92f7a23b4d6f91c27f5dc089fa2f30c9b4b13ac5b7cf872b351752463e7f9d4d  NOTICE
diff --git a/package/avro-c/avro-c.mk b/package/avro-c/avro-c.mk
new file mode 100644
index 0000000000..2ca01ecef5
--- /dev/null
+++ b/package/avro-c/avro-c.mk
@@ -0,0 +1,14 @@
+################################################################################
+#
+# avro-c
+#
+################################################################################
+
+AVRO_C_VERSION = 1.9.1
+AVRO_C_SITE = https://www-eu.apache.org/dist/avro/avro-$(AVRO_C_VERSION)/c
+AVRO_C_LICENSE = Apache-2.0
+AVRO_C_LICENSE_FILES = LICENSE NOTICE
+AVRO_C_INSTALL_STAGING = YES
+AVRO_C_DEPENDENCIES = jansson
+
+$(eval $(cmake-package))
-- 
2.23.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH v2 2/2] package/python-avro: new package
  2019-12-12 12:41 [Buildroot] [PATCH v2 0/2] new Avro packages Titouan Christophe
  2019-12-12 12:41 ` [Buildroot] [PATCH v2 1/2] package/avro-c: new package Titouan Christophe
@ 2019-12-12 12:41 ` Titouan Christophe
  2019-12-12 20:55   ` Gilles Talis
  1 sibling, 1 reply; 8+ messages in thread
From: Titouan Christophe @ 2019-12-12 12:41 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Titouan Christophe <titouan.christophe@railnova.eu>
---
 DEVELOPERS                           |  1 +
 package/Config.in                    |  1 +
 package/python-avro/Config.in        | 18 ++++++++++++++++++
 package/python-avro/python-avro.hash |  6 ++++++
 package/python-avro/python-avro.mk   | 14 ++++++++++++++
 5 files changed, 40 insertions(+)
 create mode 100644 package/python-avro/Config.in
 create mode 100644 package/python-avro/python-avro.hash
 create mode 100644 package/python-avro/python-avro.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index 639bd21904..ea2ab2f645 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2401,6 +2401,7 @@ F:	package/fbgrab/
 N:	Titouan Christophe <titouan.christophe@railnova.eu>
 F:	package/avro-c/
 F:	package/mosquitto/
+F:	package/python-avro/
 F:	package/redis/
 
 N:	Trent Piepho <tpiepho@impinj.com>
diff --git a/package/Config.in b/package/Config.in
index 29eaf043cd..4df31645b3 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -845,6 +845,7 @@ menu "External python modules"
 	source "package/python-attrs/Config.in"
 	source "package/python-autobahn/Config.in"
 	source "package/python-automat/Config.in"
+	source "package/python-avro/Config.in"
 	source "package/python-babel/Config.in"
 	source "package/python-backcall/Config.in"
 	source "package/python-backports-abc/Config.in"
diff --git a/package/python-avro/Config.in b/package/python-avro/Config.in
new file mode 100644
index 0000000000..90a921eb3f
--- /dev/null
+++ b/package/python-avro/Config.in
@@ -0,0 +1,18 @@
+config BR2_PACKAGE_PYTHON_AVRO
+	bool "python-avro"
+	depends on BR2_PACKAGE_PYTHON3
+	help
+	  Select this option to install the Avro Python3 language
+	  bindings, and the `avro` command line tool
+
+	  Apache Avro is a data serialization system.
+	  Avro provides:
+	  - Rich data structures.
+	  - A compact, fast, binary data format.
+	  - A container file, to store persistent data.
+	  - Remote procedure call (RPC).
+	  - Simple integration with dynamic languages.
+	  - Code generation is not required to read or write data
+	    files nor to use or implement RPC protocols.
+	  - Code generation as an optional optimization,
+	    only worth implementing for statically typed languages.
diff --git a/package/python-avro/python-avro.hash b/package/python-avro/python-avro.hash
new file mode 100644
index 0000000000..90ed9f2241
--- /dev/null
+++ b/package/python-avro/python-avro.hash
@@ -0,0 +1,6 @@
+# From https://www-eu.apache.org/dist/avro/avro-1.9.1/py3/avro-python3-1.9.1.tar.gz.sha512
+sha512 771ce6e5ca6315f5b9108cb4f5dd9488575cc3433ffdd744f96ce7989763728259c89475319fd9c411ed6b65c996b762548c50a697eb1fba9ab024112ca17daa  avro-python3-1.9.1.tar.gz
+
+# License files
+sha256 c79a7fea0e3cac04cd43f20e7b648e5a0ff8fa5344e644b0ee09ca1162b62747  avro/LICENSE
+sha256 984731deb198a9bb13b74feb165cb84c24b868602164de40df47451a17085afa  avro/NOTICE
diff --git a/package/python-avro/python-avro.mk b/package/python-avro/python-avro.mk
new file mode 100644
index 0000000000..08a25f0c84
--- /dev/null
+++ b/package/python-avro/python-avro.mk
@@ -0,0 +1,14 @@
+################################################################################
+#
+# python-avro
+#
+################################################################################
+
+PYTHON_AVRO_VERSION = 1.9.1
+PYTHON_AVRO_SITE = https://www-eu.apache.org/dist/avro/avro-1.9.1/py3
+PYTHON_AVRO_SOURCE = avro-python3-$(PYTHON_AVRO_VERSION).tar.gz
+PYTHON_AVRO_LICENSE = Apache-2.0
+PYTHON_AVRO_LICENSE_FILES = avro/LICENSE avro/NOTICE
+PYTHON_AVRO_SETUP_TYPE = setuptools
+
+$(eval $(python-package))
-- 
2.23.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH v2 1/2] package/avro-c: new package
  2019-12-12 12:41 ` [Buildroot] [PATCH v2 1/2] package/avro-c: new package Titouan Christophe
@ 2019-12-12 20:49   ` Gilles Talis
  2019-12-12 22:59     ` Titouan Christophe
  0 siblings, 1 reply; 8+ messages in thread
From: Gilles Talis @ 2019-12-12 20:49 UTC (permalink / raw)
  To: buildroot

Hello Titouan, all,

Thanks for taking my first set of comments into account.
Please find new ones.

Le jeu. 12 d?c. 2019 ? 13:42, Titouan Christophe
<titouan.christophe@railnova.eu> a ?crit :
>
> Signed-off-by: Titouan Christophe <titouan.christophe@railnova.eu>
> ---
>  DEVELOPERS                                |  1 +
>  package/Config.in                         |  1 +
>  package/avro-c/0001-Compile-on-musl.patch | 39 +++++++++++++++++++++++
>  package/avro-c/Config.in                  | 20 ++++++++++++
>  package/avro-c/avro-c.hash                |  6 ++++
>  package/avro-c/avro-c.mk                  | 14 ++++++++
>  6 files changed, 81 insertions(+)
>  create mode 100644 package/avro-c/0001-Compile-on-musl.patch
>  create mode 100644 package/avro-c/Config.in
>  create mode 100644 package/avro-c/avro-c.hash
>  create mode 100644 package/avro-c/avro-c.mk
>
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 66964d035d..639bd21904 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -2399,6 +2399,7 @@ N:        Timo Ketola <timo.ketola@exertus.fi>
>  F:     package/fbgrab/
>
>  N:     Titouan Christophe <titouan.christophe@railnova.eu>
> +F:     package/avro-c/
>  F:     package/mosquitto/
>  F:     package/redis/
>
> diff --git a/package/Config.in b/package/Config.in
> index 405732bc7a..29eaf043cd 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1708,6 +1708,7 @@ menu "Other"
>         source "package/argp-standalone/Config.in"
>         source "package/armadillo/Config.in"
>         source "package/atf/Config.in"
> +       source "package/avro-c/Config.in"
>         source "package/bctoolbox/Config.in"
>         source "package/bdwgc/Config.in"
>         source "package/boost/Config.in"
> diff --git a/package/avro-c/0001-Compile-on-musl.patch b/package/avro-c/0001-Compile-on-musl.patch
> new file mode 100644
> index 0000000000..2f1b0f62db
> --- /dev/null
> +++ b/package/avro-c/0001-Compile-on-musl.patch
> @@ -0,0 +1,39 @@
> +From 55a5ad94c77896eb25e2c7ed024d78a0a2c09007 Mon Sep 17 00:00:00 2001
> +From: Titouan Christophe <titouan.christophe@railnova.eu>
> +Date: Sun, 8 Dec 2019 01:55:59 +0100
> +Subject: [PATCH 1/1] Allow avro C to be built on musl based systems.
> +
> +The type `ssize_t` is defined in sys/types.h, and nowhere else
> +in the musl standard C library, so it should be included for the
> +compilation to succeed.
> +
> +This fixes several errors like:
> +
> +    In file included from src/generic.c:29:0:
> +    src/generic.c: In function 'avro_generic_value_new':
> +    src/avro_generic_internal.h:63:39:
> +        error: 'ssize_t' undeclared (first use in this function);
> +               did you mean 'size_t'?
> +
> +Signed-off-by: Titouan Christophe <titouan.christophe@railnova.eu>
> +[Upstream status: https://github.com/apache/avro/pull/740]
> +---
> + src/avro_generic_internal.h | 2 ++
> + 1 file changed, 2 insertions(+)
> +
> +diff --git a/src/avro_generic_internal.h b/src/avro_generic_internal.h
> +index 709403c0..9843ed65 100644
> +--- a/src/avro_generic_internal.h
> ++++ b/src/avro_generic_internal.h
> +@@ -24,6 +24,8 @@ extern "C" {
> + #define CLOSE_EXTERN
> + #endif
> +
> ++#include <sys/types.h>
> ++
> + #include "avro/generic.h"
> + #include "avro/schema.h"
> + #include "avro/value.h"
> +--
> +2.21.0
$ ./utils/check-package package/avro-c/* returns the following warning
package/avro-c/0001-Compile-on-musl.patch:4: generate your patches
with 'git format-patch -N'
79 lines processed
1 warnings generated
Can you please fix it?

> +
> diff --git a/package/avro-c/Config.in b/package/avro-c/Config.in
> new file mode 100644
> index 0000000000..a21446186a
> --- /dev/null
> +++ b/package/avro-c/Config.in
> @@ -0,0 +1,20 @@
> +config BR2_PACKAGE_AVRO_C
> +       bool "avro"
I would go for "avro-c"

> +       depends on !BR2_STATIC_LIBS
A comment at the end or beginning of the file mentioning that the
package needs a library with dynamic library would be nice
If you could also quickly explain why the package can't be statically
compiled, that'd be great.

> +       select BR2_PACKAGE_JANSSON
> +       help
> +         Select this option to install the Avro C language bindings,
> +         and the command line tools avroappend, avrocat, avromod and
> +         avropipe.
> +
> +         Apache Avro is a data serialization system.
> +         Avro provides:
> +         - Rich data structures.
> +         - A compact, fast, binary data format.
> +         - A container file, to store persistent data.
> +         - Remote procedure call (RPC).
> +         - Simple integration with dynamic languages.
> +         - Code generation is not required to read or write data
> +           files nor to use or implement RPC protocols.
> +         - Code generation as an optional optimization,
> +           only worth implementing for statically typed languages.
You miss the link to the upstream package: http://avro.apache.org/

> diff --git a/package/avro-c/avro-c.hash b/package/avro-c/avro-c.hash
> new file mode 100644
> index 0000000000..239cb36f57
> --- /dev/null
> +++ b/package/avro-c/avro-c.hash
> @@ -0,0 +1,6 @@
> +# From https://www-eu.apache.org/dist/avro/avro-1.9.1/c/avro-c-1.9.1.tar.gz.sha512
> +sha512 68b1f44f870c9b6f0b2380da9e34d91148ff4398cb300f4bdd4e3e1ad00820acd9084b73232b00d4cd4935fb992b41dc65afdafcbea14a3d87259608688df904  avro-c-1.9.1.tar.gz
> +
> +# License files
> +sha256 d62488d6ba17132e92c23c03c80bfedc848267f96ab36489fec860f76cf6819a  LICENSE
> +sha256 92f7a23b4d6f91c27f5dc089fa2f30c9b4b13ac5b7cf872b351752463e7f9d4d  NOTICE
NOTICE does not seem to contain any license information. Only copyright

> diff --git a/package/avro-c/avro-c.mk b/package/avro-c/avro-c.mk
> new file mode 100644
> index 0000000000..2ca01ecef5
> --- /dev/null
> +++ b/package/avro-c/avro-c.mk
> @@ -0,0 +1,14 @@
> +################################################################################
> +#
> +# avro-c
> +#
> +################################################################################
> +
> +AVRO_C_VERSION = 1.9.1
If you plan to update avro-c and python-avro at the same time, sharing
the same version variable would be handy

> +AVRO_C_SITE = https://www-eu.apache.org/dist/avro/avro-$(AVRO_C_VERSION)/c
> +AVRO_C_LICENSE = Apache-2.0
> +AVRO_C_LICENSE_FILES = LICENSE NOTICE
It should only be LICENSE
> +AVRO_C_INSTALL_STAGING = YES
> +AVRO_C_DEPENDENCIES = jansson
zib, snappy and lzma are non-required dependencies. Do you want to
make them dependencies for this package if they are enabled?

> +
> +$(eval $(cmake-package))
> --
> 2.23.0
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

Thanks
Gilles.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH v2 2/2] package/python-avro: new package
  2019-12-12 12:41 ` [Buildroot] [PATCH v2 2/2] package/python-avro: " Titouan Christophe
@ 2019-12-12 20:55   ` Gilles Talis
  2019-12-12 23:37     ` Titouan Christophe
  0 siblings, 1 reply; 8+ messages in thread
From: Gilles Talis @ 2019-12-12 20:55 UTC (permalink / raw)
  To: buildroot

Hello Titouan, all

Le jeu. 12 d?c. 2019 ? 13:41, Titouan Christophe
<titouan.christophe@railnova.eu> a ?crit :
>
> Signed-off-by: Titouan Christophe <titouan.christophe@railnova.eu>
> ---
>  DEVELOPERS                           |  1 +
>  package/Config.in                    |  1 +
>  package/python-avro/Config.in        | 18 ++++++++++++++++++
>  package/python-avro/python-avro.hash |  6 ++++++
>  package/python-avro/python-avro.mk   | 14 ++++++++++++++
>  5 files changed, 40 insertions(+)
>  create mode 100644 package/python-avro/Config.in
>  create mode 100644 package/python-avro/python-avro.hash
>  create mode 100644 package/python-avro/python-avro.mk
>
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 639bd21904..ea2ab2f645 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -2401,6 +2401,7 @@ F:        package/fbgrab/
>  N:     Titouan Christophe <titouan.christophe@railnova.eu>
>  F:     package/avro-c/
>  F:     package/mosquitto/
> +F:     package/python-avro/
>  F:     package/redis/
>
>  N:     Trent Piepho <tpiepho@impinj.com>
> diff --git a/package/Config.in b/package/Config.in
> index 29eaf043cd..4df31645b3 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -845,6 +845,7 @@ menu "External python modules"
>         source "package/python-attrs/Config.in"
>         source "package/python-autobahn/Config.in"
>         source "package/python-automat/Config.in"
> +       source "package/python-avro/Config.in"
>         source "package/python-babel/Config.in"
>         source "package/python-backcall/Config.in"
>         source "package/python-backports-abc/Config.in"
> diff --git a/package/python-avro/Config.in b/package/python-avro/Config.in
> new file mode 100644
> index 0000000000..90a921eb3f
> --- /dev/null
> +++ b/package/python-avro/Config.in
> @@ -0,0 +1,18 @@
> +config BR2_PACKAGE_PYTHON_AVRO
> +       bool "python-avro"
> +       depends on BR2_PACKAGE_PYTHON3
> +       help
> +         Select this option to install the Avro Python3 language
> +         bindings, and the `avro` command line tool
> +
> +         Apache Avro is a data serialization system.
> +         Avro provides:
> +         - Rich data structures.
> +         - A compact, fast, binary data format.
> +         - A container file, to store persistent data.
> +         - Remote procedure call (RPC).
> +         - Simple integration with dynamic languages.
> +         - Code generation is not required to read or write data
> +           files nor to use or implement RPC protocols.
> +         - Code generation as an optional optimization,
> +           only worth implementing for statically typed languages.
You miss the link to the upstream package: http://avro.apache.org/

> diff --git a/package/python-avro/python-avro.hash b/package/python-avro/python-avro.hash
> new file mode 100644
> index 0000000000..90ed9f2241
> --- /dev/null
> +++ b/package/python-avro/python-avro.hash
> @@ -0,0 +1,6 @@
> +# From https://www-eu.apache.org/dist/avro/avro-1.9.1/py3/avro-python3-1.9.1.tar.gz.sha512
> +sha512 771ce6e5ca6315f5b9108cb4f5dd9488575cc3433ffdd744f96ce7989763728259c89475319fd9c411ed6b65c996b762548c50a697eb1fba9ab024112ca17daa  avro-python3-1.9.1.tar.gz
> +
> +# License files
> +sha256 c79a7fea0e3cac04cd43f20e7b648e5a0ff8fa5344e644b0ee09ca1162b62747  avro/LICENSE
> +sha256 984731deb198a9bb13b74feb165cb84c24b868602164de40df47451a17085afa  avro/NOTICE
Same here. NOTICE only contains a copyright

> diff --git a/package/python-avro/python-avro.mk b/package/python-avro/python-avro.mk
> new file mode 100644
> index 0000000000..08a25f0c84
> --- /dev/null
> +++ b/package/python-avro/python-avro.mk
> @@ -0,0 +1,14 @@
> +################################################################################
> +#
> +# python-avro
> +#
> +################################################################################
> +
> +PYTHON_AVRO_VERSION = 1.9.1
As mentioned, you could benefit from using the same package version as
avro-c... or not.

> +PYTHON_AVRO_SITE = https://www-eu.apache.org/dist/avro/avro-1.9.1/py3
> +PYTHON_AVRO_SOURCE = avro-python3-$(PYTHON_AVRO_VERSION).tar.gz
> +PYTHON_AVRO_LICENSE = Apache-2.0
> +PYTHON_AVRO_LICENSE_FILES = avro/LICENSE avro/NOTICE
It is only avro/LICENSE

> +PYTHON_AVRO_SETUP_TYPE = setuptools
> +
> +$(eval $(python-package))
> --
> 2.23.0
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Thanks
Gilles.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH v2 1/2] package/avro-c: new package
  2019-12-12 20:49   ` Gilles Talis
@ 2019-12-12 22:59     ` Titouan Christophe
  0 siblings, 0 replies; 8+ messages in thread
From: Titouan Christophe @ 2019-12-12 22:59 UTC (permalink / raw)
  To: buildroot

Good evening Gilles,

Thank you again for reviewing this series thoroughly.

On 12/12/19 9:49 PM, Gilles Talis wrote:
> Hello Titouan, all,
> 
> Thanks for taking my first set of comments into account.
> Please find new ones.
> 
> Le jeu. 12 d?c. 2019 ? 13:42, Titouan Christophe
> <titouan.christophe@railnova.eu> a ?crit :

[snip]

> $ ./utils/check-package package/avro-c/* returns the following warning
> package/avro-c/0001-Compile-on-musl.patch:4: generate your patches
> with 'git format-patch -N'
> 79 lines processed
> 1 warnings generated
> Can you please fix it?
> 

My bad, I use `make check-package`; which only looks for .mk, .hash and 
Config files; hence why I did not see this warning.

>> +
>> diff --git a/package/avro-c/Config.in b/package/avro-c/Config.in
>> new file mode 100644
>> index 0000000000..a21446186a
>> --- /dev/null
>> +++ b/package/avro-c/Config.in
>> @@ -0,0 +1,20 @@
>> +config BR2_PACKAGE_AVRO_C
>> +       bool "avro"
> I would go for "avro-c"
> 
>> +       depends on !BR2_STATIC_LIBS
> A comment at the end or beginning of the file mentioning that the
> package needs a library with dynamic library would be nice
> If you could also quickly explain why the package can't be statically
> compiled, that'd be great.

It looks to me that avro-c unconditionally builds shared libs when not 
compiling for Windows 
(https://github.com/apache/avro/blob/release-1.9.1/lang/c/src/CMakeLists.txt#L91-L99), 
regardless the value of BUILD_SHARED_LIBS (see 
https://buildroot.org/downloads/manual/manual.html#_infrastructure_for_cmake_based_packages 
and https://cmake.org/cmake/help/latest/command/add_library.html).

Unless static support is really needed, I wouldn't engage myself in a 
CMake fight for now.

[snip]

>> diff --git a/package/avro-c/avro-c.mk b/package/avro-c/avro-c.mk
>> new file mode 100644
>> index 0000000000..2ca01ecef5
>> --- /dev/null
>> +++ b/package/avro-c/avro-c.mk
>> @@ -0,0 +1,14 @@
>> +################################################################################
>> +#
>> +# avro-c
>> +#
>> +################################################################################
>> +
>> +AVRO_C_VERSION = 1.9.1
> If you plan to update avro-c and python-avro at the same time, sharing
> the same version variable would be handy
> 
>> +AVRO_C_SITE = https://www-eu.apache.org/dist/avro/avro-$(AVRO_C_VERSION)/c
>> +AVRO_C_LICENSE = Apache-2.0
>> +AVRO_C_LICENSE_FILES = LICENSE NOTICE
> It should only be LICENSE
>> +AVRO_C_INSTALL_STAGING = YES
>> +AVRO_C_DEPENDENCIES = jansson
> zib, snappy and lzma are non-required dependencies. Do you want to
> make them dependencies for this package if they are enabled?

Indeed, thank you for pointing it out.

> 
>> +
>> +$(eval $(cmake-package))
>> --
>> 2.23.0
>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot at busybox.net
>> http://lists.busybox.net/mailman/listinfo/buildroot
> 
> Thanks
> Gilles.
> 

I'll resend a new version soon.

Best regards,

Titouan

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH v2 2/2] package/python-avro: new package
  2019-12-12 20:55   ` Gilles Talis
@ 2019-12-12 23:37     ` Titouan Christophe
  2019-12-12 23:47       ` Titouan Christophe
  0 siblings, 1 reply; 8+ messages in thread
From: Titouan Christophe @ 2019-12-12 23:37 UTC (permalink / raw)
  To: buildroot

Hello,

On 12/12/19 9:55 PM, Gilles Talis wrote:
> Hello Titouan, all
> 
> Le jeu. 12 d?c. 2019 ? 13:41, Titouan Christophe
> <titouan.christophe@railnova.eu> a ?crit :

[snip]

>> diff --git a/package/python-avro/python-avro.mk b/package/python-avro/python-avro.mk
>> new file mode 100644
>> index 0000000000..08a25f0c84
>> --- /dev/null
>> +++ b/package/python-avro/python-avro.mk
>> @@ -0,0 +1,14 @@
>> +################################################################################
>> +#
>> +# python-avro
>> +#
>> +################################################################################
>> +
>> +PYTHON_AVRO_VERSION = 1.9.1
> As mentioned, you could benefit from using the same package version as
> avro-c... or not.

I don't see examples of other pkgs doing this kind of cross-pkg version 
reference, do you have one in mind ? (apart from "plugins" packages, 
like all the QT5 modules; as it was the case in the v1 of this Avro series).

To me, this looks like a style decision. I have a preference for the 
"... or not" option, but maybe the core contributors have a guideline ?

> 
>> +PYTHON_AVRO_SITE = https://www-eu.apache.org/dist/avro/avro-1.9.1/py3
>> +PYTHON_AVRO_SOURCE = avro-python3-$(PYTHON_AVRO_VERSION).tar.gz
>> +PYTHON_AVRO_LICENSE = Apache-2.0
>> +PYTHON_AVRO_LICENSE_FILES = avro/LICENSE avro/NOTICE
> It is only avro/LICENSE
> 
>> +PYTHON_AVRO_SETUP_TYPE = setuptools
>> +
>> +$(eval $(python-package))
>> --
>> 2.23.0
>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot at busybox.net
>> http://lists.busybox.net/mailman/listinfo/buildroot
> Thanks
> Gilles.
> 

All your other comments addressed, I will submit a new version of this 
patch as well.

Regards,

Titouan

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH v2 2/2] package/python-avro: new package
  2019-12-12 23:37     ` Titouan Christophe
@ 2019-12-12 23:47       ` Titouan Christophe
  0 siblings, 0 replies; 8+ messages in thread
From: Titouan Christophe @ 2019-12-12 23:47 UTC (permalink / raw)
  To: buildroot

On 12/13/19 12:37 AM, Titouan Christophe wrote:
> Hello,
> 
> On 12/12/19 9:55 PM, Gilles Talis wrote:
>> Hello Titouan, all
>>
>> Le jeu. 12 d?c. 2019 ? 13:41, Titouan Christophe
>> <titouan.christophe@railnova.eu> a ?crit :
> 
> [snip]
> 
>>> diff --git a/package/python-avro/python-avro.mk 
>>> b/package/python-avro/python-avro.mk
>>> new file mode 100644
>>> index 0000000000..08a25f0c84
>>> --- /dev/null
>>> +++ b/package/python-avro/python-avro.mk
>>> @@ -0,0 +1,14 @@
>>> +################################################################################ 
>>>
>>> +#
>>> +# python-avro
>>> +#
>>> +################################################################################ 
>>>
>>> +
>>> +PYTHON_AVRO_VERSION = 1.9.1
>> As mentioned, you could benefit from using the same package version as
>> avro-c... or not.
> 
> I don't see examples of other pkgs doing this kind of cross-pkg version 
> reference, do you have one in mind ? (apart from "plugins" packages, 
> like all the QT5 modules; as it was the case in the v1 of this Avro 
> series).

Actually, protobuf and python-protobuf do this. Unless this was a 
mistake in the first place, I will do the same in Avro for consistency.

Titouan

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2019-12-12 23:47 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-12 12:41 [Buildroot] [PATCH v2 0/2] new Avro packages Titouan Christophe
2019-12-12 12:41 ` [Buildroot] [PATCH v2 1/2] package/avro-c: new package Titouan Christophe
2019-12-12 20:49   ` Gilles Talis
2019-12-12 22:59     ` Titouan Christophe
2019-12-12 12:41 ` [Buildroot] [PATCH v2 2/2] package/python-avro: " Titouan Christophe
2019-12-12 20:55   ` Gilles Talis
2019-12-12 23:37     ` Titouan Christophe
2019-12-12 23:47       ` Titouan Christophe

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.