aboutsummaryrefslogtreecommitdiff
path: root/devel/openfec
diff options
context:
space:
mode:
Diffstat (limited to 'devel/openfec')
-rw-r--r--devel/openfec/Makefile38
-rw-r--r--devel/openfec/distinfo3
-rw-r--r--devel/openfec/files/COPYRIGHT-LDPC15
-rw-r--r--devel/openfec/files/patch-CMakeLists.txt55
-rw-r--r--devel/openfec/pkg-descr19
-rw-r--r--devel/openfec/pkg-plist48
6 files changed, 178 insertions, 0 deletions
diff --git a/devel/openfec/Makefile b/devel/openfec/Makefile
new file mode 100644
index 000000000000..dd4e30d735d6
--- /dev/null
+++ b/devel/openfec/Makefile
@@ -0,0 +1,38 @@
+PORTNAME= openfec
+DISTVERSIONPREFIX= v
+DISTVERSION= 1.4.2.12
+PORTREVISION= 1
+CATEGORIES= devel
+
+MAINTAINER= feld@FreeBSD.org
+COMMENT= Forward Error Correction Library
+WWW= https://github.com/roc-streaming/openfec
+
+# BSD2CLAUSE for the inlined FEC code by Luigi Rizzo
+# LDPC license for the inlined code from Radford Neal's LDPC project
+# which is similar to MIT license
+LICENSE= BSD2CLAUSE CeCCIL CeCCIL-C LDPC
+LICENSE_COMB= multi
+LICENSE_NAME_CeCCIL= CEA CNRS INRIA Logiciel Libre License
+LICENSE_FILE_CeCCIL= ${WRKSRC}/Licence_CeCILL_V2-en.txt
+LICENSE_PERMS_CeCCIL= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
+LICENSE_NAME_CeCCIL-C= CEA CNRS INRIA Logiciel Libre Component License
+LICENSE_FILE_CeCCIL-C= ${WRKSRC}/LICENCE_CeCILL-C_V1-en.txt
+LICENSE_PERMS_CeCCIL-C= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
+LICENSE_NAME_LDPC= Radford Neal's LDPC simulator licence
+LICENSE_FILE_LDPC= ${FILESDIR}/COPYRIGHT-LDPC
+LICENSE_PERMS_LDPC= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
+
+USES= cmake pathfix
+USE_LDCONFIG= yes
+
+USE_GITHUB= yes
+GH_ACCOUNT= roc-streaming
+
+.if defined(WITH_DEBUG)
+CFLAGS+= -DOF_DEBUG
+.endif
+
+TEST_TARGET= test
+
+.include <bsd.port.mk>
diff --git a/devel/openfec/distinfo b/devel/openfec/distinfo
new file mode 100644
index 000000000000..6ebbc1390aab
--- /dev/null
+++ b/devel/openfec/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1762800891
+SHA256 (roc-streaming-openfec-v1.4.2.12_GH0.tar.gz) = 3397f58c8fff945ece8ea19e7859040c98a5c6497e5d791397794094e15e5873
+SIZE (roc-streaming-openfec-v1.4.2.12_GH0.tar.gz) = 1114214
diff --git a/devel/openfec/files/COPYRIGHT-LDPC b/devel/openfec/files/COPYRIGHT-LDPC
new file mode 100644
index 000000000000..9cd0d7f65b4f
--- /dev/null
+++ b/devel/openfec/files/COPYRIGHT-LDPC
@@ -0,0 +1,15 @@
+Except as otherwise specified, all program code and documentation in this
+directory is copyright (c) 1995-2012 by Radford M. Neal.
+
+Permission is granted for anyone to copy, use, modify, and distribute
+these programs and accompanying documents for any purpose, provided
+this copyright notice is retained and prominently displayed, and note
+is made of any changes made to these programs. These programs and
+documents are distributed without any warranty, express or implied.
+As the programs were written for research purposes only, they have not
+been tested to the degree that would be advisable in any important
+application. All use of these programs is entirely at the user's own
+risk.
+
+Some routines in the module rand.c are taken from the GNU C Library,
+and are copyrighted as described there and in the file LGPL.
diff --git a/devel/openfec/files/patch-CMakeLists.txt b/devel/openfec/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..24b34a9fb74c
--- /dev/null
+++ b/devel/openfec/files/patch-CMakeLists.txt
@@ -0,0 +1,55 @@
+--- CMakeLists.txt.orig 2025-11-10 21:36:14 UTC
++++ CMakeLists.txt
+@@ -23,33 +23,33 @@ ENABLE_TESTING()
+
+ ENABLE_TESTING()
+
+-if (PROFILING STREQUAL "ON")
++#if (PROFILING STREQUAL "ON")
+
+-else(PROFILING STREQUAL "ON")
++#else(PROFILING STREQUAL "ON")
+
+-endif(PROFILING STREQUAL "ON")
++#endif(PROFILING STREQUAL "ON")
+
+-if (DEBUG STREQUAL "ON")
++#if (DEBUG STREQUAL "ON")
+ # Debug mode
+-ADD_DEFINITIONS(-DOF_DEBUG)
+-set(CMAKE_BUILD_TYPE Debug)
+-message(STATUS "Debug mode ON" )
++#ADD_DEFINITIONS(-DOF_DEBUG)
++#set(CMAKE_BUILD_TYPE Debug)
++#message(STATUS "Debug mode ON" )
+
+-else(DEBUG STREQUAL "ON")
++#else(DEBUG STREQUAL "ON")
+ # Release mode
+-set(CMAKE_BUILD_TYPE Release)
+-set(OPTIMIZE "3" CACHE STRING "Set optimization level (0-3 or DEFAULT)")
+-if (NOT OPTIMIZE STREQUAL "DEFAULT")
+- string(REGEX REPLACE "(-O[A-Za-z0-9]+)" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
+- string(REGEX REPLACE "(-O[A-Za-z0-9]+)" "" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
+- set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O${OPTIMIZE}")
+-endif()
+-message(STATUS "Debug mode OFF")
+-message(STATUS "Optimization level ${OPTIMIZE}")
++#set(CMAKE_BUILD_TYPE Release)
++#set(OPTIMIZE "3" CACHE STRING "Set optimization level (0-3 or DEFAULT)")
++#if (NOT OPTIMIZE STREQUAL "DEFAULT")
++# string(REGEX REPLACE "(-O[A-Za-z0-9]+)" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
++# string(REGEX REPLACE "(-O[A-Za-z0-9]+)" "" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
++# set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O${OPTIMIZE}")
++#endif()
++#message(STATUS "Debug mode OFF")
++#message(STATUS "Optimization level ${OPTIMIZE}")
+
+-endif (DEBUG STREQUAL "ON")
++#endif (DEBUG STREQUAL "ON")
+
+-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -Wno-unused-result")
++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-result")
+
+ set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin/${CMAKE_BUILD_TYPE}
+ CACHE STRING "output path for libraries")
diff --git a/devel/openfec/pkg-descr b/devel/openfec/pkg-descr
new file mode 100644
index 000000000000..6d0afbcc983b
--- /dev/null
+++ b/devel/openfec/pkg-descr
@@ -0,0 +1,19 @@
+OpenFEC is a library that provides Application-Level Forward Erasure
+Correction (AL-FEC) codes, also known as Upper-Layers FEC (UL-FEC). The
+core purpose is to add redundancy to data in order to recover from
+erasures during transmission without requiring retransmission.
+Implemented as high-performance C-language software codecs, OpenFEC
+provides IPR-free, open AL-FEC codes positioned in the communication
+stack for robust transmission and distributed storage applications.
+
+The library serves as a platform for developers and researchers who need
+to integrate forward error correction capabilities into their
+applications, offering ready-to-use codecs, performance evaluation
+environments, and documentation. It's designed for applications where
+data loss during transmission needs to be recovered automatically,
+making it suitable for reliable communication systems, streaming
+applications, and distributed storage solutions where retransmission is
+not feasible.
+
+This package is a fork by the roc-streaming project with additional
+bugfixes. The original project is hosted at https://openfec.inrialpes.fr
diff --git a/devel/openfec/pkg-plist b/devel/openfec/pkg-plist
new file mode 100644
index 000000000000..8d7dee375c90
--- /dev/null
+++ b/devel/openfec/pkg-plist
@@ -0,0 +1,48 @@
+include/openfec/lib_advanced/ldpc_from_file/of_codec_profile.h
+include/openfec/lib_advanced/ldpc_from_file/of_ldpc_ff.h
+include/openfec/lib_advanced/ldpc_from_file/of_ldpc_ff_api.h
+include/openfec/lib_advanced/ldpc_from_file/of_ldpc_ff_includes.h
+include/openfec/lib_advanced/ldpc_from_file/of_ldpc_includes.h
+include/openfec/lib_common/linear_binary_codes_utils/binary_matrix/of_hamming_weight.h
+include/openfec/lib_common/linear_binary_codes_utils/binary_matrix/of_matrix_convert.h
+include/openfec/lib_common/linear_binary_codes_utils/binary_matrix/of_matrix_dense.h
+include/openfec/lib_common/linear_binary_codes_utils/binary_matrix/of_matrix_sparse.h
+include/openfec/lib_common/linear_binary_codes_utils/binary_matrix/of_tools.h
+include/openfec/lib_common/linear_binary_codes_utils/it_decoding/of_it_decoding.h
+include/openfec/lib_common/linear_binary_codes_utils/ml_decoding/of_ml_decoding.h
+include/openfec/lib_common/linear_binary_codes_utils/ml_decoding/of_ml_tool.h
+include/openfec/lib_common/linear_binary_codes_utils/of_create_pchk.h
+include/openfec/lib_common/linear_binary_codes_utils/of_linear_binary_code.h
+include/openfec/lib_common/linear_binary_codes_utils/of_symbol.h
+include/openfec/lib_common/of_build_config.h
+include/openfec/lib_common/of_cb.h
+include/openfec/lib_common/of_debug.h
+include/openfec/lib_common/of_mem.h
+include/openfec/lib_common/of_openfec_api.h
+include/openfec/lib_common/of_openfec_profile.h
+include/openfec/lib_common/of_rand.h
+include/openfec/lib_common/of_types.h
+include/openfec/lib_common/statistics/of_statistics.h
+include/openfec/lib_stable/2d_parity_matrix/of_2d_parity.h
+include/openfec/lib_stable/2d_parity_matrix/of_2d_parity_api.h
+include/openfec/lib_stable/2d_parity_matrix/of_2d_parity_includes.h
+include/openfec/lib_stable/2d_parity_matrix/of_codec_profile.h
+include/openfec/lib_stable/ldpc_staircase/of_codec_profile.h
+include/openfec/lib_stable/ldpc_staircase/of_ldpc_includes.h
+include/openfec/lib_stable/ldpc_staircase/of_ldpc_staircase.h
+include/openfec/lib_stable/ldpc_staircase/of_ldpc_staircase_api.h
+include/openfec/lib_stable/reed-solomon_gf_2_8/of_codec_profile.h
+include/openfec/lib_stable/reed-solomon_gf_2_8/of_reed-solomon_gf_2_8.h
+include/openfec/lib_stable/reed-solomon_gf_2_8/of_reed-solomon_gf_2_8_api.h
+include/openfec/lib_stable/reed-solomon_gf_2_8/of_reed-solomon_gf_2_8_includes.h
+include/openfec/lib_stable/reed-solomon_gf_2_m/galois_field_codes_utils/algebra_2_4.h
+include/openfec/lib_stable/reed-solomon_gf_2_m/galois_field_codes_utils/algebra_2_8.h
+include/openfec/lib_stable/reed-solomon_gf_2_m/galois_field_codes_utils/of_galois_field_code.h
+include/openfec/lib_stable/reed-solomon_gf_2_m/of_codec_profile.h
+include/openfec/lib_stable/reed-solomon_gf_2_m/of_reed-solomon_gf_2_m.h
+include/openfec/lib_stable/reed-solomon_gf_2_m/of_reed-solomon_gf_2_m_api.h
+include/openfec/lib_stable/reed-solomon_gf_2_m/of_reed-solomon_gf_2_m_includes.h
+lib/libopenfec.so
+lib/libopenfec.so.1
+lib/libopenfec.so.1.4.2
+libdata/pkgconfig/openfec.pc