This is an automated email from the ASF dual-hosted git repository.

zhangstar333 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 4df43e95c39 [chore](thirdparty) introduce thridparty about lance-c 
(#65304)
4df43e95c39 is described below

commit 4df43e95c39c5d844c17723b624f06e1e646f48d
Author: zhangstar333 <[email protected]>
AuthorDate: Fri Jul 17 10:16:40 2026 +0800

    [chore](thirdparty) introduce thridparty about lance-c (#65304)
    
    ### What problem does this PR solve?
    introduce thridparty about lance-c
    https://github.com/lance-format/lance-c
---
 be/cmake/thirdparty.cmake                     |   4 +
 dist/LICENSE-dist.txt                         |   3 +
 dist/licenses/LICENSE-lance-c-rust-crates.txt | 625 ++++++++++++++++++++++++++
 thirdparty/LICENSE.txt                        |  10 +
 thirdparty/build-thirdparty.sh                |  75 ++++
 thirdparty/vars.sh                            |   7 +
 6 files changed, 724 insertions(+)

diff --git a/be/cmake/thirdparty.cmake b/be/cmake/thirdparty.cmake
index f8598d785df..92dffd98da8 100644
--- a/be/cmake/thirdparty.cmake
+++ b/be/cmake/thirdparty.cmake
@@ -110,6 +110,10 @@ add_thirdparty(arrow_flight_sql LIB64)
 add_thirdparty(arrow_dataset LIB64)
 add_thirdparty(arrow_acero LIB64)
 add_thirdparty(parquet LIB64)
+# liblance_c.a contains compiler_builtins cbrt symbols. Place libm before it
+# so the final linker resolves C math symbols from the system library first.
+add_thirdparty(lance_c LIB64 NOTADD)
+list(APPEND COMMON_THIRDPARTY m lance_c)
 add_thirdparty(brpc LIB64)
 add_thirdparty(rocksdb)
 add_thirdparty(cyrus-sasl LIBNAME "lib/libsasl2.a")
diff --git a/dist/LICENSE-dist.txt b/dist/LICENSE-dist.txt
index b0432407456..1b522d2df14 100644
--- a/dist/LICENSE-dist.txt
+++ b/dist/LICENSE-dist.txt
@@ -1476,6 +1476,9 @@ The Apache Software License, Version 2.0
     * opentelemetry-proto: 0.18.0
     * opentelemetry-cpp: 1.4.0
     * clucene: 2.4.6
+    * lance-c: 0.1.2
+        - source: https://github.com/lance-format/lance-c
+        - transitive Rust crate licenses: 
licenses/LICENSE-lance-c-rust-crates.txt
 
 The MIT License -- licenses/LICENSE-MIT.txt
     * datatables: 1.12.1
diff --git a/dist/licenses/LICENSE-lance-c-rust-crates.txt 
b/dist/licenses/LICENSE-lance-c-rust-crates.txt
new file mode 100644
index 00000000000..41052e9b821
--- /dev/null
+++ b/dist/licenses/LICENSE-lance-c-rust-crates.txt
@@ -0,0 +1,625 @@
+Lance-C Rust crate license list
+
+Generated from lance-c v0.1.2 Cargo.lock using:
+cargo +1.91.0 tree --locked --edges normal,build
+
+This list excludes dev/test-only dependency edges. License values are SPDX
+expressions from Cargo package metadata.
+
+(Apache-2.0 OR MIT) AND BSD-3-Clause
+    * encoding_rs: 0.8.35
+
+(MIT OR Apache-2.0) AND Apache-2.0
+    * moka: 0.12.15
+
+(MIT OR Apache-2.0) AND Unicode-3.0
+    * unicode-ident: 1.0.24
+
+0BSD
+    * mock_instant: 0.6.0
+
+0BSD OR MIT OR Apache-2.0
+    * adler2: 2.0.1
+
+Apache-2.0
+    * approx: 0.5.1
+    * arrow: 57.3.0
+    * arrow-arith: 57.3.0
+    * arrow-array: 57.3.0
+    * arrow-buffer: 57.3.0
+    * arrow-cast: 57.3.0
+    * arrow-csv: 57.3.0
+    * arrow-data: 57.3.0
+    * arrow-ipc: 57.3.0
+    * arrow-json: 57.3.0
+    * arrow-ord: 57.3.0
+    * arrow-row: 57.3.0
+    * arrow-schema: 57.3.0
+    * arrow-select: 57.3.0
+    * arrow-string: 57.3.0
+    * aws-config: 1.8.14
+    * aws-credential-types: 1.2.13
+    * aws-runtime: 1.7.1
+    * aws-sdk-sso: 1.95.0
+    * aws-sdk-ssooidc: 1.97.0
+    * aws-sdk-sts: 1.99.0
+    * aws-sigv4: 1.4.1
+    * aws-smithy-async: 1.2.13
+    * aws-smithy-http: 0.63.5
+    * aws-smithy-http-client: 1.1.11
+    * aws-smithy-json: 0.62.4
+    * aws-smithy-observability: 0.2.5
+    * aws-smithy-query: 0.60.14
+    * aws-smithy-runtime: 1.10.2
+    * aws-smithy-runtime-api: 1.11.5
+    * aws-smithy-types: 1.4.5
+    * aws-smithy-xml: 0.60.14
+    * aws-types: 1.3.13
+    * backon: 1.6.0
+    * datafusion: 52.4.0
+    * datafusion-catalog: 52.4.0
+    * datafusion-catalog-listing: 52.4.0
+    * datafusion-common: 52.4.0
+    * datafusion-common-runtime: 52.4.0
+    * datafusion-datasource: 52.4.0
+    * datafusion-datasource-arrow: 52.4.0
+    * datafusion-datasource-csv: 52.4.0
+    * datafusion-datasource-json: 52.4.0
+    * datafusion-datasource-parquet: 52.4.0
+    * datafusion-doc: 52.4.0
+    * datafusion-execution: 52.4.0
+    * datafusion-expr: 52.4.0
+    * datafusion-expr-common: 52.4.0
+    * datafusion-functions: 52.4.0
+    * datafusion-functions-aggregate: 52.4.0
+    * datafusion-functions-aggregate-common: 52.4.0
+    * datafusion-functions-nested: 52.4.0
+    * datafusion-functions-table: 52.4.0
+    * datafusion-functions-window: 52.4.0
+    * datafusion-functions-window-common: 52.4.0
+    * datafusion-macros: 52.4.0
+    * datafusion-optimizer: 52.4.0
+    * datafusion-physical-expr: 52.4.0
+    * datafusion-physical-expr-adapter: 52.4.0
+    * datafusion-physical-expr-common: 52.4.0
+    * datafusion-physical-optimizer: 52.4.0
+    * datafusion-physical-plan: 52.4.0
+    * datafusion-pruning: 52.4.0
+    * datafusion-session: 52.4.0
+    * datafusion-sql: 52.4.0
+    * datafusion-substrait: 52.4.0
+    * flatbuffers: 25.12.19
+    * fsst: 4.0.1
+    * jsonb: 0.5.5
+    * lance: 4.0.1
+    * lance-arrow: 4.0.1
+    * lance-bitpacking: 4.0.1
+    * lance-c: 0.1.2
+    * lance-core: 4.0.1
+    * lance-datafusion: 4.0.1
+    * lance-datagen: 4.0.1
+    * lance-encoding: 4.0.1
+    * lance-file: 4.0.1
+    * lance-geo: 4.0.1
+    * lance-index: 4.0.1
+    * lance-io: 4.0.1
+    * lance-linalg: 4.0.1
+    * lance-namespace: 4.0.1
+    * lance-namespace-reqwest-client: 0.6.1
+    * lance-table: 4.0.1
+    * object_store_opendal: 0.55.0
+    * opendal: 0.55.0
+    * parquet: 57.3.0
+    * prost: 0.14.3
+    * prost-build: 0.14.3
+    * prost-derive: 0.14.3
+    * prost-types: 0.14.3
+    * reqsign: 0.16.5
+    * serde_tokenstream: 0.2.3
+    * sketches-ddsketch: 0.3.1
+    * sqlparser: 0.59.0
+    * sqlparser_derive: 0.3.0
+    * substrait: 0.62.2
+    * sync_wrapper: 1.0.2
+    * thrift: 0.17.0
+    * typify: 0.5.0
+    * typify-impl: 0.5.0
+    * typify-macro: 0.5.0
+
+Apache-2.0 / MIT
+    * fnv: 1.0.7
+
+Apache-2.0 / MIT / MPL-2.0
+    * htmlescape: 0.3.1
+
+Apache-2.0 AND ISC
+    * ring: 0.17.14
+
+Apache-2.0 OR BSL-1.0
+    * ryu: 1.0.23
+
+Apache-2.0 OR ISC OR MIT
+    * hyper-rustls: 0.27.7
+    * rustls: 0.23.37
+    * rustls-native-certs: 0.8.3
+    * rustls-pemfile: 2.2.0
+
+Apache-2.0 OR MIT
+    * async-channel: 2.5.0
+    * async-lock: 3.4.2
+    * atomic-waker: 1.1.2
+    * autocfg: 1.5.0
+    * base64ct: 1.8.3
+    * concurrent-queue: 2.5.0
+    * const-oid: 0.9.6
+    * der: 0.7.10
+    * equivalent: 1.0.2
+    * event-listener: 5.4.1
+    * event-listener-strategy: 0.5.4
+    * fastrand: 2.3.0
+    * idna_adapter: 1.2.1
+    * indexmap: 2.13.0
+    * parking: 2.2.1
+    * pem-rfc7468: 0.7.0
+    * pin-project: 1.1.11
+    * pin-project-internal: 1.1.11
+    * pin-project-lite: 0.2.17
+    * pkcs1: 0.7.5
+    * pkcs5: 0.7.1
+    * pkcs8: 0.10.2
+    * portable-atomic: 1.13.1
+    * rustc-hash: 2.1.1
+    * signature: 2.2.0
+    * spki: 0.7.3
+    * utf8_iter: 1.0.4
+    * uuid: 1.22.0
+    * zeroize: 1.8.2
+
+Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
+    * linux-raw-sys: 0.12.1
+    * linux-raw-sys: 0.4.15
+    * rustix: 0.38.44
+    * rustix: 1.1.4
+
+Apache-2.0/MIT
+    * bytes-utils: 0.1.4
+    * crc32c: 0.6.8
+    * permutation: 0.4.1
+
+BSD-2-Clause
+    * arrayref: 0.3.9
+
+BSD-2-Clause OR Apache-2.0 OR MIT
+    * zerocopy: 0.8.47
+    * zerocopy-derive: 0.8.47
+
+BSD-3-Clause
+    * alloc-no-stdlib: 2.0.4
+    * alloc-stdlib: 0.2.2
+    * snap: 1.1.1
+    * subtle: 2.6.1
+
+BSD-3-Clause AND MIT
+    * brotli: 8.0.2
+
+BSD-3-Clause OR MIT OR Apache-2.0
+    * num_enum: 0.7.6
+    * num_enum_derive: 0.7.6
+
+BSD-3-Clause/MIT
+    * brotli-decompressor: 5.0.0
+
+BSL-1.0
+    * xxhash-rust: 0.8.15
+
+CC0-1.0
+    * tiny-keccak: 2.0.2
+
+CC0-1.0 OR Apache-2.0 OR Apache-2.0 WITH LLVM-exception
+    * blake3: 1.8.3
+
+CC0-1.0 OR MIT-0 OR Apache-2.0
+    * constant_time_eq: 0.4.2
+    * dunce: 1.0.5
+
+CDLA-Permissive-2.0
+    * webpki-roots: 1.0.6
+
+ISC
+    * earcutr: 0.4.3
+    * rustls-webpki: 0.103.10
+    * simple_asn1: 0.6.4
+    * untrusted: 0.9.0
+
+ISC AND (Apache-2.0 OR ISC)
+    * aws-lc-rs: 1.16.2
+
+ISC AND (Apache-2.0 OR ISC) AND Apache-2.0 AND MIT AND BSD-3-Clause AND 
(Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 OR ISC OR MIT-0)
+    * aws-lc-sys: 0.39.0
+
+MIT
+    * async_cell: 0.2.3
+    * atoi: 2.0.0
+    * base64-simd: 0.8.0
+    * bitpacking: 0.9.3
+    * bitvec: 1.0.1
+    * bytes: 1.11.1
+    * census: 0.4.2
+    * comfy-table: 7.2.2
+    * crunchy: 0.2.4
+    * darling: 0.23.0
+    * darling_core: 0.23.0
+    * darling_macro: 0.23.0
+    * dashmap: 6.1.0
+    * deepsize: 0.2.0
+    * deepsize_derive: 0.1.2
+    * float_next_after: 1.0.0
+    * fs_extra: 1.3.0
+    * funty: 2.0.0
+    * generic-array: 0.14.7
+    * geographiclib-rs: 0.2.7
+    * h2: 0.4.13
+    * http-body: 0.4.6
+    * http-body: 1.0.1
+    * http-body-util: 0.1.3
+    * hyper: 1.8.1
+    * hyper-util: 0.1.20
+    * hyperloglogplus: 0.4.1
+    * i_float: 1.15.0
+    * i_key_sort: 0.6.0
+    * i_overlay: 4.0.7
+    * i_shape: 1.14.0
+    * i_tree: 0.16.0
+    * integer-encoding: 3.0.4
+    * jsonwebtoken: 9.3.1
+    * levenshtein_automata: 0.2.1
+    * libm: 0.2.16
+    * lru: 0.12.5
+    * lz4: 1.28.1
+    * lz4-sys: 1.11.1+lz4-1.10.0
+    * lz4_flex: 0.11.6
+    * lz4_flex: 0.12.1
+    * measure_time: 0.9.0
+    * mime_guess: 2.0.5
+    * mio: 1.1.1
+    * murmurhash32: 0.3.1
+    * nom: 7.1.3
+    * nom: 8.0.0
+    * ordered-float: 2.10.1
+    * ordered-float: 5.1.0
+    * ordered-multimap: 0.7.3
+    * outref: 0.5.2
+    * ownedbytes: 0.9.0
+    * pbjson: 0.8.0
+    * pbjson-build: 0.8.0
+    * pbjson-types: 0.8.0
+    * pem: 3.0.6
+    * phf: 0.12.1
+    * phf_shared: 0.12.1
+    * quick-xml: 0.37.5
+    * quick-xml: 0.38.4
+    * radium: 0.7.0
+    * random_word: 0.5.2
+    * rust-ini: 0.21.3
+    * schemars: 0.8.22
+    * schemars_derive: 0.8.22
+    * simd-adler32: 0.3.8
+    * slab: 0.4.12
+    * spin: 0.9.8
+    * std_prelude: 0.2.12
+    * strsim: 0.11.1
+    * strum: 0.26.3
+    * strum_macros: 0.26.4
+    * synstructure: 0.13.2
+    * tantivy: 0.24.2
+    * tantivy-bitpacker: 0.8.0
+    * tantivy-columnar: 0.5.0
+    * tantivy-common: 0.9.0
+    * tantivy-query-grammar: 0.24.0
+    * tantivy-sstable: 0.5.0
+    * tantivy-stacker: 0.5.0
+    * tantivy-tokenizer-api: 0.5.0
+    * tap: 1.0.1
+    * tokio: 1.50.0
+    * tokio-macros: 2.6.1
+    * tokio-stream: 0.1.18
+    * tokio-util: 0.7.18
+    * tower: 0.5.3
+    * tower-http: 0.6.8
+    * tower-layer: 0.3.3
+    * tower-service: 0.3.3
+    * tracing: 0.1.44
+    * tracing-attributes: 0.1.31
+    * tracing-core: 0.1.36
+    * try-lock: 0.2.5
+    * twox-hash: 2.1.2
+    * unsafe-libyaml: 0.2.11
+    * urlencoding: 2.1.3
+    * vsimd: 0.8.0
+    * want: 0.3.1
+    * winnow: 1.0.0
+    * wyz: 0.5.1
+    * zmij: 1.0.21
+    * zstd: 0.13.3
+
+MIT OR Apache-2.0
+    * aes: 0.8.4
+    * ahash: 0.8.12
+    * allocator-api2: 0.2.21
+    * anyhow: 1.0.102
+    * arc-swap: 1.9.0
+    * arrayvec: 0.7.6
+    * async-compression: 0.4.41
+    * async-recursion: 1.1.1
+    * async-trait: 0.1.89
+    * base64: 0.22.1
+    * bitflags: 2.11.0
+    * blake2: 0.10.6
+    * block-buffer: 0.10.4
+    * block-padding: 0.3.3
+    * bon: 3.9.1
+    * bon-macros: 3.9.1
+    * cbc: 0.1.2
+    * cc: 1.2.57
+    * cfg-if: 1.0.4
+    * chrono: 0.4.44
+    * chrono-tz: 0.10.4
+    * cipher: 0.4.4
+    * cmake: 0.1.57
+    * compression-codecs: 0.4.37
+    * compression-core: 0.4.31
+    * const-random: 0.1.18
+    * const-random-macro: 0.1.16
+    * cpufeatures: 0.2.17
+    * crc32fast: 1.5.0
+    * crossbeam-channel: 0.5.15
+    * crossbeam-deque: 0.8.6
+    * crossbeam-epoch: 0.9.18
+    * crossbeam-queue: 0.3.12
+    * crossbeam-skiplist: 0.1.3
+    * crossbeam-utils: 0.8.21
+    * crypto-common: 0.1.7
+    * deranged: 0.5.8
+    * digest: 0.10.7
+    * dirs: 6.0.0
+    * dirs-sys: 0.5.0
+    * displaydoc: 0.2.5
+    * dlv-list: 0.5.2
+    * downcast-rs: 2.0.2
+    * dyn-clone: 1.0.20
+    * either: 1.15.0
+    * errno: 0.3.14
+    * ethnum: 1.5.2
+    * fast-float2: 0.2.3
+    * find-msvc-tools: 0.1.9
+    * fixedbitset: 0.5.7
+    * flate2: 1.1.9
+    * form_urlencoded: 1.2.2
+    * fs4: 0.8.4
+    * futures: 0.3.32
+    * futures-channel: 0.3.32
+    * futures-core: 0.3.32
+    * futures-executor: 0.3.32
+    * futures-io: 0.3.32
+    * futures-macro: 0.3.32
+    * futures-sink: 0.3.32
+    * futures-task: 0.3.32
+    * futures-util: 0.3.32
+    * geo: 0.31.0
+    * geo-traits: 0.3.0
+    * geo-types: 0.7.18
+    * geoarrow-array: 0.7.0
+    * geoarrow-expr-geo: 0.7.0
+    * geoarrow-schema: 0.7.0
+    * geodatafusion: 0.3.0
+    * getrandom: 0.2.17
+    * getrandom: 0.3.4
+    * getrandom: 0.4.2
+    * glob: 0.3.3
+    * half: 2.7.1
+    * hash32: 0.3.1
+    * hashbrown: 0.14.5
+    * hashbrown: 0.15.5
+    * hashbrown: 0.16.1
+    * heapless: 0.8.0
+    * heck: 0.5.0
+    * hex: 0.4.3
+    * hmac: 0.12.1
+    * home: 0.5.12
+    * http: 0.2.12
+    * http: 1.4.0
+    * httparse: 1.10.1
+    * humantime: 2.3.0
+    * iana-time-zone: 0.1.65
+    * idna: 1.1.0
+    * inout: 0.1.4
+    * ipnet: 2.12.0
+    * iri-string: 0.7.11
+    * itertools: 0.11.0
+    * itertools: 0.13.0
+    * itertools: 0.14.0
+    * itoa: 1.0.18
+    * jobserver: 0.1.34
+    * lazy_static: 1.5.0
+    * libc: 0.2.183
+    * lock_api: 0.4.14
+    * log: 0.4.29
+    * md-5: 0.10.6
+    * memmap2: 0.9.10
+    * mime: 0.3.17
+    * multimap: 0.10.1
+    * ndarray: 0.16.1
+    * num-bigint: 0.4.6
+    * num-complex: 0.4.6
+    * num-conv: 0.2.0
+    * num-integer: 0.1.46
+    * num-iter: 0.1.45
+    * num-traits: 0.2.19
+    * num_cpus: 1.17.0
+    * once_cell: 1.21.4
+    * oneshot: 0.1.13
+    * openssl-probe: 0.2.1
+    * parking_lot: 0.12.5
+    * parking_lot_core: 0.9.12
+    * paste: 1.0.15
+    * path_abs: 0.5.1
+    * pbkdf2: 0.12.2
+    * percent-encoding: 2.3.2
+    * petgraph: 0.8.3
+    * pin-utils: 0.1.0
+    * pkg-config: 0.3.32
+    * powerfmt: 0.2.0
+    * ppv-lite86: 0.2.21
+    * prettyplease: 0.2.37
+    * proc-macro-crate: 3.5.0
+    * proc-macro2: 1.0.106
+    * quote: 1.0.45
+    * rand: 0.8.5
+    * rand: 0.9.2
+    * rand_chacha: 0.3.1
+    * rand_chacha: 0.9.0
+    * rand_core: 0.6.4
+    * rand_core: 0.9.5
+    * rand_distr: 0.4.3
+    * rand_distr: 0.5.1
+    * rand_xoshiro: 0.7.0
+    * rayon: 1.11.0
+    * rayon-core: 1.13.0
+    * regex: 1.12.3
+    * regex-automata: 0.4.14
+    * regex-lite: 0.1.9
+    * regex-syntax: 0.8.10
+    * regress: 0.10.5
+    * reqwest: 0.12.28
+    * roaring: 0.11.3
+    * robust: 1.2.0
+    * rsa: 0.9.10
+    * rstar: 0.12.2
+    * rustc_version: 0.4.1
+    * rustls-pki-types: 1.14.0
+    * rustversion: 1.0.22
+    * salsa20: 0.10.2
+    * scopeguard: 1.2.0
+    * scrypt: 0.11.0
+    * semver: 1.0.27
+    * seq-macro: 0.3.6
+    * serde: 1.0.228
+    * serde_core: 1.0.228
+    * serde_derive: 1.0.228
+    * serde_derive_internals: 0.29.1
+    * serde_json: 1.0.149
+    * serde_repr: 0.1.20
+    * serde_yaml: 0.9.34+deprecated
+    * sha1: 0.10.6
+    * sha2: 0.10.9
+    * shlex: 1.3.0
+    * signal-hook-registry: 1.4.8
+    * simdutf8: 0.1.5
+    * smallvec: 1.15.1
+    * snafu: 0.9.0
+    * snafu-derive: 0.9.0
+    * socket2: 0.6.3
+    * spade: 2.15.0
+    * stable_deref_trait: 1.2.1
+    * stfu8: 0.2.7
+    * syn: 1.0.109
+    * syn: 2.0.117
+    * tempfile: 3.27.0
+    * thiserror: 1.0.69
+    * thiserror: 2.0.18
+    * thiserror-impl: 1.0.69
+    * thiserror-impl: 2.0.18
+    * thread-tree: 0.3.3
+    * time: 0.3.47
+    * time-core: 0.1.8
+    * time-macros: 0.2.27
+    * tokio-rustls: 0.26.4
+    * toml_datetime: 1.1.0+spec-1.1.0
+    * toml_edit: 0.25.8+spec-1.1.0
+    * toml_parser: 1.1.0+spec-1.1.0
+    * typenum: 1.19.0
+    * unicase: 2.9.0
+    * unicode-segmentation: 1.13.0
+    * unicode-width: 0.2.2
+    * url: 2.5.8
+    * wkb: 0.9.2
+    * wkt: 0.14.0
+    * zstd-safe: 7.2.4
+
+MIT OR Zlib OR Apache-2.0
+    * miniz_oxide: 0.8.9
+
+MIT/Apache-2.0
+    * bigdecimal: 0.4.10
+    * geohash: 0.13.1
+    * ident_case: 1.0.1
+    * lexical-core: 1.0.6
+    * lexical-parse-float: 1.0.6
+    * lexical-parse-integer: 1.0.6
+    * lexical-util: 1.0.7
+    * lexical-write-float: 1.0.6
+    * lexical-write-integer: 1.0.6
+    * matrixmultiply: 0.3.10
+    * minimal-lexical: 0.2.1
+    * num-bigint-dig: 0.8.6
+    * object_store: 0.12.5
+    * rangemap: 1.7.1
+    * rawpointer: 0.2.1
+    * serde_urlencoded: 0.7.1
+    * siphasher: 1.0.2
+    * tagptr: 0.2.0
+    * version_check: 0.9.5
+    * xmlparser: 0.13.6
+    * zstd-sys: 2.0.16+zstd.1.5.7
+
+MIT/BSD-3-Clause
+    * rust-stemmers: 1.2.0
+
+MPL-2.0
+    * option-ext: 0.2.0
+
+Unicode-3.0
+    * icu_collections: 2.1.1
+    * icu_locale_core: 2.1.1
+    * icu_normalizer: 2.1.1
+    * icu_normalizer_data: 2.1.1
+    * icu_properties: 2.1.2
+    * icu_properties_data: 2.1.2
+    * icu_provider: 2.1.1
+    * litemap: 0.8.1
+    * potential_utf: 0.1.4
+    * tinystr: 0.8.2
+    * writeable: 0.6.2
+    * yoke: 0.8.1
+    * yoke-derive: 0.8.1
+    * zerofrom: 0.1.6
+    * zerofrom-derive: 0.1.6
+    * zerotrie: 0.2.3
+    * zerovec: 0.11.5
+    * zerovec-derive: 0.11.2
+
+Unlicense OR MIT
+    * aho-corasick: 1.1.4
+    * byteorder: 1.5.0
+    * jiff: 0.2.23
+    * memchr: 2.8.0
+
+Unlicense/MIT
+    * csv: 1.4.0
+    * csv-core: 0.1.13
+    * fst: 0.4.7
+    * same-file: 1.0.6
+    * tantivy-fst: 0.5.0
+    * utf8-ranges: 1.0.5
+    * walkdir: 2.5.0
+
+Zlib
+    * foldhash: 0.1.5
+    * foldhash: 0.2.0
+    * zlib-rs: 0.6.3
+
+Zlib OR Apache-2.0 OR MIT
+    * bytemuck: 1.25.0
+
+zlib-acknowledgement OR MIT
+    * fastdivide: 0.4.2
diff --git a/thirdparty/LICENSE.txt b/thirdparty/LICENSE.txt
index 7db23714ed1..1c29d4f1a8a 100644
--- a/thirdparty/LICENSE.txt
+++ b/thirdparty/LICENSE.txt
@@ -43,6 +43,16 @@ Apache 2.0 License (found in the LICENSE.Apache file in the 
root directory)
 
 Doris selects Apache 2.0 License of RocksDB.
 
+============================================================================================
+Lance-C
+source: https://github.com/lance-format/lance-c
+
+Lance-C is licensed under Apache License Version 2.0.
+
+The static library is built from Rust crates. The transitive Rust crate license
+list for normal/build dependencies is maintained in
+`dist/licenses/LICENSE-lance-c-rust-crates.txt`.
+
 
============================================================================================
 LZO
 source: https://github.com/nemequ/lzo
diff --git a/thirdparty/build-thirdparty.sh b/thirdparty/build-thirdparty.sh
index 180333d150f..e6126df77cc 100755
--- a/thirdparty/build-thirdparty.sh
+++ b/thirdparty/build-thirdparty.sh
@@ -2126,6 +2126,79 @@ build_paimon_cpp() {
     echo "Paimon-cpp internal dependencies installed successfully"
 }
 
+# lance-c
+build_lance_c() {
+    check_if_source_exist "${LANCE_C_SOURCE}"
+    cd "${TP_SOURCE_DIR}/${LANCE_C_SOURCE}"
+
+    rm -rf "${BUILD_DIR}"
+    mkdir -p "${BUILD_DIR}"
+
+    local cargo_bin="${LANCE_C_CARGO:-${CARGO:-cargo}}"
+    if ! command -v "${cargo_bin}" >/dev/null 2>&1; then
+        echo "cargo is required to build lance-c. Install Rust 1.91.0 or set 
LANCE_C_CARGO."
+        exit 1
+    fi
+    if [[ ! -x "${TP_INSTALL_DIR}/bin/protoc" ]]; then
+        echo "protoc is required to build lance-c. Build protobuf first."
+        exit 1
+    fi
+
+    local cargo_env=(
+        "CARGO_BUILD_JOBS=${PARALLEL}"
+        "CARGO_TARGET_DIR=${PWD}/${BUILD_DIR}"
+        "PROTOC=${TP_INSTALL_DIR}/bin/protoc"
+    )
+    if command -v rustup >/dev/null 2>&1 && [[ -z "${RUSTUP_TOOLCHAIN}" ]]; 
then
+        if rustup toolchain list | grep -q '^1.91.0'; then
+            cargo_env+=("RUSTUP_TOOLCHAIN=1.91.0")
+        fi
+    fi
+
+    local required_rust_version="1.91.0"
+    local cargo_version
+    if ! cargo_version="$(env "${cargo_env[@]}" "${cargo_bin}" --version | awk 
'{print $2}')"; then
+        echo "failed to get cargo version for lance-c. Install Rust 
${required_rust_version} or set LANCE_C_CARGO/RUSTUP_TOOLCHAIN."
+        exit 1
+    fi
+    if ! awk -v required="${required_rust_version}" -v 
actual="${cargo_version}" 'BEGIN {
+            split(required, r, ".");
+            split(actual, a, ".");
+            for (i = 1; i <= 3; i++) {
+                if ((a[i] + 0) > (r[i] + 0)) {
+                    exit 0;
+                }
+                if ((a[i] + 0) < (r[i] + 0)) {
+                    exit 1;
+                }
+            }
+            exit 0;
+        }'; then
+        echo "lance-c requires Rust/Cargo ${required_rust_version} or newer, 
but found ${cargo_version}."
+        echo "Install Rust ${required_rust_version} or set 
LANCE_C_CARGO/RUSTUP_TOOLCHAIN."
+        exit 1
+    fi
+
+    if [[ "${KERNEL}" != 'Darwin' ]]; then
+        cargo_env+=("CFLAGS=${CFLAGS:-} -std=gnu17")
+    fi
+
+    local cargo_args=(build --release --locked)
+    if [[ "$(echo "${LANCE_C_CARGO_OFFLINE}" | tr '[:lower:]' '[:upper:]')" == 
"ON" ]]; then
+        cargo_args+=(--offline)
+    fi
+    env "${cargo_env[@]}" "${cargo_bin}" "${cargo_args[@]}"
+
+    mkdir -p "${TP_INSTALL_DIR}/include" "${TP_INSTALL_DIR}/lib64"
+    rm -rf "${TP_INSTALL_DIR}/include/lance"
+    cp -av include/lance "${TP_INSTALL_DIR}/include/"
+    cp -v "${BUILD_DIR}/release/liblance_c.a" "${TP_INSTALL_DIR}/lib64/"
+
+    if [[ "${STRIP_TP_LIB}" = "ON" && "${KERNEL}" != 'Darwin' ]]; then
+        strip --strip-debug --strip-unneeded 
"${TP_INSTALL_DIR}/lib64/liblance_c.a"
+    fi
+}
+
 if [[ "${#packages[@]}" -eq 0 ]]; then
     packages=(
         jindofs
@@ -2166,6 +2239,7 @@ if [[ "${#packages[@]}" -eq 0 ]]; then
         cares
         grpc # after cares, protobuf
         arrow
+        lance_c
         s2
         bitshuffle
         croaringbitmap
@@ -2300,6 +2374,7 @@ cleanup_package_source() {
         juicefs)         src_var="JUICEFS_SOURCE" ;;
         pugixml)         src_var="PUGIXML_SOURCE" ;;
         paimon_cpp)      src_var="PAIMON_CPP_SOURCE" ;;
