Re: git: 857e6ea25c90 - main - devel/libiec61850: New port: open-source library for the IEC 61850 protocols

From: Daniel Engberg <daniel.engberg.lists_at_pyret.net>
Date: Sun, 18 Feb 2024 20:31:01 UTC
On 2024-02-18T20:29:42.000+01:00, Jose Alonso Cardenas Marquez
<acm@FreeBSD.org> wrote:

> The branch main has been updated by acm:
> 
> URL: https://cgit.FreeBSD.org/ports/commit/?id=857e6ea25c9022f36be11745ee32a6ca3dfac549
> 
> commit 857e6ea25c9022f36be11745ee32a6ca3dfac549
> 
> Author:     Jose Alonso Cardenas Marquez <acm@FreeBSD.org>
> 
> AuthorDate: 2024-02-18 19:28:57 +0000
> 
> Commit:     Jose Alonso Cardenas Marquez <acm@FreeBSD.org>
> 
> CommitDate: 2024-02-18 19:28:57 +0000
> 
>     devel/libiec61850: New port: open-source library for the IEC 61850 protocols
> 
>     
> 
>     libiec61850 is an open-source (GPLv3) implementation of an IEC 61850 client and
> 
>     server library implementing the protocols MMS, GOOSE and SV. It is implemented
> 
>     in C (according to the C99 standard) to provide maximum portability. It can be
> 
>     used to implement IEC 61850 compliant client and server applications on
> 
>     embedded systems and PCs running FreeBSD, Linux, Windows, and MacOS. Included
> 
>     is a set of simple example applications that can be used as a starting point to
> 
>     implement own IEC 61850 compliant devices or to communicate with IEC 61850
> 
>     devices. The library has been successfully used in many commercial software
> 
>     products and devices.
> 
> ---
> 
>  devel/Makefile              |  1 +
> 
>  devel/libiec61850/Makefile  | 20 ++++++++++++++++++++
> 
>  devel/libiec61850/distinfo  |  3 +++
> 
>  devel/libiec61850/pkg-descr |  9 +++++++++
> 
>  devel/libiec61850/pkg-plist | 35 +++++++++++++++++++++++++++++++++++
> 
>  5 files changed, 68 insertions(+)
> 
> diff --git a/devel/Makefile b/devel/Makefile
> 
> index ad7af082168d..ad7ed6b60dd3 100644
> 
> --- a/devel/Makefile
> 
> +++ b/devel/Makefile
> 
> @@ -1295,6 +1295,7 @@
> 
>      SUBDIR += libhtp
> 
>      SUBDIR += libibuddy
> 
>      SUBDIR += libical
> 
> +    SUBDIR += libiec61850
> 
>      SUBDIR += libindicator
> 
>      SUBDIR += libinjection
> 
>      SUBDIR += libinotify
> 
> diff --git a/devel/libiec61850/Makefile b/devel/libiec61850/Makefile
> 
> new file mode 100644
> 
> index 000000000000..445dbbb2cd71
> 
> --- /dev/null
> 
> +++ b/devel/libiec61850/Makefile
> 
> @@ -0,0 +1,20 @@
> 
> +PORTNAME=    libiec61850
> 
> +DISTVERSIONPREFIX=    v
> 
> +DISTVERSION=    1.5.3
> 
> +CATEGORIES=    devel
> 
> +
> 
> +MAINTAINER=    acm@FreeBSD.org
> 
> +COMMENT=    open-source library for the IEC 61850 protocols
> 
> +WWW=        http://libiec61850.com/libiec61850
> 
> +
> 
> +LICENSE=    GPLv3
> 
> +LICENSE_FILE=    ${WRKSRC}/COPYING
> 
> +
> 
> +USES=        cmake compiler:c++11-lang
> 
> +USE_GITHUB=    yes
> 
> +GH_ACCOUNT=    mz-automation
> 
> +GH_PROJECT=    libiec61850
> 
> +
> 
> +LDFLAGS=    -lm
> 
> +
> 
> +.include <bsd.port.mk> [http://bsd.port.mk>];
> 
> diff --git a/devel/libiec61850/distinfo b/devel/libiec61850/distinfo
> 
> new file mode 100644
> 
> index 000000000000..1122b9ef4fcd
> 
> --- /dev/null
> 
> +++ b/devel/libiec61850/distinfo
> 
> @@ -0,0 +1,3 @@
> 
> +TIMESTAMP = 1708210457
> 
> +SHA256 (mz-automation-libiec61850-v1.5.3_GH0.tar.gz) = a0f396a5e2249398f2432bb9698e3aecdb9de11b28e5af68f7fb8b14bc3b2f44
> 
> +SIZE (mz-automation-libiec61850-v1.5.3_GH0.tar.gz) = 1402548
> 
> diff --git a/devel/libiec61850/pkg-descr b/devel/libiec61850/pkg-descr
> 
> new file mode 100644
> 
> index 000000000000..3b333f544c54
> 
> --- /dev/null
> 
> +++ b/devel/libiec61850/pkg-descr
> 
> @@ -0,0 +1,9 @@
> 
> +libiec61850 is an open-source (GPLv3) implementation of an IEC 61850 client and
> 
> +server library implementing the protocols MMS, GOOSE and SV. It is implemented
> 
> +in C (according to the C99 standard) to provide maximum portability. It can be
> 
> +used to implement IEC 61850 compliant client and server applications on
> 
> +embedded systems and PCs running FreeBSD, Linux, Windows, and MacOS. Included
> 
> +is a set of simple example applications that can be used as a starting point to
> 
> +implement own IEC 61850 compliant devices or to communicate with IEC 61850
> 
> +devices. The library has been successfully used in many commercial software
> 
> +products and devices.
> 
> diff --git a/devel/libiec61850/pkg-plist b/devel/libiec61850/pkg-plist
> 
> new file mode 100644
> 
> index 000000000000..b47853360231
> 
> --- /dev/null
> 
> +++ b/devel/libiec61850/pkg-plist
> 
> @@ -0,0 +1,35 @@
> 
> +include/libiec61850/goose_publisher.h
> 
> +include/libiec61850/goose_receiver.h
> 
> +include/libiec61850/goose_subscriber.h
> 
> +include/libiec61850/hal_base.h
> 
> +include/libiec61850/hal_ethernet.h
> 
> +include/libiec61850/hal_filesystem.h
> 
> +include/libiec61850/hal_socket.h
> 
> +include/libiec61850/hal_thread.h
> 
> +include/libiec61850/hal_time.h
> 
> +include/libiec61850/iec61850_cdc.h
> 
> +include/libiec61850/iec61850_client.h
> 
> +include/libiec61850/iec61850_common.h
> 
> +include/libiec61850/iec61850_config_file_parser.h
> 
> +include/libiec61850/iec61850_dynamic_model.h
> 
> +include/libiec61850/iec61850_model.h
> 
> +include/libiec61850/iec61850_server.h
> 
> +include/libiec61850/iso_connection_parameters.h
> 
> +include/libiec61850/libiec61850_common_api.h
> 
> +include/libiec61850/linked_list.h
> 
> +include/libiec61850/logging_api.h
> 
> +include/libiec61850/mms_client_connection.h
> 
> +include/libiec61850/mms_common.h
> 
> +include/libiec61850/mms_server.h
> 
> +include/libiec61850/mms_type_spec.h
> 
> +include/libiec61850/mms_types.h
> 
> +include/libiec61850/mms_value.h
> 
> +include/libiec61850/sv_publisher.h
> 
> +include/libiec61850/sv_subscriber.h
> 
> +include/libiec61850/tls_config.h
> 
> +lib/libhal-shared.a
> 
> +lib/libhal.a
> 
> +lib/libiec61850.a
> 
> +lib/libiec61850.so [http://libiec61850.so]
> 
> +lib/libiec61850.so.1.5.3 [http://libiec61850.so.1.5.3]
> 
> +share/pkgconfig/libiec61850.pc

Hi,

Please do a more careful review

* GH_PROJECT and LDFLAGS are unnecessary

* Why are we wasting time building examples?

* Port also looking for doxygen which should handled

* .pc file is installed in wrong location

lib/libhal-shared.a looks suspcious

You want something at least like the follow regarding CMAKE options

CMAKE_OFF= BUILD_EXAMPLES

CMAKE_ON= CMAKE_DISABLE_FIND_PACKAGE_Doxygen

Best regards,

Daniel