libgpiod: update to 2.0

This updates this library to the latest major version.

Since the Python binding build changed in this version,
let's switch to the Py3Package infrastructure.

Also the older v1 kernel interface is not used anymore,
so we can drop this part of the kernel configuration.

Signed-off-by: Michael Heimpold <mhei@heimpold.de>
This commit is contained in:
Michael Heimpold 2023-03-07 22:51:09 +01:00
parent 0c526d09a8
commit 983835afe6

View file

@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=libgpiod PKG_NAME:=libgpiod
PKG_VERSION:=1.6.4 PKG_VERSION:=2.0
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/software/libs/libgpiod/ PKG_SOURCE_URL:=@KERNEL/software/libs/libgpiod/
PKG_HASH:=7b146e12f28fbca3df7557f176eb778c5ccf952ca464698dba8a61b2e1e3f9b5 PKG_HASH:=f74cbf82038b3cb98ebeb25bce55ee2553be28194002d2a9889b9268cce2dd07
PKG_MAINTAINER:=Michael Heimpold <mhei@heimpold.de> PKG_MAINTAINER:=Michael Heimpold <mhei@heimpold.de>
PKG_LICENSE:=LGPL-2.1-or-later PKG_LICENSE:=LGPL-2.1-or-later
@ -30,13 +30,9 @@ ifneq ($(CONFIG_PACKAGE_gpiod-tools),)
CONFIGURE_ARGS += --enable-tools CONFIGURE_ARGS += --enable-tools
endif endif
ifneq ($(CONFIG_PACKAGE_python3-gpiod),) PYTHON3_PKG_SETUP_DIR:=bindings/python
CONFIGURE_ARGS += --enable-bindings-python TARGET_CPPFLAGS+=-I$(PKG_BUILD_DIR)/include
CONFIGURE_VARS += \ TARGET_LDFLAGS+=-L$(PKG_BUILD_DIR)/lib/.libs
PYTHON="$(STAGING_DIR_HOSTPKG)/bin/$(PYTHON3)" \
PYTHON_CPPFLAGS="$(shell $(STAGING_DIR)/host/bin/$(PYTHON3)-config --includes)" \
PYTHON_LIBS="$(shell $(STAGING_DIR)/host/bin/$(PYTHON3)-config --libs)"
endif
define Package/libgpiod define Package/libgpiod
SECTION:=libs SECTION:=libs
@ -44,8 +40,7 @@ define Package/libgpiod
URL:=https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git URL:=https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git
TITLE:=Library for interacting with Linux's GPIO character device TITLE:=Library for interacting with Linux's GPIO character device
KCONFIG:= \ KCONFIG:= \
CONFIG_GPIO_CDEV=y \ CONFIG_GPIO_CDEV=y
CONFIG_GPIO_CDEV_V1=y
DEPENDS:=@GPIO_SUPPORT DEPENDS:=@GPIO_SUPPORT
endef endef
@ -79,6 +74,20 @@ define Package/python3-gpiod/description
This package contains the Python bindings for libgpiod. This package contains the Python bindings for libgpiod.
endef endef
define Build/Configure
$(call Build/Configure/Default)
ifneq ($(CONFIG_PACKAGE_python3-gpiod),)
$(call Py3Build/Configure)
endif
endef
define Build/Compile
$(call Build/Compile/Default)
ifneq ($(CONFIG_PACKAGE_python3-gpiod),)
$(call Py3Build/Compile)
endif
endef
define Build/InstallDev define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include $(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/gpiod.h $(1)/usr/include/ $(CP) $(PKG_INSTALL_DIR)/usr/include/gpiod.h $(1)/usr/include/
@ -88,6 +97,11 @@ define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libgpiod.pc $(1)/usr/lib/pkgconfig/ $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libgpiod.pc $(1)/usr/lib/pkgconfig/
ifneq ($(CONFIG_PACKAGE_python3-gpiod),)
$(INSTALL_DIR) $(1)$(PYTHON3_PKG_DIR)
$(CP) $(PKG_INSTALL_DIR)$(PYTHON3_PKG_DIR)/* $(1)$(PYTHON3_PKG_DIR)
endif
endef endef
define Package/libgpiod/install define Package/libgpiod/install
@ -100,11 +114,12 @@ define Package/gpiod-tools/install
$(CP) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/ $(CP) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/
endef endef
define Package/python3-gpiod/install define Py3Package/python3-gpiod/install
$(INSTALL_DIR) $(1)/$(PYTHON3_PKG_DIR) # this empty define prevent installing tools from /usr/bin
$(CP) $(PKG_INSTALL_DIR)/$(PYTHON3_PKG_DIR)/gpiod.so $(1)/$(PYTHON3_PKG_DIR)
endef endef
$(eval $(call BuildPackage,libgpiod)) $(eval $(call BuildPackage,libgpiod))
$(eval $(call BuildPackage,gpiod-tools)) $(eval $(call BuildPackage,gpiod-tools))
$(eval $(call Py3Package,python3-gpiod))
$(eval $(call BuildPackage,python3-gpiod)) $(eval $(call BuildPackage,python3-gpiod))
$(eval $(call BuildPackage,python3-gpiod-src))