+        lance_c)         src_var="LANCE_C_SOURCE" ;;
         aws_sdk)         src_var="AWS_SDK_SOURCE" ;;
         lzma)            src_var="LZMA_SOURCE" ;;
         xml2)            src_var="XML2_SOURCE" ;;
diff --git a/thirdparty/vars.sh b/thirdparty/vars.sh
index af46e566b8a..f8d18a3a2be 100644
--- a/thirdparty/vars.sh
+++ b/thirdparty/vars.sh
@@ -573,6 +573,12 @@ PAIMON_CPP_NAME="paimon-cpp-0a4f4e2.tar.gz"
 PAIMON_CPP_SOURCE="doris-thirdparty-paimon-cpp-0a4f4e2"
 PAIMON_CPP_MD5SUM="b8599a0421dbf1ec05e2f1a481d64e87"
 
+# lance-c
+LANCE_C_DOWNLOAD="https://github.com/lance-format/lance-c/archive/refs/tags/v0.1.2.tar.gz";
+LANCE_C_NAME="lance-c-v0.1.2.tar.gz"
+LANCE_C_SOURCE="lance-c-0.1.2"
+LANCE_C_MD5SUM="eb6ec9bc63fa5245864282f24b521d0b"
+
 # all thirdparties which need to be downloaded is set in array TP_ARCHIVES
 export TP_ARCHIVES=(
     'LIBEVENT'
@@ -658,6 +664,7 @@ export TP_ARCHIVES=(
     'JUICEFS'
     'PUGIXML'
     'PAIMON_CPP'
+    'LANCE_C'
 )
 
 if [[ "$(uname -s)" == 'Darwin' ]]; then


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to