diff options
Diffstat (limited to 'databases/clickhouse/Makefile')
| -rw-r--r-- | databases/clickhouse/Makefile | 281 |
1 files changed, 84 insertions, 197 deletions
diff --git a/databases/clickhouse/Makefile b/databases/clickhouse/Makefile index 38ce0a4a706c..65bb6462b75b 100644 --- a/databases/clickhouse/Makefile +++ b/databases/clickhouse/Makefile @@ -1,219 +1,58 @@ PORTNAME= clickhouse -PORTVERSION= 22.1.3.7 DISTVERSIONPREFIX= v +DISTVERSION= 25.11.1.558 DISTVERSIONSUFFIX=-stable CATEGORIES= databases +DIST_SUBDIR= ${PORTNAME} -MAINTAINER= ports@FreeBSD.org +# implicit-approval+: bofh +MAINTAINER= pi@FreeBSD.org COMMENT= Fast open-source OLAP database management system -WWW= https://clickhouse.tech/ +WWW= https://clickhouse.com/ LICENSE= APACHE20 ONLY_FOR_ARCHS= aarch64 amd64 ONLY_FOR_ARCHS_REASON= only supported on aarch64 and amd64 -BUILD_DEPENDS= bash:shells/bash +BUILD_DEPENDS= bash:shells/bash \ + nasm:devel/nasm RUN_DEPENDS= bash:shells/bash +.if defined(MAINTAINER_MODE) +RUN_DEPENDS+= jq:textproc/jq +.endif -USES= cmake cpe localbase perl5 python shebangfix -USE_PERL5= build - -CPE_VENDOR= yandex - +USES= cmake cpe localbase ninja perl5 python shebangfix +CPE_VENDOR= ${PORTNAME} USE_GITHUB= yes -GH_ACCOUNT= yandex +GH_ACCOUNT= ClickHouse GH_PROJECT= ClickHouse -GH_TUPLE= \ - ClickHouse-Extras:AMQP-CPP:1a6c51f:ClickHouse_Extras_AMQP_CPP/contrib/AMQP-CPP \ - ClickHouse-Extras:NuRaft:c2043aa:ClickHouse_Extras_NuRaft/contrib/NuRaft \ - ClickHouse-Extras:abseil-cpp:2151058:ClickHouse_Extras_abseil_cpp/contrib/abseil-cpp \ - ClickHouse-Extras:arrow:1d9cc51:ClickHouse_Extras_arrow/contrib/arrow \ - ClickHouse-Extras:avro:e43c46e:ClickHouse_Extras_avro/contrib/avro \ - ClickHouse-Extras:aws-sdk-cpp:00b0360:ClickHouse_Extras_aws_sdk_cpp/contrib/aws \ - ClickHouse-Extras:aws-c-common:736a82d:ClickHouse_Extras_aws_c_common/contrib/aws-c-common \ - ClickHouse-Extras:aws-c-event-stream:3bc3366:ClickHouse_Extras_aws_c_event_stream/contrib/aws-c-event-stream \ - ClickHouse-Extras:aws-checksums:519d6d9:ClickHouse_Extras_aws_checksums/contrib/aws-checksums \ - ClickHouse-Extras:azure-sdk-for-cpp:ac4b763:ClickHouse_Extras_azure_sdk_for_cpp/contrib/azure \ - ClickHouse-Extras:Turbo-Base64:9499e0c:ClickHouse_Extras_Turbo_Base64/contrib/base64 \ - ClickHouse-Extras:boost:c0807e8:ClickHouse_Extras_boost/contrib/boost \ - ClickHouse-Extras:boringssl:c1e01a4:ClickHouse_Extras_boringssl/contrib/boringssl \ - google:brotli:63be8a9:google_brotli/contrib/brotli \ - ClickHouse-Extras:bzip2:bf905ea:ClickHouse_Extras_bzip2/contrib/bzip2 \ - capnproto:capnproto:c8189ec:capnproto_capnproto/contrib/capnproto \ - ClickHouse-Extras:cpp-driver:f4a31e9:ClickHouse_Extras_cpp_driver/contrib/cassandra \ - ClickHouse-Extras:cctz:9edd086:ClickHouse_Extras_cctz/contrib/cctz \ - mfontanini:cppkafka:5a119f6:mfontanini_cppkafka/contrib/cppkafka \ - RoaringBitmap:CRoaring:2c867e9:RoaringBitmap_CRoaring/contrib/croaring \ - curl:curl:3b8bbbb:curl_curl/contrib/curl \ - ClickHouse-Extras:cyrus-sasl:e6466ed:ClickHouse_Extras_cyrus_sasl/contrib/cyrus-sasl \ - apache:datasketches-cpp:7d73d76:apache_datasketches/contrib/datasketches-cpp \ - google:double-conversion:cf2f0f3:google_double_conversion/contrib/double-conversion \ - ClickHouse-Extras:dragonbox:923705a:ClickHouse_Extras_dragonbox/contrib/dragonbox \ - fastfloat:fast_float:7eae925:fastfloat_fast_float/contrib/fast_float \ - ClickHouse-Extras:fastops:1460583:ClickHouse_Extras_fastops/contrib/fastops \ - google:flatbuffers:eb3f827:google_flatbuffers/contrib/flatbuffers \ - fmtlib:fmt:c108ee1:fmtlib_fmt/contrib/fmtlib \ - google:googletest:e7e5917:google_googletest/contrib/googletest \ - ClickHouse-Extras:grpc:7eac189:ClickHouse_Extras_grpc/contrib/grpc \ - ClickHouse-Extras:h3:c7f46cf:ClickHouse_Extras_h3/contrib/h3 \ - ClickHouse-Extras:hive-metastore:809a77d:ClickHouse_Extras_hive_metastore/contrib/hive-metastore \ - ClickHouse-Extras:hyperscan:e9f08df:ClickHouse_Extras_hyperscan/contrib/hyperscan \ - unicode-org:icu:faa2f9f:unicode_org_icu/contrib/icu \ - ClickHouse-Extras:icudata:f020820:ClickHouse_Extras_icudata/contrib/icudata \ - ClickHouse-Extras:jemalloc:a140480:ClickHouse_Extras_jemalloc/contrib/jemalloc \ - ClickHouse-Extras:krb5:5149dea:ClickHouse_Extras_krb5/contrib/krb5 \ - ClickHouse-Extras:lemmagen-c:59537bd:ClickHouse_Extras_lemmagen_c/contrib/lemmagen-c \ - ClickHouse-Extras:libcpuid:8db3b8d:ClickHouse_Extras_libcpuid/contrib/libcpuid \ - ClickHouse-Extras:libcxx:61e6029:ClickHouse_Extras_libcxx/contrib/libcxx \ - ClickHouse-Extras:libcxxabi:df8f1e7:ClickHouse_Extras_libcxxabi/contrib/libcxxabi \ - ClickHouse-Extras:libgsasl:383ee28:ClickHouse_Extras_libgsasl/contrib/libgsasl \ - ClickHouse-Extras:libhdfs3:9194af4:ClickHouse_Extras_libhdfs3/contrib/libhdfs3 \ - ClickHouse-Extras:libpq:e071ea5:ClickHouse_Extras_libpq/contrib/libpq \ - jtv:libpqxx:63e20f9:jtv_libpqxx/contrib/libpqxx \ - google:libprotobuf-mutator:ffd86a3:google_libprotobuf_mutator/contrib/libprotobuf-mutator \ - ClickHouse-Extras:librdkafka:b8554f1:ClickHouse_Extras_librdkafka/contrib/librdkafka \ - ClickHouse-Extras:libstemmer_c:c753054:ClickHouse_Extras_libstemmer_c/contrib/libstemmer_c \ - ClickHouse-Extras:libunwind:c4ea984:ClickHouse_Extras_libunwind/contrib/libunwind \ - ClickHouse-Extras:libuv:95081e7:ClickHouse_Extras_libuv/contrib/libuv \ - GNOME:libxml2:18890f4:GNOME_libxml2/contrib/libxml2 \ - ClickHouse-Extras:llvm:20607e6:ClickHouse_Extras_llvm/contrib/llvm \ - lz4:lz4:f39b79f:lz4_lz4/contrib/lz4 \ - Neargye:magic_enum:38f86e4:Neargye_magic_enum/contrib/magic_enum \ - ClickHouse-Extras:mariadb-connector-c:5f4034a:ClickHouse_Extras_mariadb_connector_c/contrib/mariadb-connector-c \ - danlark1:miniselect:be0af6b:danlark1_miniselect/contrib/miniselect \ - msgpack:msgpack-c:4668426:msgpack_msgpack_c/contrib/msgpack-c \ - nanodbc:nanodbc:df52a12:contrib/nanodbc \ - ClickHouse-Extras:openldap:0208811:ClickHouse_Extras_openldap/contrib/openldap \ - ClickHouse-Extras:orc:0a936f6:ClickHouse_Extras/contrib/orc \ - ClickHouse-Extras:poco:520a90e:ClickHouse_Extras_poco/contrib/poco \ - ClickHouse-Extras:protobuf:6bb7019:ClickHouse_Extras_protobuf/contrib/protobuf \ - ClickHouse-Extras:rapidjson:c4ef90c:ClickHouse_Extras_rapidjson/contrib/rapidjson \ - google:re2:13ebb37:google_re2/contrib/re2 \ - ClickHouse-Extras:replxx:f019cba:ClickHouse_Extras_replxx/contrib/replxx \ - ClickHouse-Extras:rocksdb:e7c2b2f:ClickHouse_Extras_rocksdb/contrib/rocksdb \ - ClickHouse-Extras:s2geometry:471fe9d:ClickHouse_Extras_s2geometry/contrib/s2geometry \ - ClickHouse-Extras:sentry-native:f431047:ClickHouse_Extras_sentry_native/contrib/sentry-native \ - ClickHouse-Extras:simdjson:8df32ce:ClickHouse_Extras_simdjson/contrib/simdjson \ - ClickHouse-Extras:snappy:fb057ed:ClickHouse_Extras_snappy/contrib/snappy \ - sparsehash:sparsehash-c11:cf0bffa:sparsehash_sparsehash_c11/contrib/sparsehash-c11 \ - azadkuh:sqlite-amalgamation:9818baa:azadkuh_sqlite_amalgamation/contrib/sqlite-amalgamation \ - ClickHouse-Extras:sysroot:bbcac83:ClickHouse_Extras_sysroot/contrib/sysroot \ - apache:thrift:010ccf0:apache_thrift/contrib/thrift \ - ClickHouse-Extras:UnixODBC:b0ad30f:ClickHouse_Extras_UnixODBC/contrib/unixodbc \ - ClickHouse-Extras:wordnet-blast:1d16ac2:ClickHouse_Extras_wordnet_blast/contrib/wordnet-blast \ - xz-mirror:xz:869b9d1:xz_mirror_xz/contrib/xz \ - ClickHouse-Extras:yaml-cpp:0c86ada:ClickHouse_Extras_yaml_cpp/contrib/yaml-cpp \ - ClickHouse-Extras:zlib-ng:bffad6f:ClickHouse_Extras_zlib_ng/contrib/zlib-ng \ - facebook:zstd:a488ba1:facebook_zstd/contrib/zstd - +GH_TUPLE= +.include "${.CURDIR}/Makefile.submodules" +USE_PERL5= build USE_RC_SUBR= ${PORTNAME} -SHEBANG_FILES= src/Storages/System/StorageSystemLicenses.sh \ - tests/clickhouse-test tests/config/install.sh \ - tests/queries/0_stateless/00960_live_view_watch_events_live.py \ - tests/queries/0_stateless/00962_live_view_periodic_refresh.py \ - tests/queries/0_stateless/00962_live_view_periodic_refresh_and_timeout.py \ - tests/queries/0_stateless/00962_live_view_periodic_refresh_dictionary.py \ - tests/queries/0_stateless/00962_temporary_live_view_watch_live.py \ - tests/queries/0_stateless/00963_temporary_live_view_watch_live_timeout.py.disabled \ - tests/queries/0_stateless/00964_live_view_watch_events_heartbeat.py \ - tests/queries/0_stateless/00965_live_view_watch_heartbeat.py \ - tests/queries/0_stateless/00966_live_view_watch_events_http.py \ - tests/queries/0_stateless/00967_live_view_watch_http.py \ - tests/queries/0_stateless/00970_live_view_watch_events_http_heartbeat.py \ - tests/queries/0_stateless/00971_live_view_watch_http_heartbeat.py \ - tests/queries/0_stateless/00979_live_view_watch_continuous_aggregates.py \ - tests/queries/0_stateless/00979_live_view_watch_live.py \ - tests/queries/0_stateless/00979_live_view_watch_live_moving_avg.py.disabled \ - tests/queries/0_stateless/00979_live_view_watch_live_with_subquery.py \ - tests/queries/0_stateless/00991_live_view_watch_http.python \ - tests/queries/0_stateless/01176_mysql_client_interactive.expect \ - tests/queries/0_stateless/01179_insert_values_semicolon.expect \ - tests/queries/0_stateless/01180_client_syntax_errors.expect \ - tests/queries/0_stateless/01246_insert_into_watch_live_view.py \ - tests/queries/0_stateless/01293_client_interactive_vertical_multiline.expect \ - tests/queries/0_stateless/01293_client_interactive_vertical_singleline.expect \ - tests/queries/0_stateless/01300_client_save_history_when_terminated_long.expect \ - tests/queries/0_stateless/01370_client_autocomplete_word_break_characters.expect \ - tests/queries/0_stateless/01520_client_print_query_id.expect \ - tests/queries/0_stateless/01526_client_start_and_exit.expect-not-a-test-case \ - tests/queries/0_stateless/01565_reconnect_after_client_error.expect \ - tests/queries/0_stateless/01599_multiline_input_and_singleline_comments.sh \ - tests/queries/0_stateless/01610_client_spawn_editor.sh \ - tests/queries/0_stateless/helpers/00900_parquet_create_table_columns.py \ - tests/queries/0_stateless/helpers/client.py \ - tests/queries/0_stateless/helpers/httpclient.py \ - tests/queries/0_stateless/helpers/httpexpect.py \ - tests/queries/0_stateless/helpers/protobuf_length_delimited_encoder.py \ - tests/queries/0_stateless/helpers/pure_http_client.py \ - tests/queries/0_stateless/helpers/shell.py \ - tests/queries/0_stateless/helpers/uexpect.py \ - tests/queries/0_stateless/01910_client_replxx_container_overflow_long.expect \ - tests/queries/0_stateless/02132_client_history_navigation.expect \ - tests/queries/0_stateless/01933_client_replxx_convert_history.expect \ - tests/queries/0_stateless/01945_show_debug_warning.expect \ - tests/queries/0_stateless/01059_window_view_event_hop_watch_strict_asc.py \ - tests/queries/0_stateless/01070_window_view_watch_events.py \ - tests/queries/0_stateless/02116_interactive_hello.expect \ - tests/queries/0_stateless/01755_client_highlight_multi_line_comment_regression.expect \ - tests/queries/0_stateless/02112_delayed_clickhouse_client_with_queries_file.expect \ - tests/queries/0_stateless/02112_delayed_clickhouse_local_with_queries_file.expect \ +SHEBANG_FILES= tests/clickhouse-test \ tests/queries/0_stateless/02010_lc_native.python \ - tests/queries/0_stateless/02105_backslash_letter_commands.expect \ - tests/queries/0_stateless/01069_window_view_proc_tumble_watch.py \ - tests/queries/0_stateless/01062_window_view_event_hop_watch_asc.py \ - tests/queries/0_stateless/01921_test_progress_bar.py \ - tests/queries/0_stateless/02112_delayed_clickhouse_local.expect \ - tests/queries/0_stateless/02049_clickhouse_local_merge_tree.expect \ - tests/queries/0_stateless/01056_window_view_proc_hop_watch.py \ - tests/queries/0_stateless/01065_window_view_event_hop_watch_bounded.py \ - tests/queries/0_stateless/02003_memory_limit_in_client.expect \ - tests/queries/0_stateless/02047_client_exception.expect \ - tests/queries/0_stateless/02164_clickhouse_local_interactive_exception.expect \ - utils/check-style/check-duplicate-includes.sh \ - utils/check-style/check-ungrouped-includes.sh \ - utils/check-style/format.sh utils/check-style/shellcheck-run.sh \ - utils/ci/build-clang-from-sources.sh \ - utils/ci/build-debian-packages.sh \ - utils/ci/build-gcc-from-sources.sh \ - utils/ci/build-normal.sh \ - utils/ci/check-docker.sh \ - utils/ci/check-syntax.sh \ - utils/ci/check-tzdata-updates.sh \ - utils/ci/create-sources-tarball.sh \ - utils/ci/get-sources.sh \ - utils/ci/install-compiler-from-packages.sh \ - utils/ci/install-compiler-from-sources.sh \ - utils/ci/install-libraries.sh \ - utils/ci/install-os-packages.sh \ - utils/ci/prepare-docker-image-ubuntu.sh \ - utils/ci/prepare-toolchain.sh \ - utils/ci/prepare-vagrant-image-freebsd.sh \ - utils/ci/run-clickhouse-from-binaries.sh \ - utils/ci/run-with-docker.sh \ - utils/ci/run-with-vagrant.sh \ - utils/clickhouse-docker utils/compressor/test.sh \ - utils/durability-test/durability-test.sh \ - utils/durability-test/install.sh \ - utils/list-licenses/list-licenses.sh \ - utils/list-versions/list-versions.sh -SHEBANG_LANG= expect - + tests/queries/0_stateless/02203_shebang +SHEBANG_GLOB= *.expect *.py *.python *.sh +SHEBANG_LANG= clickhouse-local expect +clickhouse-local_OLD_CMD= /usr/bin/clickhouse-local +clickhouse-local_CMD= ${LOCALBASE}/bin/clickhouse-local expect_OLD_CMD= /usr/bin/expect expect_CMD= ${LOCALBASE}/bin/expect CMAKE_ARGS= -DCMAKE_CXX_STANDARD=20 \ - -DENABLE_EMBEDDED_COMPILER=OFF \ - -DENABLE_THINLTO=OFF \ - -DENABLE_PARQUET=OFF \ - -DENABLE_UTILS=ON \ - -DNO_WERROR=1 + -DNO_WERROR=1 \ + -DCOMPILER_CACHE=disabled \ + -DPARALLEL_COMPILE_JOBS=${MAKE_JOBS_NUMBER} \ + -DPARALLEL_LINK_JOBS=${MAKE_JOBS_NUMBER} +CMAKE_OFF= ENABLE_PARQUET ENABLE_THINLTO ENABLE_UTILS .if defined(WITH_DEBUG) CMAKE_BUILD_TYPE=Debug .else -CMAKE_BUILD_TYPE=RelWithDebInfo +CMAKE_BUILD_TYPE=Release .endif USERS= clickhouse @@ -222,15 +61,23 @@ GROUPS= clickhouse # The version stamp of libclickhouse.so doesn't always match ${PORTVERSION} PLIST_SUB= SOVERSION=${SOVERSION} -OPTIONS_DEFINE= TEST -TEST_RUN_DEPENDS+= expect>0:lang/expect +OPTIONS_DEFINE= LLVM RUST TEST +OPTIONS_SUB= yes + +LLVM_DESC= Build with support for JIT-compiling expressions +RUST_DESC= Build with Rust language support +LLVM_BROKEN= In tree LLVM is broken +LLVM_CMAKE_BOOL= ENABLE_DWARF_PARSER ENABLE_EMBEDDED_COMPILER +RUST_BUILD_DEPENDS= rustc:lang/rust +RUST_CMAKE_BOOL= ENABLE_RUST +TEST_RUN_DEPENDS= expect>0:lang/expect TEST_CMAKE_BOOL= ENABLE_TESTS .include <bsd.port.options.mk> .if ${OPSYS} == FreeBSD -USES+= llvm:max=15 +USES+= llvm:min=21 CFLAGS+=-Wno-error=int-conversion .endif @@ -244,27 +91,24 @@ SUB_LIST+= LEGACY_LIMITS="" \ SOVERSION= ${PORTVERSION} -.include <bsd.port.pre.mk> - post-patch: @${REINPLACE_CMD} -e 's|/var/lib/clickhouse|/var/db/clickhouse|;s|/var/log/clickhouse-server|/var/log/clickhouse|;s|/etc/clickhouse-server|${PREFIX}/etc/clickhouse-server|' ${WRKSRC}/programs/server/config.xml cd ${WRKSRC}/contrib/openldap-cmake && ${LN} -s freebsd_x86_64 freebsd_aarch64 post-install: @${RM} ${STAGEDIR}${PREFIX}/bin/config-processor - @${RM} ${STAGEDIR}${PREFIX}/bin/corrector_utf8 @${RM} -r ${STAGEDIR}${PREFIX}/include/gtest @${RM} ${STAGEDIR}${PREFIX}/lib/libgtest* @${RM} ${STAGEDIR}${PREFIX}/lib/libcxx.a @${RM} ${STAGEDIR}${PREFIX}/lib/libcxxabi.a @${RM} ${STAGEDIR}${PREFIX}/lib/libunwind.a + @${RM} -r ${STAGEDIR}${PREFIX}/lib/debug ${MV} ${STAGEDIR}${PREFIX}/etc/clickhouse-client/config.xml \ ${STAGEDIR}${PREFIX}/etc/clickhouse-client/config.xml.sample ${MV} ${STAGEDIR}${PREFIX}/etc/clickhouse-server/config.xml \ ${STAGEDIR}${PREFIX}/etc/clickhouse-server/config.xml.sample ${MV} ${STAGEDIR}${PREFIX}/etc/clickhouse-server/users.xml \ ${STAGEDIR}${PREFIX}/etc/clickhouse-server/users.xml.sample - @${MKDIR} ${STAGEDIR}/var/db/clickhouse @${MKDIR} ${STAGEDIR}/var/log/clickhouse @${MKDIR} ${STAGEDIR}/var/run/clickhouse @@ -272,4 +116,47 @@ post-install: do-test-TEST-on: cd ${WRKSRC} && ctest -j4 -V -.include <bsd.port.post.mk> +.if defined(MAINTAINER_MODE) +_make-touples: + @set -eu; \ + _REPO=${GH_ACCOUNT}/${GH_PROJECT}; \ + _API="https://api.github.com/repos/$${_REPO}"; \ + _TAG=${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}; \ + _TMPDIR=$$(mktemp -d -t clickhouse-submods); \ + trap 'rm -rf "$${_TMPDIR}"' EXIT INT TERM; \ + _OUTFILE="$$(pwd)/Makefile.submodules"; \ + ${ECHO_CMD} "===> Resolving tag $${_TAG}"; \ + _COMMIT=$$(${FETCH_CMD} -qo - "$${_API}/git/refs/tags/$${_TAG}" \ + | jq -r 'if type=="array" then .[0].object.sha else .object.sha end'); \ + ${ECHO_CMD} "===> Commit: $${_COMMIT}"; \ + ${ECHO_CMD} "===> Fetching contrib tree"; \ + ${FETCH_CMD} -qo - "$${_API}/git/trees/$${_COMMIT}?recursive=1" \ + | jq -r '.tree[] | select(.path|startswith("contrib/")) | select(.type=="commit") | "\(.path) \(.sha)"' \ + > "$${_TMPDIR}/tree.txt"; \ + ${ECHO_CMD} "===> Fetching .gitmodules"; \ + ${FETCH_CMD} -qo "$${_TMPDIR}/.gitmodules" \ + "https://raw.githubusercontent.com/$${_REPO}/$${_TAG}/.gitmodules" 2>/dev/null || true; \ + ${SED} -e 's/\r$$//' "$${_TMPDIR}/.gitmodules" > "$${_TMPDIR}/.gitmodules.lf"; \ + ${AWK} '/^[[:space:]]*path[[:space:]]*=/ { \ + gsub(/^[[:space:]]*path[[:space:]]*=[[:space:]]*/, "", $$0); \ + path=$$0; next } \ + /^[[:space:]]*url[[:space:]]*=/ { \ + gsub(/^[[:space:]]*url[[:space:]]*=[[:space:]]*/, "", $$0); \ + url=$$0; if (path != "" && url != "") print path, url; \ + path=""; url="" }' \ + "$${_TMPDIR}/.gitmodules.lf" > "$${_TMPDIR}/modules.txt"; \ + ${ECHO_CMD} "===> Generating Makefile.gh-touples"; \ + ${AWK} 'NR==FNR { urls[$$1]=$$2; next } \ + { path=$$1; sha=$$2; url=urls[path]; if (url == "") next; \ + n=split(url, parts, "/"); org=parts[n-1]; repo=parts[n]; sub(/\.git$$/, "", repo); \ + org_repl=org; repo_repl=repo; gsub(/[-.]/, "_", org_repl); gsub(/[-.]/, "_", repo_repl); \ + printf("GH_TUPLE+=\t%s:%s:%s:%s_%s/%s\n", \ + org, repo, substr(sha,1,8), org_repl, repo_repl, path); }' \ + "$${_TMPDIR}/modules.txt" "$${_TMPDIR}/tree.txt" > "$${_OUTFILE}"; \ + ${ECHO_CMD} "===> Writing $${_OUTFILE} completed" + ${REINPLACE_CMD} -e 's|unum-cloud:usearch|unum-cloud:USearch|' \ + ${.CURDIR}/Makefile.submodules + ${RM} ${.CURDIR}/Makefile.submodules.bak +.endif + +.include <bsd.port.mk> |
