Skip to contentSkip to conversation

libgpiod: bump version to v1.1

PATCH New Bartosz Golaszewski 4 participants 6 messages May 16, 2018 – May 17, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 libgpiod: bump version to v1.1

This is a minor release the main feature of which are the object-oriented bindings for C++ and Python3. Other than that there's a couple bug-fixes and minor improvements all around.

---
 package/libgpiod/Config.in     | 20 ++++++++++++++++++++
 package/libgpiod/libgpiod.hash |  2 +-
 package/libgpiod/libgpiod.mk   | 20 ++++++++++++++++++--
 3 files changed, 39 insertions(+), 3 deletions(-)
package/libgpiod/Config.in +20 -0
index 63a7cb6e78..c10f11cc15 100644
@@ -14,6 +14,26 @@ config BR2_PACKAGE_LIBGPIOD_TOOLS
 	help
 	  Include a set of command-line tools for managing GPIOs.
 
+config BR2_PACKAGE_LIBGPIODCXX
+	bool "install C++ bindings"
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
+	help
+	  Build C++ bindings for libgpiod.
+
+comment "C++ bindings need a toolchain w/ C++, gcc >= 4.8"
+	depends on !BR2_INSTALL_LIBSTDCPP || \
+		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
+
+config BR2_PACKAGE_LIBGPIOD_PYTHON
+	bool "install python bindings"
+	depends on BR2_PACKAGE_PYTHON3
+	help
+	  Build Python3 bindings for libgpiod.
+
+comment "Python bindings need python3"
+	depends on !BR2_PACKAGE_PYTHON3
+
 endif
 
 comment "libgpiod needs kernel headers >= 4.8"
package/libgpiod/libgpiod.hash +1 -1
index 9ed4b59ab9..1d217f6048 100644
@@ -1,4 +1,4 @@
 # From https://www.kernel.org/pub/software/libs/libgpiod/sha256sums.asc
-sha256 972924195367f5fb045c023d65340c4b7dfc8764499516be446553865208dedc  libgpiod-1.0.1.tar.xz
+sha256 9758466468a7ef3f5e30c182c1303abef6241e665cda4d82a64328a7474838c1  libgpiod-1.1.tar.xz
 # Hash for license file
 sha256 ce64d5f7b49ea6d80fdb6d4cdee6839d1a94274f7493dc797c3b55b65ec8e9ed  COPYING
package/libgpiod/libgpiod.mk +18 -2
index 7f8fa4b7dd..3a829c11c8 100644
@@ -4,13 +4,12 @@
 #
 ################################################################################
 
-LIBGPIOD_VERSION = 1.0.1
+LIBGPIOD_VERSION = 1.1
 LIBGPIOD_SOURCE = libgpiod-$(LIBGPIOD_VERSION).tar.xz
 LIBGPIOD_SITE = https://www.kernel.org/pub/software/libs/libgpiod
 LIBGPIOD_LICENSE = LGPL-2.1+
 LIBGPIOD_LICENSE_FILES = COPYING
 LIBGPIOD_INSTALL_STAGING = YES
-
 LIBGPIOD_DEPENDENCIES = host-pkgconf
 
 ifeq ($(BR2_PACKAGE_LIBGPIOD_TOOLS),y)
@@ -19,4 +18,21 @@ else
 LIBGPIOD_CONF_OPTS += --disable-tools
 endif
 
+ifeq ($(BR2_PACKAGE_LIBGPIODCXX),y)
+LIBGPIOD_CONF_OPTS += --enable-bindings-cxx
+else
+LIBGPIOD_CONF_OPTS += --disable-bindings-cxx
+endif
+
+ifeq ($(BR2_PACKAGE_LIBGPIOD_PYTHON),y)
+LIBGPIOD_CONF_OPTS += --enable-bindings-python
+LIBGPIOD_DEPENDENCIES += python3 host-python3
+LIBGPIOD_CONF_ENV += \
+	PYTHON=$(HOST_DIR)/bin/python3 \
+	PYTHON_CPPFLAGS="`$(STAGING_DIR)/usr/bin/python3-config --includes`" \
+	PYTHON_LIBS="`$(STAGING_DIR)/usr/bin/python3-config --ldflags`"
+else
+LIBGPIOD_CONF_OPTS += --disable-bindings-python
+endif
+
 $(eval $(autotools-package))
Signature · 1 line
2.17.0
#1 lore raw

PATCH 1/1 libgpiod: bump version to v1.1

Quoted 3 lines · Bartosz Golaszewski

This is a minor release the main feature of which are the object-oriented bindings for C++ and Python3. Other than that there's a couple bug-fixes and minor improvements all around.

So for -next, I guess?

Quoted 13 lines
---
 package/libgpiod/Config.in     | 20 ++++++++++++++++++++
 package/libgpiod/libgpiod.hash |  2 +-
 package/libgpiod/libgpiod.mk   | 20 ++++++++++++++++++--
 3 files changed, 39 insertions(+), 3 deletions(-)
