git: 8e8f88d141e6 - main - devel/croaring: Roaring bitmaps in C (and C++), with SIMD
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 11 Sep 2026 13:00:32 UTC
The branch main has been updated by fuz:
URL: https://cgit.FreeBSD.org/ports/commit/?id=8e8f88d141e680524942dacf35362211c74126f1
commit 8e8f88d141e680524942dacf35362211c74126f1
Author: László Károlyi <laszlo@karolyi.hu>
AuthorDate: 2026-01-11 14:28:19 +0000
Commit: Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2026-09-11 12:58:47 +0000
devel/croaring: Roaring bitmaps in C (and C++), with SIMD
Roaring bitmaps in C (and C++), with SIMD (AVX2, AVX-512 and NEON)
optimizations: used by Apache Doris, ClickHouse, Alibaba Tair, Redpanda, YDB
and StarRocks.
WWW: http://roaringbitmap.org/
- update port to 5.2.0 prior to landing
- grab maintainership over submitter as I have a good relationship
to upstream
- lightly touch up
PR: 292270
Event: EuroBSDcon Devsummit 2026
See also: https://github.com/RoaringBitmap/CRoaring/pull/879
---
devel/Makefile | 1 +
devel/croaring/Makefile | 29 ++++++++++++++++
devel/croaring/distinfo | 3 ++
devel/croaring/files/patch-CMakeLists.txt | 11 ++++++
.../files/patch-include_roaring_portability.h | 10 ++++++
.../files/patch-tools_cmake_FindCTargets.cmake | 38 ++++++++++++++++++++
devel/croaring/pkg-descr | 3 ++
devel/croaring/pkg-plist | 40 ++++++++++++++++++++++
8 files changed, 135 insertions(+)
diff --git a/devel/Makefile b/devel/Makefile
index 7d4333952d25..63824d409b38 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -534,6 +534,7 @@
SUBDIR += creduce
SUBDIR += critcl
SUBDIR += criterion
+ SUBDIR += croaring
SUBDIR += cscope
SUBDIR += cscout
SUBDIR += csfml
diff --git a/devel/croaring/Makefile b/devel/croaring/Makefile
new file mode 100644
index 000000000000..4bd17e33662b
--- /dev/null
+++ b/devel/croaring/Makefile
@@ -0,0 +1,29 @@
+PORTNAME= CRoaring
+DISTVERSIONPREFIX= v
+DISTVERSION= 5.2.0
+CATEGORIES= devel
+
+MAINTAINER= fuz@FreeBSD.org
+COMMENT= Roaring bitmaps in C (and C++), with SIMD
+WWW= http://roaringbitmap.org/ \
+ https://github.com/RoaringBitmap/CRoaring
+
+LICENSE= APACHE20
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${LOCALBASE}/include/cmocka.h:sysutils/cmocka
+
+USES= pkgconfig cmake:testing
+USE_GITHUB= yes
+GH_ACCOUNT= RoaringBitmap
+
+USE_LDCONFIG= yes
+
+CMAKE_OFF= ROARING_USE_CPM ${CMAKE_OFF_${ARCH}}
+CMAKE_ON= BUILD_SHARED_LIBS
+CMAKE_ARGS_armv7= -DROARING_DISABLE_NEON:BOOL=TRUE
+CMAKE_ARGS+= ${CMAKE_ARGS_${ARCH}}
+
+PLIST_SUB= DISTVERSION=${DISTVERSION}
+
+.include <bsd.port.mk>
diff --git a/devel/croaring/distinfo b/devel/croaring/distinfo
new file mode 100644
index 000000000000..9c6d9b9e7286
--- /dev/null
+++ b/devel/croaring/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1789043774
+SHA256 (RoaringBitmap-CRoaring-v5.2.0_GH0.tar.gz) = 5f6ce15f23cb70fca04839d186a15ceb540e31d650496e0a2c8284a882465b13
+SIZE (RoaringBitmap-CRoaring-v5.2.0_GH0.tar.gz) = 100817734
diff --git a/devel/croaring/files/patch-CMakeLists.txt b/devel/croaring/files/patch-CMakeLists.txt
new file mode 100644
index 000000000000..7bc080d0b665
--- /dev/null
+++ b/devel/croaring/files/patch-CMakeLists.txt
@@ -0,0 +1,11 @@
+--- CMakeLists.txt.orig 2026-09-08 23:18:25 UTC
++++ CMakeLists.txt
+@@ -73,7 +73,7 @@ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/roaring.pc
+
+ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/roaring.pc.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/roaring.pc" @ONLY)
+-install(FILES "${CMAKE_CURRENT_BINARY_DIR}/roaring.pc" DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
++install(FILES "${CMAKE_CURRENT_BINARY_DIR}/roaring.pc" DESTINATION libdata/pkgconfig)
+
+ ## C header files get installed to /usr/local/include/roaring typically
+
diff --git a/devel/croaring/files/patch-include_roaring_portability.h b/devel/croaring/files/patch-include_roaring_portability.h
new file mode 100644
index 000000000000..7144b768d306
--- /dev/null
+++ b/devel/croaring/files/patch-include_roaring_portability.h
@@ -0,0 +1,10 @@
+--- include/roaring/portability.h.orig 2026-09-08 23:18:25 UTC
++++ include/roaring/portability.h
+@@ -456,6 +456,7 @@ static inline int roaring_hamming(uint64_t x) {
+ #if defined(__linux__)
+ #define croaring_htobe64(x) bswap_64(x)
+ #elif defined(__FreeBSD__)
++#include <sys/endian.h>
+ #define croaring_htobe64(x) bswap64(x)
+ #else
+ #warning "Unknown platform, report as an error"
diff --git a/devel/croaring/files/patch-tools_cmake_FindCTargets.cmake b/devel/croaring/files/patch-tools_cmake_FindCTargets.cmake
new file mode 100644
index 000000000000..3a46f83e0afc
--- /dev/null
+++ b/devel/croaring/files/patch-tools_cmake_FindCTargets.cmake
@@ -0,0 +1,38 @@
+--- tools/cmake/FindCTargets.cmake.orig 2026-09-08 23:18:25 UTC
++++ tools/cmake/FindCTargets.cmake
+@@ -1,4 +1,7 @@ include(${PROJECT_SOURCE_DIR}/tools/cmake/Import.cmake
+ include(${PROJECT_SOURCE_DIR}/tools/cmake/Import.cmake)
++
++find_package(PkgConfig REQUIRED)
++
+ set(BUILD_STATIC_LIB ON)
+ if (ENABLE_ROARING_TESTS AND NOT EMSCRIPTEN)
+ if(ROARING_USE_CPM)
+@@ -9,7 +12,7 @@ if (ENABLE_ROARING_TESTS AND NOT EMSCRIPTEN)
+ OPTIONS "UNIT_TESTING ON"
+ )
+ else()
+- find_package(cmocka 2.0.0 REQUIRED)
++ pkg_check_modules(CMOCKA REQUIRED IMPORTED_TARGET cmocka)
+ endif()
+ endif()
+
+@@ -23,7 +26,7 @@ function(add_c_test TEST_NAME)
+ if(ROARING_USE_CPM)
+ target_link_libraries(${TEST_NAME} roaring cmocka-static)
+ else()
+- target_link_libraries(${TEST_NAME} roaring cmocka)
++ target_link_libraries(${TEST_NAME} roaring PkgConfig::CMOCKA)
+ endif()
+
+ add_test(${TEST_NAME} ${TEST_NAME})
+@@ -45,7 +48,8 @@ if (CMAKE_VERSION VERSION_GREATER 2.8.10)
+ target_link_libraries(${TEST_NAME} roaring cmocka-static)
+ target_include_directories(${TEST_NAME} PRIVATE "${CMAKE_BINARY_DIR}/_deps/cmocka-src/include")
+ else()
+- target_link_libraries(${TEST_NAME} roaring cmocka)
++ target_include_directories(${TEST_NAME} PRIVATE "${CMOCKA_INCLUDEDIR}")
++ target_link_libraries(${TEST_NAME} roaring PkgConfig::CMOCKA)
+ endif()
+
+ add_test(${TEST_NAME} ${TEST_NAME})
diff --git a/devel/croaring/pkg-descr b/devel/croaring/pkg-descr
new file mode 100644
index 000000000000..fb1dd55cb699
--- /dev/null
+++ b/devel/croaring/pkg-descr
@@ -0,0 +1,3 @@
+Roaring bitmaps in C (and C++), with SIMD (AVX2, AVX-512 and NEON)
+optimizations: used by Apache Doris, ClickHouse, Alibaba Tair, Redpanda, YDB
+and StarRocks
diff --git a/devel/croaring/pkg-plist b/devel/croaring/pkg-plist
new file mode 100644
index 000000000000..69ba05cdc05d
--- /dev/null
+++ b/devel/croaring/pkg-plist
@@ -0,0 +1,40 @@
+libdata/pkgconfig/roaring.pc
+include/roaring/roaring64.hh
+include/roaring/roaring64map.hh
+include/roaring/roaring.hh
+include/roaring/art/art.h
+include/roaring/bitset/bitset.h
+include/roaring/roaring.h
+include/roaring/portability.h
+include/roaring/roaring_array.h
+include/roaring/memory.h
+include/roaring/roaring_types.h
+include/roaring/misc/configreport.h
+include/roaring/roaring_version.h
+include/roaring/portability.h.orig
+include/roaring/containers/run.h
+include/roaring/containers/mixed_andnot.h
+include/roaring/containers/mixed_xor.h
+include/roaring/containers/mixed_union.h
+include/roaring/containers/mixed_subset.h
+include/roaring/containers/mixed_intersection.h
+include/roaring/containers/bitset.h
+include/roaring/containers/array.h
+include/roaring/containers/mixed_equal.h
+include/roaring/containers/container_defs.h
+include/roaring/containers/mixed_negation.h
+include/roaring/containers/convert.h
+include/roaring/containers/containers.h
+include/roaring/containers/perfparameters.h
+include/roaring/roaring64.h
+include/roaring/bitset_util.h
+include/roaring/isadetection.h
+include/roaring/array_util.h
+include/roaring/utilasm.h
+lib/libroaring.so.%%DISTVERSION%%
+lib/libroaring.so.28
+lib/libroaring.so
+lib/cmake/roaring/roaring-config-version.cmake
+lib/cmake/roaring/roaring-config.cmake
+lib/cmake/roaring/roaring-targets.cmake
+lib/cmake/roaring/roaring-targets-release.cmake