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