libsearpc: Update to 3.2.0, add Python 3 bindings package
This also moves the Python dependency from libsearpc to python3-searpc, and adds myself as a maintainer. Patches: * 001-fix-memory-leak-GH-48.patch: This is (at this time) the only difference between the tags v3.2.0 and v3.2-latest. * 002-no-future-import.patch: The future package is only needed for Python 2 compatibility; all of the functions/symbols it provides are available in Python 3. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
This commit is contained in:
parent
5792851234
commit
825400ee41
3 changed files with 81 additions and 22 deletions
|
@ -8,15 +8,15 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=libsearpc
|
PKG_NAME:=libsearpc
|
||||||
PKG_VERSION:=3.1.0
|
PKG_VERSION:=3.2.0
|
||||||
PKG_RELEASE=2
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=https://codeload.github.com/haiwen/libsearpc/tar.gz/v$(PKG_VERSION)?
|
PKG_SOURCE_URL:=https://codeload.github.com/haiwen/libsearpc/tar.gz/v$(PKG_VERSION)?
|
||||||
PKG_HASH:=cbd86d3c37b54ca2060ca537a07940fe3e98498abf345b2f3e1cec488230231a
|
PKG_HASH:=c479d85e405674c3450eac040abe143af5a9fafe7f1b74926e2a05280ab5420e
|
||||||
PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
|
|
||||||
|
|
||||||
PKG_LICENSE:=GPL-3.0
|
PKG_MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>, Jeffery To <jeffery.to@gmail.com>
|
||||||
|
PKG_LICENSE:=Apache-2.0
|
||||||
PKG_LICENSE_FILES:=LICENSE.txt
|
PKG_LICENSE_FILES:=LICENSE.txt
|
||||||
|
|
||||||
PKG_FIXUP:=autoreconf
|
PKG_FIXUP:=autoreconf
|
||||||
|
@ -26,41 +26,70 @@ PKG_INSTALL:=1
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
include $(INCLUDE_DIR)/nls.mk
|
include $(INCLUDE_DIR)/nls.mk
|
||||||
include ../../lang/python/python-package.mk
|
include ../../lang/python/python-package.mk
|
||||||
|
include ../../lang/python/python3-package.mk
|
||||||
|
|
||||||
define Package/libsearpc
|
define Package/libsearpc
|
||||||
SECTION:=libs
|
SECTION:=libs
|
||||||
CATEGORY:=Libraries
|
CATEGORY:=Libraries
|
||||||
TITLE:=Seafile RPC Library
|
TITLE:=Seafile RPC Library
|
||||||
URL:=https://seafile.com
|
URL:=https://seafile.com
|
||||||
DEPENDS:=+glib2 +jansson +python $(ICONV_DEPENDS)
|
DEPENDS:=+glib2 +jansson $(ICONV_DEPENDS)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/libsearpc/description
|
define Package/libsearpc/description
|
||||||
Searpc is a simple C language RPC framework based on GObject system.
|
Searpc is a simple C language RPC framework based on GObject system.
|
||||||
Searpc handles the serialization/deserialization part of RPC,
|
Searpc handles the serialization/deserialization part of RPC, the
|
||||||
the transport part is left to users.
|
transport part is left to users.
|
||||||
endef
|
endef
|
||||||
|
|
||||||
CONFIGURE_ARGS += --enable-compile-demo=no \
|
define Package/python3-searpc
|
||||||
--disable-server-pkg
|
SECTION:=lang
|
||||||
|
CATEGORY:=Languages
|
||||||
|
SUBMENU:=Python
|
||||||
|
TITLE:=Python bindings for Searpc
|
||||||
|
DEPENDS:=+libsearpc +python3-light +python3-logging
|
||||||
|
VARIANT:=python3
|
||||||
|
endef
|
||||||
|
|
||||||
TARGET_LDFLAGS += -Wl,-rpath-link=$(STAGING_DIR)/usr/lib -liconv
|
define Package/python3-searpc/description
|
||||||
|
$(call Package/libsearpc/description)
|
||||||
|
|
||||||
|
This package contains the Python bindings for Searpc.
|
||||||
|
endef
|
||||||
|
|
||||||
|
CONFIGURE_ARGS += \
|
||||||
|
--disable-compile-demo \
|
||||||
|
--disable-server-pkg
|
||||||
|
|
||||||
define Build/InstallDev
|
define Build/InstallDev
|
||||||
$(INSTALL_DIR) $(1)/usr/{bin,include}
|
$(INSTALL_DIR) $(1)/usr/{bin,include}
|
||||||
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
|
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
|
||||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libsearpc.so* $(1)/usr/lib/
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libsearpc.so* $(1)/usr/lib/
|
||||||
$(CP) $(PKG_INSTALL_DIR)/usr/include/searpc* $(1)/usr/include/
|
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/
|
||||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libsearpc.pc $(1)/usr/lib/pkgconfig/
|
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libsearpc.pc $(1)/usr/lib/pkgconfig/
|
||||||
$(CP) $(PKG_INSTALL_DIR)/usr/bin/searpc-codegen.py $(1)/usr/bin/
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/searpc-codegen.py $(1)/usr/bin/
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
# Include Python 2 bindings in this package to maintain compatibility with previous versions
|
||||||
define Package/libsearpc/install
|
define Package/libsearpc/install
|
||||||
$(INSTALL_DIR) $(1)/usr/lib
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
$(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
|
$(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)/pysearpc
|
||||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libsearpc.so* $(1)/usr/lib/
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libsearpc.so* $(1)/usr/lib/
|
||||||
$(CP) $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/pysearpc $(1)$(PYTHON_PKG_DIR)
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/pysearpc/*.py $(1)$(PYTHON_PKG_DIR)/pysearpc/
|
||||||
find $(1) -name "*\.pyc" -o -name "*\.pyo" | xargs rm -f
|
rm -f $(1)$(PYTHON_PKG_DIR)/pysearpc/{pygencode,test_pysearpc}.py
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define Py3Build/Compile
|
||||||
|
rm -rf $(PKG_INSTALL_DIR)$(PYTHON3_PKG_DIR)/pysearpc
|
||||||
|
$(INSTALL_DIR) $(PKG_INSTALL_DIR)$(PYTHON3_PKG_DIR)/pysearpc
|
||||||
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/pysearpc/*.py $(PKG_INSTALL_DIR)$(PYTHON3_PKG_DIR)/pysearpc/
|
||||||
|
rm -f $(PKG_INSTALL_DIR)$(PYTHON3_PKG_DIR)/pysearpc/{pygencode,test_pysearpc}.py
|
||||||
|
endef
|
||||||
|
|
||||||
|
Py3Package/python3-searpc/install:=:
|
||||||
|
|
||||||
$(eval $(call BuildPackage,libsearpc))
|
$(eval $(call BuildPackage,libsearpc))
|
||||||
|
|
||||||
|
$(eval $(call Py3Package,python3-searpc))
|
||||||
|
$(eval $(call BuildPackage,python3-searpc))
|
||||||
|
$(eval $(call BuildPackage,python3-searpc-src))
|
||||||
|
|
19
libs/libsearpc/patches/001-fix-memory-leak-GH-48.patch
Normal file
19
libs/libsearpc/patches/001-fix-memory-leak-GH-48.patch
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
From 9b2e2dc65213fb22ed400dc54e4c2279564df62b Mon Sep 17 00:00:00 2001
|
||||||
|
From: ly1217 <yu.liu@seafile.com>
|
||||||
|
Date: Thu, 31 Oct 2019 00:31:38 -0700
|
||||||
|
Subject: [PATCH] Fix memory leak.
|
||||||
|
|
||||||
|
---
|
||||||
|
lib/searpc-named-pipe-transport.c | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
--- a/lib/searpc-named-pipe-transport.c
|
||||||
|
+++ b/lib/searpc-named-pipe-transport.c
|
||||||
|
@@ -377,6 +377,7 @@ void searpc_free_client_with_pipe_transp
|
||||||
|
close(pipe_client->pipe_fd);
|
||||||
|
#endif
|
||||||
|
g_free (pipe_client);
|
||||||
|
+ g_free (data->service);
|
||||||
|
g_free (data);
|
||||||
|
searpc_client_free (client);
|
||||||
|
}
|
11
libs/libsearpc/patches/002-no-future-import.patch
Normal file
11
libs/libsearpc/patches/002-no-future-import.patch
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
--- a/pysearpc/named_pipe.py
|
||||||
|
+++ b/pysearpc/named_pipe.py
|
||||||
|
@@ -2,8 +2,6 @@
|
||||||
|
RPC client/server implementation based on named pipe transport.
|
||||||
|
"""
|
||||||
|
|
||||||
|
-from future import standard_library
|
||||||
|
-standard_library.install_aliases()
|
||||||
|
from builtins import object
|
||||||
|
import json
|
||||||
|
import logging
|
Loading…
Reference in a new issue