package/libgpiod/Config.in +0 -0
index 63a7cb6e78..c10f11cc15 100644

package/libgpiod/Config.in config BR2_PACKAGE_LIBGPIOD_TOOLS · line 20

Quoted 7 lines
package/libgpiod/Config.in +4 -0
@@ -14,6 +14,26 @@ config BR2_PACKAGE_LIBGPIOD_TOOLS
 	help
 	  Include a set of command-line tools for managing GPIOs.
 
+config BR2_PACKAGE_LIBGPIODCXX
+	bool "install C++ bindings"
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11

Is there really a need to make these bindings optional? We try to avoid too
many Config.in options. So only if the bindings are relatively large on target it's worthwhile to make them optional (more than, say 20% of libgpiod itself, after stripping).

If the bindings don't make it much larger, you can just move the dependencies
to the BR2_PACKAGE_LIBGPIODCXX condition in the .mk file.

package/libgpiod/Config.in config BR2_PACKAGE_LIBGPIOD_TOOLS · line 30

Quoted 10 lines
package/libgpiod/Config.in +10 -0
+	help
+	  Build C++ bindings for libgpiod.
+
+comment "C++ bindings need a toolchain w/ C++, gcc >= 4.8"
+	depends on !BR2_INSTALL_LIBSTDCPP || \
+		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
+
+config BR2_PACKAGE_LIBGPIOD_PYTHON
+	bool "install python bindings"
+	depends on BR2_PACKAGE_PYTHON3

Same here of course.

Otherwise,

Regards,
Arnout

Quoted 7 lines
package/libgpiod/Config.in +6 -0
+	help
+	  Build Python3 bindings for libgpiod.
+
+comment "Python bindings need python3"
+	depends on !BR2_PACKAGE_PYTHON3
+
 endif

[snip]

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#2 lore raw

PATCH 1/1 libgpiod: bump version to v1.1

2018-05-16 23:48 GMT+02:00 Arnout Vandecappelle <[email protected]>:

Quoted 25 lines · Bartosz Golaszewski
Quoted 3 lines

This is a minor release the main feature of which are the object-oriented bindings for C++ and Python3. Other than that there's a couple bug-fixes and minor improvements all around.

So for -next, I guess?

Quoted 16 lines
---
 package/libgpiod/Config.in     | 20 ++++++++++++++++++++
 package/libgpiod/libgpiod.hash |  2 +-
 package/libgpiod/libgpiod.mk   | 20 ++++++++++++++++++--
 3 files changed, 39 insertions(+), 3 deletions(-)
package/libgpiod/Config.in +0 -0
index 63a7cb6e78..c10f11cc15 100644
@@ -14,6 +14,26 @@ config BR2_PACKAGE_LIBGPIOD_TOOLS
      help
        Include a set of command-line tools for managing GPIOs.
 
Quoted 10 lines

package/libgpiod/Config.in config BR2_PACKAGE_LIBGPIOD_TOOLS · line 20

Quoted 4 lines
package/libgpiod/Config.in +4 -0
+config BR2_PACKAGE_LIBGPIODCXX
+     bool "install C++ bindings"
+     depends on BR2_INSTALL_LIBSTDCPP
+     depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11

Is there really a need to make these bindings optional? We try to avoid too
many Config.in options. So only if the bindings are relatively large on target it's worthwhile to make them optional (more than, say 20% of libgpiod itself, after stripping).

The basic library and tools only require a libc and recent kernel headers. I don't want users of very simple systems to carry all those dependencies for C++ and Python if they're not using it.

Quoted 34 lines

If the bindings don't make it much larger, you can just move the dependencies
to the BR2_PACKAGE_LIBGPIODCXX condition in the .mk file.

package/libgpiod/Config.in config BR2_PACKAGE_LIBGPIOD_TOOLS · line 30

Quoted 10 lines
package/libgpiod/Config.in +10 -0
+     help
+       Build C++ bindings for libgpiod.
+
+comment "C++ bindings need a toolchain w/ C++, gcc >= 4.8"
+     depends on !BR2_INSTALL_LIBSTDCPP || \
+             !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
+
+config BR2_PACKAGE_LIBGPIOD_PYTHON
+     bool "install python bindings"
+     depends on BR2_PACKAGE_PYTHON3

Same here of course.

Otherwise,

Regards,
Arnout

Quoted 7 lines
package/libgpiod/Config.in +6 -0
+     help
+       Build Python3 bindings for libgpiod.
+
+comment "Python bindings need python3"
+     depends on !BR2_PACKAGE_PYTHON3
+
 endif

[snip]

Quoted 2 lines

--
Arnout Vandecappelle arnout at mind be

Thanks,
Bart

#3 lore raw

