aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Victorovich <yuri@FreeBSD.org>2022-08-25 19:19:35 +0000
committerYuri Victorovich <yuri@FreeBSD.org>2022-08-25 19:20:25 +0000
commit370336ba99175ed10a0e65b92819e54303c36346 (patch)
treec6235cc32b9ff6be7aa6c9d7027530e797fe1517
parent333d7de5edb29b30e44b289b1a578a0086fea236 (diff)
downloadports-370336ba99175ed10a0e65b92819e54303c36346.tar.gz
ports-370336ba99175ed10a0e65b92819e54303c36346.zip
misc/ecflow: New port: Workflow package that enables users to run a large number of programs
-rw-r--r--misc/Makefile1
-rw-r--r--misc/ecflow/Makefile28
-rw-r--r--misc/ecflow/distinfo3
-rw-r--r--misc/ecflow/files/patch-tools_ecflow__standalone.c11
-rw-r--r--misc/ecflow/pkg-descr13
-rw-r--r--misc/ecflow/pkg-plist44
6 files changed, 100 insertions, 0 deletions
diff --git a/misc/Makefile b/misc/Makefile
index ba2ac493049a..0bda9756077f 100644
--- a/misc/Makefile
+++ b/misc/Makefile
@@ -82,6 +82,7 @@
SUBDIR += dynomite
SUBDIR += e2fsprogs-libblkid
SUBDIR += e2fsprogs-libuuid
+ SUBDIR += ecflow
SUBDIR += edfbrowser
SUBDIR += edflib
SUBDIR += elki
diff --git a/misc/ecflow/Makefile b/misc/ecflow/Makefile
new file mode 100644
index 000000000000..a616d8999a16
--- /dev/null
+++ b/misc/ecflow/Makefile
@@ -0,0 +1,28 @@
+PORTNAME= ecflow
+DISTVERSION= 5.8.4
+CATEGORIES= misc
+MASTER_SITES= https://confluence.ecmwf.int/download/attachments/8650755/
+DISTNAME= ecFlow-${DISTVERSION}-Source
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Workflow package that enables users to run a large number of programs
+
+LICENSE= APACHE20
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+PY_DEPENDS= ${PYTHON_PKGNAMEPREFIX}boost-libs>0:devel/boost-python-libs@${PY_FLAVOR}
+BUILD_DEPENDS= bash:shells/bash \
+ ${PY_DEPENDS}
+LIB_DEPENDS= libboost_program_options.so:devel/boost-libs
+RUN_DEPENDS= ${PY_DEPENDS}
+
+USES= cmake compiler:c++17-lang localbase perl5 pkgconfig python:3.6+ qt:5 shebangfix ssl
+USE_QT= charts core gui network svg widgets buildtools_build qmake_build
+
+SHEBANG_GLOB= *.sh *.in *.py
+
+CMAKE_OFF= ENABLE_STATIC_BOOST_LIBS ENABLE_TESTS ENABLE_ALL_TESTS
+
+CONFLICTS_BUILD= python27 # build attempts to find python-2.7 and use it
+
+.include <bsd.port.mk>
diff --git a/misc/ecflow/distinfo b/misc/ecflow/distinfo
new file mode 100644
index 000000000000..04bc3dcd93df
--- /dev/null
+++ b/misc/ecflow/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1661404490
+SHA256 (ecFlow-5.8.4-Source.tar.gz) = bc628556f8458c269a309e4c3b8d5a807fae7dfd415e27416fe9a3f544f88951
+SIZE (ecFlow-5.8.4-Source.tar.gz) = 3567430
diff --git a/misc/ecflow/files/patch-tools_ecflow__standalone.c b/misc/ecflow/files/patch-tools_ecflow__standalone.c
new file mode 100644
index 000000000000..65046b4361e9
--- /dev/null
+++ b/misc/ecflow/files/patch-tools_ecflow__standalone.c
@@ -0,0 +1,11 @@
+--- tools/ecflow_standalone.c.orig 2022-08-25 05:28:39 UTC
++++ tools/ecflow_standalone.c
+@@ -183,7 +183,7 @@ int main(argc,argv) int argc; char **argv;
+ for (n=3; n<65535 ;n++) fclose(n); */
+
+ /* create a new session from the child process */
+-#if defined(linux) || defined(__APPLE__) || defined(__MACH__) || defined(hpux) || defined(solaris) || defined(SGI) || defined(SVR4) || defined(AIX) || defined(SYG) || defined(alpha)
++#if defined(linux) || defined(__FreeBSD__) || defined(__APPLE__) || defined(__MACH__) || defined(hpux) || defined(solaris) || defined(SGI) || defined(SVR4) || defined(AIX) || defined(SYG) || defined(alpha)
+ if( setsid() == -1 )
+ #else
+ if( setsid(0) == -1 )
diff --git a/misc/ecflow/pkg-descr b/misc/ecflow/pkg-descr
new file mode 100644
index 000000000000..31814aebdbff
--- /dev/null
+++ b/misc/ecflow/pkg-descr
@@ -0,0 +1,13 @@
+ecFlow is a client/server workflow package that enables users to run a large
+number of programs (with dependencies on each other and on time) in a controlled
+environment. It provides reasonable tolerance for hardware and software
+failures, combined with restart capabilities. It is used at ECMWF to run all our
+operational suites across a range of platforms.
+
+ecFlow submits tasks (jobs) and receives acknowledgments from the tasks when
+they change status and when they send events, using child commands embedded in
+your scripts. ecFlow stores the relationships between tasks, and is able to
+submit tasks dependant on triggers, such as when a given task changes its
+status, for example when it finishes.
+
+WWW: https://confluence.ecmwf.int/display/ECFLOW/ecflow+home
diff --git a/misc/ecflow/pkg-plist b/misc/ecflow/pkg-plist
new file mode 100644
index 000000000000..e1c57f37d4b0
--- /dev/null
+++ b/misc/ecflow/pkg-plist
@@ -0,0 +1,44 @@
+bin/ecflow_client
+bin/ecflow_fuse.py
+bin/ecflow_logserver.sh
+bin/ecflow_logsvr.pl
+bin/ecflow_server
+bin/ecflow_standalone
+bin/ecflow_start.sh
+bin/ecflow_stop.sh
+bin/ecflow_ui
+bin/ecflow_ui.x
+lib/cmake/ecflow/ecflow-config-version.cmake
+lib/cmake/ecflow/ecflow-config.cmake
+lib/cmake/ecflow/ecflow-targets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/ecflow/ecflow-targets.cmake
+%%PYTHON_SITELIBDIR%%/ecflow/__init__.py
+%%PYTHON_SITELIBDIR%%/ecflow/ecf.py
+%%PYTHON_SITELIBDIR%%/ecflow/ecflow.so
+%%PYTHON_SITELIBDIR%%/ecflow/sms2ecf.py
+%%DATADIR%%/%%ETCDIR%%_test_ui.sh
+%%DATADIR%%/%%ETCDIR%%_ui_create_jira_issue.sh
+%%DATADIR%%/%%ETCDIR%%_ui_node_state_diag.sh
+%%DATADIR%%/%%ETCDIR%%_ui_test.def
+%%DATADIR%%/%%ETCDIR%%_ui_test_server_scripts.tar.gz
+%%DATADIR%%/%%ETCDIR%%_ui_test_session_template.json
+%%DATADIR%%/%%ETCDIR%%_ui_transfer_file.sh
+%%DATADIR%%/%%ETCDIR%%view_attribute_conf.json
+%%DATADIR%%/%%ETCDIR%%view_gui.json
+%%DATADIR%%/%%ETCDIR%%view_gui_server.json
+%%DATADIR%%/%%ETCDIR%%view_highlighter.json
+%%DATADIR%%/%%ETCDIR%%view_icon_conf.json
+%%DATADIR%%/%%ETCDIR%%view_menu_conf.json
+%%DATADIR%%/%%ETCDIR%%view_menus.json
+%%DATADIR%%/%%ETCDIR%%view_notification_conf.json
+%%DATADIR%%/%%ETCDIR%%view_nstate_conf.json
+%%DATADIR%%/%%ETCDIR%%view_palette.json
+%%DATADIR%%/%%ETCDIR%%view_panel_conf.json
+%%DATADIR%%/%%ETCDIR%%view_panels.json
+%%DATADIR%%/%%ETCDIR%%view_query_conf.json
+%%DATADIR%%/%%ETCDIR%%view_server_conf.json
+%%DATADIR%%/%%ETCDIR%%view_sstate_conf.json
+%%DATADIR%%/%%ETCDIR%%view_view_conf.json
+%%DATADIR%%/etc/shortcuts.txt
+%%DATADIR%%/etc/sounds/tone.ogg
+%%DATADIR%%/etc/viewer.qss