aboutsummaryrefslogtreecommitdiffstats
path: root/meta-networking
diff options
context:
space:
mode:
Diffstat (limited to 'meta-networking')
-rw-r--r--meta-networking/recipes-connectivity/libiec61850/files/0001-use-poll.h-instead-of-sys-poll.h.patch33
-rw-r--r--meta-networking/recipes-connectivity/libiec61850/files/0002-serial_port_linux-Add-missing-include-sys-time.h.patch32
-rw-r--r--meta-networking/recipes-connectivity/libiec61850/files/0003-pyiec61850-don-t-break-CMAKE_INSTALL_PATH-by-trying-.patch37
-rw-r--r--meta-networking/recipes-connectivity/libiec61850/libiec61850_1.4.2.1.bb39
4 files changed, 141 insertions, 0 deletions
diff --git a/meta-networking/recipes-connectivity/libiec61850/files/0001-use-poll.h-instead-of-sys-poll.h.patch b/meta-networking/recipes-connectivity/libiec61850/files/0001-use-poll.h-instead-of-sys-poll.h.patch
new file mode 100644
index 0000000000..a04473d218
--- /dev/null
+++ b/meta-networking/recipes-connectivity/libiec61850/files/0001-use-poll.h-instead-of-sys-poll.h.patch
@@ -0,0 +1,33 @@
+From 4cad505fc98240eb66eaabfae61a9694f8158dda Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@smile.fr>
+Date: Tue, 7 Apr 2020 20:58:37 +0200
+Subject: [PATCH] use <poll.h> instead of <sys/poll.h>
+
+The manpage of poll(2) states that the prototype of poll is defined
+in <poll.h>. Use that header file instead of <sys/poll.h> to allow
+compilation against musl-libc.
+
+Upstream status: Pending
+https://github.com/mz-automation/libiec61850/pull/228
+
+Signed-off-by: Romain Naour <romain.naour@smile.fr>
+---
+ hal/ethernet/linux/ethernet_linux.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/hal/ethernet/linux/ethernet_linux.c b/hal/ethernet/linux/ethernet_linux.c
+index c3ab2e2..9aa5c28 100644
+--- a/hal/ethernet/linux/ethernet_linux.c
++++ b/hal/ethernet/linux/ethernet_linux.c
+@@ -23,7 +23,7 @@
+
+ #include <sys/socket.h>
+ #include <sys/ioctl.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <linux/if_packet.h>
+ #include <linux/if_ether.h>
+ #include <linux/if_arp.h>
+--
+2.21.1
+
diff --git a/meta-networking/recipes-connectivity/libiec61850/files/0002-serial_port_linux-Add-missing-include-sys-time.h.patch b/meta-networking/recipes-connectivity/libiec61850/files/0002-serial_port_linux-Add-missing-include-sys-time.h.patch
new file mode 100644
index 0000000000..e1b8ca15b3
--- /dev/null
+++ b/meta-networking/recipes-connectivity/libiec61850/files/0002-serial_port_linux-Add-missing-include-sys-time.h.patch
@@ -0,0 +1,32 @@
+From 661405eb6066b67dfe51d5ff9635e29f86bdd238 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@smile.fr>
+Date: Tue, 7 Apr 2020 21:02:54 +0200
+Subject: [PATCH] serial_port_linux: Add missing include sys/time.h
+
+POSIX says `struct timeval` is defined if <sys/time.h> is included.
+
+Adding this header allow to build against musl-libc.
+
+Upstream status: Pending
+https://github.com/mz-automation/libiec61850/pull/228
+
+Signed-off-by: Romain Naour <romain.naour@smile.fr>
+---
+ hal/serial/linux/serial_port_linux.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/hal/serial/linux/serial_port_linux.c b/hal/serial/linux/serial_port_linux.c
+index e6308c0..15e5794 100644
+--- a/hal/serial/linux/serial_port_linux.c
++++ b/hal/serial/linux/serial_port_linux.c
+@@ -29,6 +29,7 @@
+ #include <termios.h>
+ #include <fcntl.h>
+ #include <unistd.h>
++#include <sys/time.h>
+
+ #include "hal_serial.h"
+ #include "hal_time.h"
+--
+2.21.1
+
diff --git a/meta-networking/recipes-connectivity/libiec61850/files/0003-pyiec61850-don-t-break-CMAKE_INSTALL_PATH-by-trying-.patch b/meta-networking/recipes-connectivity/libiec61850/files/0003-pyiec61850-don-t-break-CMAKE_INSTALL_PATH-by-trying-.patch
new file mode 100644
index 0000000000..65567610b9
--- /dev/null
+++ b/meta-networking/recipes-connectivity/libiec61850/files/0003-pyiec61850-don-t-break-CMAKE_INSTALL_PATH-by-trying-.patch
@@ -0,0 +1,37 @@
+From 89f326a427c7ad13c115e2d3f2ac27807aa5a795 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@smile.fr>
+Date: Fri, 10 Jul 2020 17:08:34 +0200
+Subject: [PATCH] pyiec61850: don't break CMAKE_INSTALL_PATH by trying to find
+ python modules install path (site-packages)
+
+https://stackoverflow.com/questions/1242904/finding-python-site-packages-directory-with-cmake
+
+Signed-off-by: Romain Naour <romain.naour@smile.fr>
+---
+ pyiec61850/CMakeLists.txt | 11 ++---------
+ 1 file changed, 2 insertions(+), 9 deletions(-)
+
+diff --git a/pyiec61850/CMakeLists.txt b/pyiec61850/CMakeLists.txt
+index 159ef4b..d1732a1 100644
+--- a/pyiec61850/CMakeLists.txt
++++ b/pyiec61850/CMakeLists.txt
+@@ -31,14 +31,7 @@ endif()
+
+ swig_link_libraries(iec61850 ${PYTHON_LIBRARIES} ${LIBS})
+
+-# Finding python modules install path
+-execute_process(
+- COMMAND ${PYTHON_EXECUTABLE} -c
+- "from distutils.sysconfig import get_python_lib; import sys; sys.stdout.write(get_python_lib())"
+- OUTPUT_VARIABLE PYTHON_SITE_DIR
+-)
+-
+-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/iec61850.py DESTINATION ${PYTHON_SITE_DIR})
+-install(TARGETS _iec61850 LIBRARY DESTINATION ${PYTHON_SITE_DIR})
++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/iec61850.py DESTINATION /usr/lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages)
++install(TARGETS _iec61850 LIBRARY DESTINATION /usr/lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages)
+
+ add_test(test_pyiec61850 ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/test_pyiec61850.py)
+--
+2.21.3
+
diff --git a/meta-networking/recipes-connectivity/libiec61850/libiec61850_1.4.2.1.bb b/meta-networking/recipes-connectivity/libiec61850/libiec61850_1.4.2.1.bb
new file mode 100644
index 0000000000..18cb0cd8ef
--- /dev/null
+++ b/meta-networking/recipes-connectivity/libiec61850/libiec61850_1.4.2.1.bb
@@ -0,0 +1,39 @@
+SUMMARY = "Open source iec61850 implementation"
+DESCRIPTION = "IEC 61850 is an international standard for \
+communication systems in Substation Automation Systems \
+(SAS) and management of Decentralized Energy Resources \
+(DER). It is seen as one of the communication standards \
+of the emerging Smart Grid. \
+The project libIEC61850 provides a server and client \
+library for the IEC 61850/MMS, IEC 61850/GOOSE and IEC \
+61850-9-2/Sampled Values communication protocols \
+written in C. It is available under the GPLv3 license."
+HOMEPAGE = "http://libiec61850.com"
+SECTION = "console/network"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+DEPENDS = "swig-native python3"
+SRCREV = "d798814fb463115a835da597535a625b68a39cff"
+
+SRC_URI = "git://github.com/mz-automation/${BPN}.git;branch=v1.4 \
+ file://0001-use-poll.h-instead-of-sys-poll.h.patch \
+ file://0002-serial_port_linux-Add-missing-include-sys-time.h.patch \
+ file://0003-pyiec61850-don-t-break-CMAKE_INSTALL_PATH-by-trying-.patch \
+"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig python3-dir python3native siteinfo
+
+EXTRA_OECMAKE = " \
+ -DBUILD_EXAMPLES=OFF \
+ -DBUILD_PYTHON_BINDINGS=ON \
+"
+
+RDEPENDS_${PN}-python = " python3-core "
+RDEPENDS_${PN} = " python3-core "
+
+FILES_${PN} += " \
+ ${libdir}/${PYTHON_DIR}/site-packages/iec61850.py \
+ ${libdir}/${PYTHON_DIR}/site-packages/_iec61850.so \
+"