PATCH 1/1 libgpiod: bump version to v1.1

Hi Bartosz,

Quoted 33 lines · Bartosz Golaszewski

2018-05-16 23:48 GMT+02:00 Arnout Vandecappelle <[email protected]>:

Quoted 22 lines · Bartosz Golaszewski
Quoted 3 lines

This is a minor release the main feature of which are the object-oriented bindings for C++ and Python3. Other than that there's a couple bug-fixes and minor improvements all around.

So for -next, I guess?

Quoted 15 lines
---
 package/libgpiod/Config.in     | 20 ++++++++++++++++++++
 package/libgpiod/libgpiod.hash |  2 +-
 package/libgpiod/libgpiod.mk   | 20 ++++++++++++++++++--
 3 files changed, 39 insertions(+), 3 deletions(-)
package/libgpiod/Config.in +0 -0
index 63a7cb6e78..c10f11cc15 100644
@@ -14,6 +14,26 @@ config BR2_PACKAGE_LIBGPIOD_TOOLS
      help
        Include a set of command-line tools for managing GPIOs.
 
Quoted 9 lines

package/libgpiod/Config.in config BR2_PACKAGE_LIBGPIOD_TOOLS · line 20

Quoted 4 lines
package/libgpiod/Config.in +4 -0
+config BR2_PACKAGE_LIBGPIODCXX
+     bool "install C++ bindings"
+     depends on BR2_INSTALL_LIBSTDCPP
+     depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11

Is there really a need to make these bindings optional? We try to avoid too
many Config.in options. So only if the bindings are relatively large on target it's worthwhile to make them optional (more than, say 20% of libgpiod itself, after stripping).

Quoted 3 lines

The basic library and tools only require a libc and recent kernel headers. I don't want users of very simple systems to carry all those dependencies for C++ and Python if they're not using it.

You don't need to. You can make BR2_INSTALL_LIBSTDCPP an optional dependency. If it is defined, install the C++ binding. Same goes for Python. That is what Arnout suggests.

baruch

Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
#4 lore raw

PATCH 1/1 libgpiod: bump version to v1.1

2018-05-17 9:20 GMT+02:00 Baruch Siach <[email protected]>:

Quoted 36 lines

Hi Bartosz,

Quoted 33 lines · Bartosz Golaszewski

2018-05-16 23:48 GMT+02:00 Arnout Vandecappelle <[email protected]>:

Quoted 31 lines · Bartosz Golaszewski
Quoted 3 lines

This is a minor release the main feature of which are the object-oriented bindings for C++ and Python3. Other than that there's a couple bug-fixes and minor improvements all around.

So for -next, I guess?

Quoted 12 lines
---
 package/libgpiod/Config.in     | 20 ++++++++++++++++++++
 package/libgpiod/libgpiod.hash |  2 +-
 package/libgpiod/libgpiod.mk   | 20 ++++++++++++++++++--
 3 files changed, 39 insertions(+), 3 deletions(-)
package/libgpiod/Config.in +0 -0
index 63a7cb6e78..c10f11cc15 100644

package/libgpiod/Config.in config BR2_PACKAGE_LIBGPIOD_TOOLS · line 20

Quoted 7 lines
package/libgpiod/Config.in +4 -0
@@ -14,6 +14,26 @@ config BR2_PACKAGE_LIBGPIOD_TOOLS
      help
        Include a set of command-line tools for managing GPIOs.
 
+config BR2_PACKAGE_LIBGPIODCXX
+     bool "install C++ bindings"
+     depends on BR2_INSTALL_LIBSTDCPP
+     depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11

Is there really a need to make these bindings optional? We try to avoid too
many Config.in options. So only if the bindings are relatively large on target it's worthwhile to make them optional (more than, say 20% of libgpiod itself, after stripping).

Quoted 8 lines
Quoted 3 lines

The basic library and tools only require a libc and recent kernel headers. I don't want users of very simple systems to carry all those dependencies for C++ and Python if they're not using it.

You don't need to. You can make BR2_INSTALL_LIBSTDCPP an optional dependency. If it is defined, install the C++ binding. Same goes for Python. That is what Arnout suggests.

I'm afraid I don't understand. Could you maybe point me to some example?

Bart

#5 lore raw

PATCH 1/1 libgpiod: bump version to v1.1

Hello,

Quoted 6 lines · Bartosz Golaszewski
Quoted 4 lines

You don't need to. You can make BR2_INSTALL_LIBSTDCPP an optional dependency. If it is defined, install the C++ binding. Same goes for Python. That is what Arnout suggests.

I'm afraid I don't understand. Could you maybe point me to some example?

ifeq ($(BR2_INSTALL_LIBSTDCPP),y)
... enable the build/installation of C++ bindings
endif

ifeq ($(BR2_PACKAGE_PYTHON),y)
... enable the build/istallation of Python bindings endif

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com