From b4e2ab471e8267d0bb4c2a831d3d71bd30d146a7 Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Sun, 25 Jan 2026 14:19:57 -0600 Subject: [PATCH 01/31] Starting changes --- cpp/src/parquet/meson.build | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/cpp/src/parquet/meson.build b/cpp/src/parquet/meson.build index e6ff43a0baee..fe10f650aedf 100644 --- a/cpp/src/parquet/meson.build +++ b/cpp/src/parquet/meson.build @@ -99,8 +99,15 @@ if openssl_dep.found() parquet_deps += openssl_dep parquet_srcs += files( + 'encryption/aes_encryption.cc', 'encryption/crypto_factory.cc', - 'encryption/encryption_internal.cc', + 'encryption/encoding_properties', + 'encryption/encryption_utils.cc', + 'encryption/external_dbpa_encryption.cc', + 'encryption/external/dbpa_library_wrapper', + 'encryption/external/dbpa_enum_utils', + 'encryption/external/dbpa_executor', + 'encryption/external/loadable_encryptor_utils', 'encryption/file_key_unwrapper.cc', 'encryption/file_key_wrapper.cc', 'encryption/file_system_key_material_store.cc', @@ -113,7 +120,7 @@ if openssl_dep.found() 'encryption/openssl_internal.cc', ) else - parquet_srcs += files('encryption/encryption_internal_nossl.cc') + parquet_srcs += files('encryption/aes_encryption_nossl.cc') endif parquet_lib = library( From 16161499ada0d65806fdc7acd9c34eddd33c8537 Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Mon, 26 Jan 2026 18:20:49 -0600 Subject: [PATCH 02/31] First attempt at adding new external encryption to meson.build --- cpp/src/parquet/meson.build | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/cpp/src/parquet/meson.build b/cpp/src/parquet/meson.build index fe10f650aedf..c66fcc7034e9 100644 --- a/cpp/src/parquet/meson.build +++ b/cpp/src/parquet/meson.build @@ -223,6 +223,7 @@ parquet_tests = { 'writer-test': { 'sources': files( 'column_writer_test.cc', + 'encryption/external/test_utils.cc', 'file_serialize_test.cc', 'stream_writer_test.cc', ), @@ -255,7 +256,12 @@ if needs_parquet_encryption parquet_tests += { 'encryption-test': { 'sources': files( - 'encryption/encryption_internal_test.cc', + 'encryption/aes_encryption_test.cc', + 'encryption/crypto_factory_test.cc', + 'encryption/encoding_properties_test.cc', + 'encryption/external_dbpa_encryption_test.cc', + 'encryption/external/test_utils.cc', + 'encryption/per_column_encryption_test.cc', 'encryption/properties_test.cc', 'encryption/read_configurations_test.cc', 'encryption/test_encryption_util.cc', From ed7bd5c0d12b377f609f12cdf73bc3d33e78a662 Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Mon, 26 Jan 2026 18:26:48 -0600 Subject: [PATCH 03/31] Fixing typo --- cpp/src/parquet/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/src/parquet/meson.build b/cpp/src/parquet/meson.build index c66fcc7034e9..f92b20bd14fd 100644 --- a/cpp/src/parquet/meson.build +++ b/cpp/src/parquet/meson.build @@ -101,7 +101,7 @@ if openssl_dep.found() parquet_srcs += files( 'encryption/aes_encryption.cc', 'encryption/crypto_factory.cc', - 'encryption/encoding_properties', + 'encryption/encoding_properties.cc', 'encryption/encryption_utils.cc', 'encryption/external_dbpa_encryption.cc', 'encryption/external/dbpa_library_wrapper', From 6a03dfa8de0899f64bee31ba92eb95ede02bc351 Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Mon, 26 Jan 2026 18:32:19 -0600 Subject: [PATCH 04/31] Fixing typo --- cpp/src/parquet/meson.build | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cpp/src/parquet/meson.build b/cpp/src/parquet/meson.build index f92b20bd14fd..1629dd305fab 100644 --- a/cpp/src/parquet/meson.build +++ b/cpp/src/parquet/meson.build @@ -104,10 +104,10 @@ if openssl_dep.found() 'encryption/encoding_properties.cc', 'encryption/encryption_utils.cc', 'encryption/external_dbpa_encryption.cc', - 'encryption/external/dbpa_library_wrapper', - 'encryption/external/dbpa_enum_utils', - 'encryption/external/dbpa_executor', - 'encryption/external/loadable_encryptor_utils', + 'encryption/external/dbpa_library_wrapper.cc', + 'encryption/external/dbpa_enum_utils.cc', + 'encryption/external/dbpa_executor.cc', + 'encryption/external/loadable_encryptor_utils.cc', 'encryption/file_key_unwrapper.cc', 'encryption/file_key_wrapper.cc', 'encryption/file_system_key_material_store.cc', From 1352123a1428f79a1a291f02d360156fc6293245 Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Mon, 26 Jan 2026 19:08:44 -0600 Subject: [PATCH 05/31] Fixing typo --- cpp/src/parquet/meson.build | 40 +++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/cpp/src/parquet/meson.build b/cpp/src/parquet/meson.build index 1629dd305fab..35e5ac7aba82 100644 --- a/cpp/src/parquet/meson.build +++ b/cpp/src/parquet/meson.build @@ -123,6 +123,46 @@ else parquet_srcs += files('encryption/aes_encryption_nossl.cc') endif +if needs_parquet_encryption or get_option('parquet_require_encryption').auto() + dbps_source_dir = meson.project_source_root() / 'subprojects' / 'dbps_agent' + dbps_interface_dep = declare_dependency( + include_directories: include_directories( + dbps_source_dir / 'src' / 'common' + ) + ) + + parquet_build_dbps_libs = get_option('parquet_build_dbps_libs') + + if parquet_build_dbps_libs.allowed() + cmake = import('cmake') + dbps_opts = cmake.subproject_options() + + build_type = get_option('build_type') + if build_type == 'plain' + build_type = 'Release' + elif build_type == 'debug' + build_type = 'Debug' + endif + + build_output_dir = meson.current_build_dir() + + dbps_opts.add_cmake_defines( + { + 'CMAKE_BUILD_TYPE': build_type, + 'BUILD_SHARED_LIBS': 'ON', + 'BUILD_TESTING': 'OFF', + 'CMAKE_LIBRARY_OUTPUT_DIRECTORY': build_output_dir, + 'CMAKE_RUNTIME_OUTPUT_DIRECTORY': build_output_dir, + 'CMAKE_ARCHIVE_OUTPUT_DIRECTORY': build_output_dir, + } + ) + + dbps_proj = cmake.subproject('dbps_agent', options: dbps_opts) + endif + + parquet_deps += dbps_interface_dep +endif + parquet_lib = library( 'arrow-parquet', sources: parquet_srcs, From 8831d0a0ef6ee898fe2583deaf9116e2fcd48147 Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Mon, 26 Jan 2026 19:09:58 -0600 Subject: [PATCH 06/31] Adding dbps external project --- cpp/meson.options | 6 ++++++ cpp/subprojects/dbps_agent.wrap | 23 +++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 cpp/subprojects/dbps_agent.wrap diff --git a/cpp/meson.options b/cpp/meson.options index 668f440ee72a..af7dff7bde96 100644 --- a/cpp/meson.options +++ b/cpp/meson.options @@ -90,6 +90,12 @@ option( description: 'Arbitrary string that identifies the kind of package (for informational purposes)', ) option('parquet', type: 'feature', description: 'Build the Parquet libraries') +option( + 'parquet_build_dbps_libs', + type: 'feature', + value: 'enabled', + description: 'Build DBPS external libraries' +) option( 'parquet_build_executables', type: 'feature', diff --git a/cpp/subprojects/dbps_agent.wrap b/cpp/subprojects/dbps_agent.wrap new file mode 100644 index 000000000000..232444cbf67d --- /dev/null +++ b/cpp/subprojects/dbps_agent.wrap @@ -0,0 +1,23 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +[wrap-git] +url = https://github.com/protegrity/DataBatchProtectionService.git +# TODO: Change to a specific tag/commit when we have one. +# https://github.com/protegrity/arrow/issues/179 +revision = 6206fb0e27556a0df9160364caa3819e4af3fe0f +depth = 1 From 7244f0ab2cd450ff88f5f0ad082aec6904b27280 Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Mon, 26 Jan 2026 19:18:13 -0600 Subject: [PATCH 07/31] Fix path --- cpp/src/parquet/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/src/parquet/meson.build b/cpp/src/parquet/meson.build index 35e5ac7aba82..62e278f898c2 100644 --- a/cpp/src/parquet/meson.build +++ b/cpp/src/parquet/meson.build @@ -127,7 +127,7 @@ if needs_parquet_encryption or get_option('parquet_require_encryption').auto() dbps_source_dir = meson.project_source_root() / 'subprojects' / 'dbps_agent' dbps_interface_dep = declare_dependency( include_directories: include_directories( - dbps_source_dir / 'src' / 'common' + '../../subprojects/dbps_agent/src/common' ) ) From 7541f161eae10bf5b56c4890071198dfc8895882 Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Mon, 26 Jan 2026 19:44:34 -0600 Subject: [PATCH 08/31] Restructuring subproject --- cpp/src/parquet/meson.build | 7 +++--- cpp/subprojects/dbps_agent.wrap | 3 +++ .../packagefiles/dbps_agent/meson.build | 24 +++++++++++++++++++ 3 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 cpp/subprojects/packagefiles/dbps_agent/meson.build diff --git a/cpp/src/parquet/meson.build b/cpp/src/parquet/meson.build index 62e278f898c2..89f5afaa4d2b 100644 --- a/cpp/src/parquet/meson.build +++ b/cpp/src/parquet/meson.build @@ -125,12 +125,11 @@ endif if needs_parquet_encryption or get_option('parquet_require_encryption').auto() dbps_source_dir = meson.project_source_root() / 'subprojects' / 'dbps_agent' - dbps_interface_dep = declare_dependency( - include_directories: include_directories( - '../../subprojects/dbps_agent/src/common' - ) + dbps_interface_dep = dependency( + 'dbps_interface', fallback: ['dbps_agent', 'dbps_interface_dep'] ) + parquet_build_dbps_libs = get_option('parquet_build_dbps_libs') if parquet_build_dbps_libs.allowed() diff --git a/cpp/subprojects/dbps_agent.wrap b/cpp/subprojects/dbps_agent.wrap index 232444cbf67d..59d2dac4575e 100644 --- a/cpp/subprojects/dbps_agent.wrap +++ b/cpp/subprojects/dbps_agent.wrap @@ -21,3 +21,6 @@ url = https://github.com/protegrity/DataBatchProtectionService.git # https://github.com/protegrity/arrow/issues/179 revision = 6206fb0e27556a0df9160364caa3819e4af3fe0f depth = 1 + +[provide] +dbps_interface = dbps_interface_dep diff --git a/cpp/subprojects/packagefiles/dbps_agent/meson.build b/cpp/subprojects/packagefiles/dbps_agent/meson.build new file mode 100644 index 000000000000..9e3d2ff43e9e --- /dev/null +++ b/cpp/subprojects/packagefiles/dbps_agent/meson.build @@ -0,0 +1,24 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +project('dbps_agent', 'cpp') + +dbps_interface_dep = declare_dependency( + include_directories: include_directories('src/common') +) + +meson.override_dependency('dbps_interface', dbps_interface_dep) From 9731bc58454e95d883d6e64f535eead56afb7372 Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Mon, 26 Jan 2026 20:37:35 -0600 Subject: [PATCH 09/31] Different dependency --- cpp/src/parquet/meson.build | 8 +++++--- cpp/subprojects/dbps_agent.wrap | 2 -- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cpp/src/parquet/meson.build b/cpp/src/parquet/meson.build index 89f5afaa4d2b..99119b5a8d73 100644 --- a/cpp/src/parquet/meson.build +++ b/cpp/src/parquet/meson.build @@ -124,9 +124,11 @@ else endif if needs_parquet_encryption or get_option('parquet_require_encryption').auto() - dbps_source_dir = meson.project_source_root() / 'subprojects' / 'dbps_agent' - dbps_interface_dep = dependency( - 'dbps_interface', fallback: ['dbps_agent', 'dbps_interface_dep'] + subproject('dbps_agent', required: false) + dbps_interface_dep = declare_dependency( + include_directories: include_directories( + '../../subprojects/dbps_agent/src/common' + ) ) diff --git a/cpp/subprojects/dbps_agent.wrap b/cpp/subprojects/dbps_agent.wrap index 59d2dac4575e..674553e92e90 100644 --- a/cpp/subprojects/dbps_agent.wrap +++ b/cpp/subprojects/dbps_agent.wrap @@ -22,5 +22,3 @@ url = https://github.com/protegrity/DataBatchProtectionService.git revision = 6206fb0e27556a0df9160364caa3819e4af3fe0f depth = 1 -[provide] -dbps_interface = dbps_interface_dep From 5ec18618e26521bdd49b8f65422dee7380b03254 Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Mon, 26 Jan 2026 20:48:59 -0600 Subject: [PATCH 10/31] Another attempt --- cpp/src/parquet/meson.build | 8 +++----- cpp/subprojects/dbps_agent.wrap | 17 +++++++++++++---- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/cpp/src/parquet/meson.build b/cpp/src/parquet/meson.build index 99119b5a8d73..67f7277a8b72 100644 --- a/cpp/src/parquet/meson.build +++ b/cpp/src/parquet/meson.build @@ -125,10 +125,8 @@ endif if needs_parquet_encryption or get_option('parquet_require_encryption').auto() subproject('dbps_agent', required: false) - dbps_interface_dep = declare_dependency( - include_directories: include_directories( - '../../subprojects/dbps_agent/src/common' - ) + dbps_interface_dep = dependency( + 'dbps_interface', fallback: ['dbps_agent', 'dbps_interface_dep'] ) @@ -138,7 +136,7 @@ if needs_parquet_encryption or get_option('parquet_require_encryption').auto() cmake = import('cmake') dbps_opts = cmake.subproject_options() - build_type = get_option('build_type') + build_type = get_option('buildtype') if build_type == 'plain' build_type = 'Release' elif build_type == 'debug' diff --git a/cpp/subprojects/dbps_agent.wrap b/cpp/subprojects/dbps_agent.wrap index 674553e92e90..d934695eda81 100644 --- a/cpp/subprojects/dbps_agent.wrap +++ b/cpp/subprojects/dbps_agent.wrap @@ -15,10 +15,19 @@ # specific language governing permissions and limitations # under the License. -[wrap-git] -url = https://github.com/protegrity/DataBatchProtectionService.git +#[wrap-git] +#url = https://github.com/protegrity/DataBatchProtectionService.git # TODO: Change to a specific tag/commit when we have one. # https://github.com/protegrity/arrow/issues/179 -revision = 6206fb0e27556a0df9160364caa3819e4af3fe0f -depth = 1 +#revision = 6206fb0e27556a0df9160364caa3819e4af3fe0f +#depth = 1 +[wrap-file] +directory = dbps_agent-6206fb0e27556a0df9160364caa3819e4af3fe0f +source_url = https://github.com/protegrity/DataBatchProtectionService/archive/6206fb0e27556a0df9160364caa3819e4af3fe0f.tar.gz +source_filename = dbps_agent-6206fb0e27556a0df9160364caa3819e4af3fe0f.tar.gz +source_hash = 9c95a1fec0c9851867a776c3241d3feb59b07bd7a50e653d6214e07a8ad62419 +patch_directory = dbps_agent + +[provide] +dbps_interface = dbps_interface_dep From 75d248f6379bf41536fdf9db524abdbfd53b67ab Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Mon, 26 Jan 2026 21:01:06 -0600 Subject: [PATCH 11/31] Correcting directory name --- cpp/subprojects/dbps_agent.wrap | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/cpp/subprojects/dbps_agent.wrap b/cpp/subprojects/dbps_agent.wrap index d934695eda81..816949183857 100644 --- a/cpp/subprojects/dbps_agent.wrap +++ b/cpp/subprojects/dbps_agent.wrap @@ -15,15 +15,8 @@ # specific language governing permissions and limitations # under the License. -#[wrap-git] -#url = https://github.com/protegrity/DataBatchProtectionService.git -# TODO: Change to a specific tag/commit when we have one. -# https://github.com/protegrity/arrow/issues/179 -#revision = 6206fb0e27556a0df9160364caa3819e4af3fe0f -#depth = 1 - [wrap-file] -directory = dbps_agent-6206fb0e27556a0df9160364caa3819e4af3fe0f +directory = DataBatchProtectionService-6206fb0e27556a0df9160364caa3819e4af3fe0f source_url = https://github.com/protegrity/DataBatchProtectionService/archive/6206fb0e27556a0df9160364caa3819e4af3fe0f.tar.gz source_filename = dbps_agent-6206fb0e27556a0df9160364caa3819e4af3fe0f.tar.gz source_hash = 9c95a1fec0c9851867a776c3241d3feb59b07bd7a50e653d6214e07a8ad62419 From 57afcc80197044cb57f5bd4f737f929f606f1bd2 Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Mon, 26 Jan 2026 21:14:30 -0600 Subject: [PATCH 12/31] Another attempt --- cpp/src/parquet/meson.build | 8 +++++--- cpp/subprojects/dbps_agent.wrap | 3 --- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/cpp/src/parquet/meson.build b/cpp/src/parquet/meson.build index 67f7277a8b72..91e679bd18ad 100644 --- a/cpp/src/parquet/meson.build +++ b/cpp/src/parquet/meson.build @@ -124,9 +124,11 @@ else endif if needs_parquet_encryption or get_option('parquet_require_encryption').auto() - subproject('dbps_agent', required: false) - dbps_interface_dep = dependency( - 'dbps_interface', fallback: ['dbps_agent', 'dbps_interface_dep'] + dbps_source_dir = meson.project_source_root() / 'subprojects' / 'DataBatchProtectionService-6206fb0e27556a0df9160364caa3819e4af3fe0f' + dbps_interface_dep = declare_dependency( + include_directories: include_directories( + dbps_source_dir / 'src' / 'common' + ) ) diff --git a/cpp/subprojects/dbps_agent.wrap b/cpp/subprojects/dbps_agent.wrap index 816949183857..ac8c37bf1cbd 100644 --- a/cpp/subprojects/dbps_agent.wrap +++ b/cpp/subprojects/dbps_agent.wrap @@ -20,7 +20,4 @@ directory = DataBatchProtectionService-6206fb0e27556a0df9160364caa3819e4af3fe0f source_url = https://github.com/protegrity/DataBatchProtectionService/archive/6206fb0e27556a0df9160364caa3819e4af3fe0f.tar.gz source_filename = dbps_agent-6206fb0e27556a0df9160364caa3819e4af3fe0f.tar.gz source_hash = 9c95a1fec0c9851867a776c3241d3feb59b07bd7a50e653d6214e07a8ad62419 -patch_directory = dbps_agent -[provide] -dbps_interface = dbps_interface_dep From f36cf77710bec98b89b78e6cec3fc540a9225f1b Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Mon, 26 Jan 2026 21:26:16 -0600 Subject: [PATCH 13/31] Removing absolute paths --- cpp/src/parquet/meson.build | 63 ++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 33 deletions(-) diff --git a/cpp/src/parquet/meson.build b/cpp/src/parquet/meson.build index 91e679bd18ad..3a16c32cec5b 100644 --- a/cpp/src/parquet/meson.build +++ b/cpp/src/parquet/meson.build @@ -124,41 +124,38 @@ else endif if needs_parquet_encryption or get_option('parquet_require_encryption').auto() - dbps_source_dir = meson.project_source_root() / 'subprojects' / 'DataBatchProtectionService-6206fb0e27556a0df9160364caa3819e4af3fe0f' - dbps_interface_dep = declare_dependency( - include_directories: include_directories( - dbps_source_dir / 'src' / 'common' - ) - ) - - - parquet_build_dbps_libs = get_option('parquet_build_dbps_libs') - - if parquet_build_dbps_libs.allowed() - cmake = import('cmake') - dbps_opts = cmake.subproject_options() - - build_type = get_option('buildtype') - if build_type == 'plain' - build_type = 'Release' - elif build_type == 'debug' - build_type = 'Debug' - endif - - build_output_dir = meson.current_build_dir() + cmake = import('cmake') + dbps_opts = cmake.subproject_options() - dbps_opts.add_cmake_defines( - { - 'CMAKE_BUILD_TYPE': build_type, - 'BUILD_SHARED_LIBS': 'ON', - 'BUILD_TESTING': 'OFF', - 'CMAKE_LIBRARY_OUTPUT_DIRECTORY': build_output_dir, - 'CMAKE_RUNTIME_OUTPUT_DIRECTORY': build_output_dir, - 'CMAKE_ARCHIVE_OUTPUT_DIRECTORY': build_output_dir, - } - ) + build_type = get_option('buildtype') + if build_type == 'plain' + build_type = 'Release' + elif build_type == 'debug' + build_type = 'Debug' + endif - dbps_proj = cmake.subproject('dbps_agent', options: dbps_opts) + build_output_dir = meson.current_build_dir() + + dbps_opts.add_cmake_defines({ + 'CMAKE_BUILD_TYPE': build_type, + 'BUILD_SHARED_LIBS': 'ON', + 'BUILD_TESTING': 'OFF', + 'CMAKE_LIBRARY_OUTPUT_DIRECTORY': build_output_dir, + 'CMAKE_RUNTIME_OUTPUT_DIRECTORY': build_output_dir, + 'CMAKE_ARCHIVE_OUTPUT_DIRECTORY': build_output_dir, + }) + + dbps_proj = cmake.subproject('dbps_agent', options: dbps_opts) + dbps_interface_dep = dbps_proj.dependency('dbps_interface', required: false) + + if not dbps_interface_dep.found() + #dbps_source_dir = dbps_proj.subproject_dir() + #dbps_interface_dep = declare_dependency( + # include_directories: include_directories( + # dbps_source_dir / 'src' / 'common' + # ) + #) + error('No idea') endif parquet_deps += dbps_interface_dep From 9d5eb7f2442e50719e5526ace1507b57040f25d6 Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Mon, 26 Jan 2026 21:33:55 -0600 Subject: [PATCH 14/31] Removing absolute paths --- cpp/src/parquet/meson.build | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/cpp/src/parquet/meson.build b/cpp/src/parquet/meson.build index 3a16c32cec5b..842d3d3f6127 100644 --- a/cpp/src/parquet/meson.build +++ b/cpp/src/parquet/meson.build @@ -146,16 +146,10 @@ if needs_parquet_encryption or get_option('parquet_require_encryption').auto() }) dbps_proj = cmake.subproject('dbps_agent', options: dbps_opts) - dbps_interface_dep = dbps_proj.dependency('dbps_interface', required: false) + dbps_interface_dep = dbps_proj.dependency('dbps_interface') if not dbps_interface_dep.found() - #dbps_source_dir = dbps_proj.subproject_dir() - #dbps_interface_dep = declare_dependency( - # include_directories: include_directories( - # dbps_source_dir / 'src' / 'common' - # ) - #) - error('No idea') + error('Failed to build DBPS project') endif parquet_deps += dbps_interface_dep From 6b9f9ad600b1fdb4f0c4e94ee78eeb78a2f2195e Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Mon, 26 Jan 2026 21:41:57 -0600 Subject: [PATCH 15/31] Removing absolute paths --- cpp/src/parquet/meson.build | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cpp/src/parquet/meson.build b/cpp/src/parquet/meson.build index 842d3d3f6127..c488050fb571 100644 --- a/cpp/src/parquet/meson.build +++ b/cpp/src/parquet/meson.build @@ -146,7 +146,11 @@ if needs_parquet_encryption or get_option('parquet_require_encryption').auto() }) dbps_proj = cmake.subproject('dbps_agent', options: dbps_opts) - dbps_interface_dep = dbps_proj.dependency('dbps_interface') + dbps_interface_dep = declare_dependency( + include_directories: include_directories( + '../../subprojects/DataBatchProtectionService-6206fb0e27556a0df9160364caa3819e4af3fe0f/src' + ) + ) if not dbps_interface_dep.found() error('Failed to build DBPS project') From dc625e9778f3132007129896c3b95b249acc546f Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Mon, 26 Jan 2026 22:06:57 -0600 Subject: [PATCH 16/31] Removing absolute paths --- cpp/src/parquet/meson.build | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/cpp/src/parquet/meson.build b/cpp/src/parquet/meson.build index c488050fb571..a4a9b14f1398 100644 --- a/cpp/src/parquet/meson.build +++ b/cpp/src/parquet/meson.build @@ -148,14 +148,10 @@ if needs_parquet_encryption or get_option('parquet_require_encryption').auto() dbps_proj = cmake.subproject('dbps_agent', options: dbps_opts) dbps_interface_dep = declare_dependency( include_directories: include_directories( - '../../subprojects/DataBatchProtectionService-6206fb0e27556a0df9160364caa3819e4af3fe0f/src' + '../../subprojects/DataBatchProtectionService-6206fb0e27556a0df9160364caa3819e4af3fe0f/src/common' ) ) - if not dbps_interface_dep.found() - error('Failed to build DBPS project') - endif - parquet_deps += dbps_interface_dep endif From 55d4ef40215fafa84b4b0e45f793cf405c3e697e Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Mon, 26 Jan 2026 22:35:42 -0600 Subject: [PATCH 17/31] Add missing dependencies to tcb and magic enum --- cpp/src/parquet/meson.build | 7 +++++- cpp/subprojects/magic-enum.wrap | 24 +++++++++++++++++++ .../packagefiles/magic-enum/meson.build | 22 +++++++++++++++++ .../packagefiles/tcb-span/meson.build | 22 +++++++++++++++++ cpp/subprojects/tcb-span.wrap | 24 +++++++++++++++++++ 5 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 cpp/subprojects/magic-enum.wrap create mode 100644 cpp/subprojects/packagefiles/magic-enum/meson.build create mode 100644 cpp/subprojects/packagefiles/tcb-span/meson.build create mode 100644 cpp/subprojects/tcb-span.wrap diff --git a/cpp/src/parquet/meson.build b/cpp/src/parquet/meson.build index a4a9b14f1398..5016f39d3547 100644 --- a/cpp/src/parquet/meson.build +++ b/cpp/src/parquet/meson.build @@ -124,6 +124,11 @@ else endif if needs_parquet_encryption or get_option('parquet_require_encryption').auto() + tcb_span_dep = dependency('tcb_span', fallback: ['tcb-span', 'tcb_span_dep']) + magic_enum_dep = dependency( + 'magic_enum_header_only', fallback: ['magic-enum', 'magic_enum_dep'] + ) + cmake = import('cmake') dbps_opts = cmake.subproject_options() @@ -152,7 +157,7 @@ if needs_parquet_encryption or get_option('parquet_require_encryption').auto() ) ) - parquet_deps += dbps_interface_dep + parquet_deps += [dbps_interface_dep, tcb_span_dep, magic_enum_dep] endif parquet_lib = library( diff --git a/cpp/subprojects/magic-enum.wrap b/cpp/subprojects/magic-enum.wrap new file mode 100644 index 000000000000..3f7a17d93270 --- /dev/null +++ b/cpp/subprojects/magic-enum.wrap @@ -0,0 +1,24 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +[wrap-git] +url = https://github.com/Neargye/magic_enum.git +revision = v0.9.7 +depth = 1 + +[provide] +magic_enum_header_only = magic_enum_dep \ No newline at end of file diff --git a/cpp/subprojects/packagefiles/magic-enum/meson.build b/cpp/subprojects/packagefiles/magic-enum/meson.build new file mode 100644 index 000000000000..3b1a57bca772 --- /dev/null +++ b/cpp/subprojects/packagefiles/magic-enum/meson.build @@ -0,0 +1,22 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +project('magic-enum', 'cpp') + +magic_enum_dep = declare_dependency(include_directories: include_directories('include')) + +meson.override_dependency('magic_enum_header_only', magic_enum_dep) diff --git a/cpp/subprojects/packagefiles/tcb-span/meson.build b/cpp/subprojects/packagefiles/tcb-span/meson.build new file mode 100644 index 000000000000..0487df497ed1 --- /dev/null +++ b/cpp/subprojects/packagefiles/tcb-span/meson.build @@ -0,0 +1,22 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +project('tcb-span', 'cpp') + +tcb_span_dep = declare_dependency(include_directories: include_directories('include')) + +meson.override_dependency('tcb_span', tcb_span_dep) diff --git a/cpp/subprojects/tcb-span.wrap b/cpp/subprojects/tcb-span.wrap new file mode 100644 index 000000000000..4d1f4a7390b1 --- /dev/null +++ b/cpp/subprojects/tcb-span.wrap @@ -0,0 +1,24 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +[wrap-git] +url = https://github.com/tcbrindle/span.git +revision = master +depth = 1 + +[provide] +tcb_span = tcb_span_dep From 6f17f91480e318bba84eb84167f190dd1671265e Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Mon, 26 Jan 2026 22:50:55 -0600 Subject: [PATCH 18/31] Changing dep download --- cpp/subprojects/magic-enum.wrap | 12 +++++++----- cpp/subprojects/tcb-span.wrap | 10 ++++++---- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/cpp/subprojects/magic-enum.wrap b/cpp/subprojects/magic-enum.wrap index 3f7a17d93270..5e4b7c7da105 100644 --- a/cpp/subprojects/magic-enum.wrap +++ b/cpp/subprojects/magic-enum.wrap @@ -15,10 +15,12 @@ # specific language governing permissions and limitations # under the License. -[wrap-git] -url = https://github.com/Neargye/magic_enum.git -revision = v0.9.7 -depth = 1 +[wrap-file] +directory = magic_enum-0.9.7 +source_url = https://github.com/Neargye/magic_enum/archive/refs/tags/v0.9.7.tar.gz +source_filename = magic_enum-0.9.7.tar.gz +source_hash = b403d3dad4ef542fdc3024fa37d3a6cedb4ad33c72e31b6d9bab89dcaf69edf7 +patch_directory = magic-enum [provide] -magic_enum_header_only = magic_enum_dep \ No newline at end of file +magic_enum_header_only = magic_enum_dep diff --git a/cpp/subprojects/tcb-span.wrap b/cpp/subprojects/tcb-span.wrap index 4d1f4a7390b1..fbe7e9a0e523 100644 --- a/cpp/subprojects/tcb-span.wrap +++ b/cpp/subprojects/tcb-span.wrap @@ -15,10 +15,12 @@ # specific language governing permissions and limitations # under the License. -[wrap-git] -url = https://github.com/tcbrindle/span.git -revision = master -depth = 1 +[wrap-file] +directory = span-master +source_url = https://github.com/tcbrindle/span/archive/refs/heads/master.tar.gz +source_filename = span-master.tar.gz +source_hash = e57658bd9c5984cebd8bd0758f242cbf4fa7ed1bd5251a883f68420c3b17f818 +patch_directory = tcb-span [provide] tcb_span = tcb_span_dep From 3b1a0cf59a9336c509dab76a1e74f85b8c2ff5f8 Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Mon, 26 Jan 2026 23:57:47 -0600 Subject: [PATCH 19/31] Linter and test dependencies --- cpp/meson.options | 2 +- cpp/src/parquet/meson.build | 34 +++++++++++-------- .../packagefiles/dbps_agent/meson.build | 2 +- .../packagefiles/magic-enum/meson.build | 4 ++- .../packagefiles/tcb-span/meson.build | 4 ++- 5 files changed, 28 insertions(+), 18 deletions(-) diff --git a/cpp/meson.options b/cpp/meson.options index af7dff7bde96..bdd95d63006a 100644 --- a/cpp/meson.options +++ b/cpp/meson.options @@ -94,7 +94,7 @@ option( 'parquet_build_dbps_libs', type: 'feature', value: 'enabled', - description: 'Build DBPS external libraries' + description: 'Build DBPS external libraries', ) option( 'parquet_build_executables', diff --git a/cpp/src/parquet/meson.build b/cpp/src/parquet/meson.build index 5016f39d3547..3dd88f42d571 100644 --- a/cpp/src/parquet/meson.build +++ b/cpp/src/parquet/meson.build @@ -103,11 +103,11 @@ if openssl_dep.found() 'encryption/crypto_factory.cc', 'encryption/encoding_properties.cc', 'encryption/encryption_utils.cc', - 'encryption/external_dbpa_encryption.cc', - 'encryption/external/dbpa_library_wrapper.cc', 'encryption/external/dbpa_enum_utils.cc', 'encryption/external/dbpa_executor.cc', + 'encryption/external/dbpa_library_wrapper.cc', 'encryption/external/loadable_encryptor_utils.cc', + 'encryption/external_dbpa_encryption.cc', 'encryption/file_key_unwrapper.cc', 'encryption/file_key_wrapper.cc', 'encryption/file_system_key_material_store.cc', @@ -126,7 +126,8 @@ endif if needs_parquet_encryption or get_option('parquet_require_encryption').auto() tcb_span_dep = dependency('tcb_span', fallback: ['tcb-span', 'tcb_span_dep']) magic_enum_dep = dependency( - 'magic_enum_header_only', fallback: ['magic-enum', 'magic_enum_dep'] + 'magic_enum_header_only', + fallback: ['magic-enum', 'magic_enum_dep'], ) cmake = import('cmake') @@ -141,19 +142,21 @@ if needs_parquet_encryption or get_option('parquet_require_encryption').auto() build_output_dir = meson.current_build_dir() - dbps_opts.add_cmake_defines({ - 'CMAKE_BUILD_TYPE': build_type, - 'BUILD_SHARED_LIBS': 'ON', - 'BUILD_TESTING': 'OFF', - 'CMAKE_LIBRARY_OUTPUT_DIRECTORY': build_output_dir, - 'CMAKE_RUNTIME_OUTPUT_DIRECTORY': build_output_dir, - 'CMAKE_ARCHIVE_OUTPUT_DIRECTORY': build_output_dir, - }) + dbps_opts.add_cmake_defines( + { + 'CMAKE_BUILD_TYPE': build_type, + 'BUILD_SHARED_LIBS': 'ON', + 'BUILD_TESTING': 'OFF', + 'CMAKE_LIBRARY_OUTPUT_DIRECTORY': build_output_dir, + 'CMAKE_RUNTIME_OUTPUT_DIRECTORY': build_output_dir, + 'CMAKE_ARCHIVE_OUTPUT_DIRECTORY': build_output_dir, + } + ) dbps_proj = cmake.subproject('dbps_agent', options: dbps_opts) dbps_interface_dep = declare_dependency( include_directories: include_directories( - '../../subprojects/DataBatchProtectionService-6206fb0e27556a0df9160364caa3819e4af3fe0f/src/common' + '../../subprojects/DataBatchProtectionService-6206fb0e27556a0df9160364caa3819e4af3fe0f/src/common', ) ) @@ -167,7 +170,10 @@ parquet_lib = library( gnu_symbol_visibility: 'inlineshidden', ) -parquet_dep = declare_dependency(link_with: parquet_lib) +parquet_dep = declare_dependency( + link_with: parquet_lib, + dependencies: parquet_deps +) subdir('api') subdir('arrow') @@ -296,8 +302,8 @@ if needs_parquet_encryption 'encryption/aes_encryption_test.cc', 'encryption/crypto_factory_test.cc', 'encryption/encoding_properties_test.cc', - 'encryption/external_dbpa_encryption_test.cc', 'encryption/external/test_utils.cc', + 'encryption/external_dbpa_encryption_test.cc', 'encryption/per_column_encryption_test.cc', 'encryption/properties_test.cc', 'encryption/read_configurations_test.cc', diff --git a/cpp/subprojects/packagefiles/dbps_agent/meson.build b/cpp/subprojects/packagefiles/dbps_agent/meson.build index 9e3d2ff43e9e..527f11cac62e 100644 --- a/cpp/subprojects/packagefiles/dbps_agent/meson.build +++ b/cpp/subprojects/packagefiles/dbps_agent/meson.build @@ -18,7 +18,7 @@ project('dbps_agent', 'cpp') dbps_interface_dep = declare_dependency( - include_directories: include_directories('src/common') + include_directories: include_directories('src/common'), ) meson.override_dependency('dbps_interface', dbps_interface_dep) diff --git a/cpp/subprojects/packagefiles/magic-enum/meson.build b/cpp/subprojects/packagefiles/magic-enum/meson.build index 3b1a57bca772..cdf68711c5bd 100644 --- a/cpp/subprojects/packagefiles/magic-enum/meson.build +++ b/cpp/subprojects/packagefiles/magic-enum/meson.build @@ -17,6 +17,8 @@ project('magic-enum', 'cpp') -magic_enum_dep = declare_dependency(include_directories: include_directories('include')) +magic_enum_dep = declare_dependency( + include_directories: include_directories('include' +) meson.override_dependency('magic_enum_header_only', magic_enum_dep) diff --git a/cpp/subprojects/packagefiles/tcb-span/meson.build b/cpp/subprojects/packagefiles/tcb-span/meson.build index 0487df497ed1..6e9d99e0cabd 100644 --- a/cpp/subprojects/packagefiles/tcb-span/meson.build +++ b/cpp/subprojects/packagefiles/tcb-span/meson.build @@ -17,6 +17,8 @@ project('tcb-span', 'cpp') -tcb_span_dep = declare_dependency(include_directories: include_directories('include')) +tcb_span_dep = declare_dependency( + include_directories: include_directories('include') +) meson.override_dependency('tcb_span', tcb_span_dep) From ce4420eb06ca69e02420ae58b4818c07f0de6be3 Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Tue, 27 Jan 2026 00:04:48 -0600 Subject: [PATCH 20/31] typo --- cpp/subprojects/packagefiles/magic-enum/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/subprojects/packagefiles/magic-enum/meson.build b/cpp/subprojects/packagefiles/magic-enum/meson.build index cdf68711c5bd..5c8f9f68005d 100644 --- a/cpp/subprojects/packagefiles/magic-enum/meson.build +++ b/cpp/subprojects/packagefiles/magic-enum/meson.build @@ -18,7 +18,7 @@ project('magic-enum', 'cpp') magic_enum_dep = declare_dependency( - include_directories: include_directories('include' + include_directories: include_directories('include') ) meson.override_dependency('magic_enum_header_only', magic_enum_dep) From c30afd473a7c3c99d171643822249e567a9a907b Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Tue, 27 Jan 2026 01:02:18 -0600 Subject: [PATCH 21/31] Benchmark lib failing --- cpp/src/parquet/meson.build | 7 ++++--- cpp/subprojects/packagefiles/magic-enum/meson.build | 2 +- cpp/subprojects/packagefiles/tcb-span/meson.build | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/cpp/src/parquet/meson.build b/cpp/src/parquet/meson.build index 3dd88f42d571..0544903552f3 100644 --- a/cpp/src/parquet/meson.build +++ b/cpp/src/parquet/meson.build @@ -147,17 +147,18 @@ if needs_parquet_encryption or get_option('parquet_require_encryption').auto() 'CMAKE_BUILD_TYPE': build_type, 'BUILD_SHARED_LIBS': 'ON', 'BUILD_TESTING': 'OFF', + 'BUILD_BENCHMARKS': 'OFF', 'CMAKE_LIBRARY_OUTPUT_DIRECTORY': build_output_dir, 'CMAKE_RUNTIME_OUTPUT_DIRECTORY': build_output_dir, 'CMAKE_ARCHIVE_OUTPUT_DIRECTORY': build_output_dir, - } + }, ) dbps_proj = cmake.subproject('dbps_agent', options: dbps_opts) dbps_interface_dep = declare_dependency( include_directories: include_directories( '../../subprojects/DataBatchProtectionService-6206fb0e27556a0df9160364caa3819e4af3fe0f/src/common', - ) + ), ) parquet_deps += [dbps_interface_dep, tcb_span_dep, magic_enum_dep] @@ -172,7 +173,7 @@ parquet_lib = library( parquet_dep = declare_dependency( link_with: parquet_lib, - dependencies: parquet_deps + dependencies: parquet_deps, ) subdir('api') diff --git a/cpp/subprojects/packagefiles/magic-enum/meson.build b/cpp/subprojects/packagefiles/magic-enum/meson.build index 5c8f9f68005d..fd877d94704f 100644 --- a/cpp/subprojects/packagefiles/magic-enum/meson.build +++ b/cpp/subprojects/packagefiles/magic-enum/meson.build @@ -18,7 +18,7 @@ project('magic-enum', 'cpp') magic_enum_dep = declare_dependency( - include_directories: include_directories('include') + include_directories: include_directories('include'), ) meson.override_dependency('magic_enum_header_only', magic_enum_dep) diff --git a/cpp/subprojects/packagefiles/tcb-span/meson.build b/cpp/subprojects/packagefiles/tcb-span/meson.build index 6e9d99e0cabd..99966eba78e8 100644 --- a/cpp/subprojects/packagefiles/tcb-span/meson.build +++ b/cpp/subprojects/packagefiles/tcb-span/meson.build @@ -18,7 +18,7 @@ project('tcb-span', 'cpp') tcb_span_dep = declare_dependency( - include_directories: include_directories('include') + include_directories: include_directories('include'), ) meson.override_dependency('tcb_span', tcb_span_dep) From a145ab139e25c43111d9736c3e2fdc07205ebf09 Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Tue, 27 Jan 2026 01:48:02 -0600 Subject: [PATCH 22/31] Last attempt today --- cpp/src/parquet/meson.build | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/cpp/src/parquet/meson.build b/cpp/src/parquet/meson.build index 0544903552f3..46afcfcfea91 100644 --- a/cpp/src/parquet/meson.build +++ b/cpp/src/parquet/meson.build @@ -151,6 +151,15 @@ if needs_parquet_encryption or get_option('parquet_require_encryption').auto() 'CMAKE_LIBRARY_OUTPUT_DIRECTORY': build_output_dir, 'CMAKE_RUNTIME_OUTPUT_DIRECTORY': build_output_dir, 'CMAKE_ARCHIVE_OUTPUT_DIRECTORY': build_output_dir, + 'CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG': build_output_dir, + 'CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE': build_output_dir, + 'CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG': build_output_dir, + 'CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE': build_output_dir, + 'CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG': build_output_dir, + 'CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE': build_output_dir, + 'CMAKE_BUILD_WITH_INSTALL_RPATH': 'ON', + 'CMAKE_INSTALL_RPATH': build_output_dir, + 'CMAKE_INSTALL_RPATH_USE_LINK_PATH': 'ON', }, ) From ea32caed64ba2a20bec080a0163dac6e6a91613e Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Tue, 27 Jan 2026 08:54:11 -0600 Subject: [PATCH 23/31] Last attempt today --- cpp/src/parquet/meson.build | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cpp/src/parquet/meson.build b/cpp/src/parquet/meson.build index 46afcfcfea91..88d4f16adb2b 100644 --- a/cpp/src/parquet/meson.build +++ b/cpp/src/parquet/meson.build @@ -160,6 +160,11 @@ if needs_parquet_encryption or get_option('parquet_require_encryption').auto() 'CMAKE_BUILD_WITH_INSTALL_RPATH': 'ON', 'CMAKE_INSTALL_RPATH': build_output_dir, 'CMAKE_INSTALL_RPATH_USE_LINK_PATH': 'ON', + 'CMAKE_BUILD_RPATH': build_output_dir, + 'CMAKE_BUILD_WITH_INSTALL_RPATH': 'ON', + 'CMAKE_INSTALL_RPATH': build_output_dir, + 'CMAKE_INSTALL_RPATH_USE_LINK_PATH': 'ON', + 'CMAKE_BUILD_RPATH_USE_ORIGIN': 'ON', }, ) From 96e08cbaaadeed2925e707b1db8bdea0c7ee8760 Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Tue, 27 Jan 2026 09:13:48 -0600 Subject: [PATCH 24/31] Linker errors --- cpp/src/parquet/meson.build | 1 - 1 file changed, 1 deletion(-) diff --git a/cpp/src/parquet/meson.build b/cpp/src/parquet/meson.build index 88d4f16adb2b..e1e87ecbaac9 100644 --- a/cpp/src/parquet/meson.build +++ b/cpp/src/parquet/meson.build @@ -161,7 +161,6 @@ if needs_parquet_encryption or get_option('parquet_require_encryption').auto() 'CMAKE_INSTALL_RPATH': build_output_dir, 'CMAKE_INSTALL_RPATH_USE_LINK_PATH': 'ON', 'CMAKE_BUILD_RPATH': build_output_dir, - 'CMAKE_BUILD_WITH_INSTALL_RPATH': 'ON', 'CMAKE_INSTALL_RPATH': build_output_dir, 'CMAKE_INSTALL_RPATH_USE_LINK_PATH': 'ON', 'CMAKE_BUILD_RPATH_USE_ORIGIN': 'ON', From 432487f72e6a78ce287e627635d62a453e13a04b Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Tue, 27 Jan 2026 09:20:09 -0600 Subject: [PATCH 25/31] Linker errors --- cpp/src/parquet/meson.build | 2 -- 1 file changed, 2 deletions(-) diff --git a/cpp/src/parquet/meson.build b/cpp/src/parquet/meson.build index e1e87ecbaac9..bb14538ee44c 100644 --- a/cpp/src/parquet/meson.build +++ b/cpp/src/parquet/meson.build @@ -161,8 +161,6 @@ if needs_parquet_encryption or get_option('parquet_require_encryption').auto() 'CMAKE_INSTALL_RPATH': build_output_dir, 'CMAKE_INSTALL_RPATH_USE_LINK_PATH': 'ON', 'CMAKE_BUILD_RPATH': build_output_dir, - 'CMAKE_INSTALL_RPATH': build_output_dir, - 'CMAKE_INSTALL_RPATH_USE_LINK_PATH': 'ON', 'CMAKE_BUILD_RPATH_USE_ORIGIN': 'ON', }, ) From 9f47a543dfc4c18e0814497a7f6d258db62da10d Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Tue, 27 Jan 2026 10:03:19 -0600 Subject: [PATCH 26/31] Linker errors --- cpp/src/parquet/meson.build | 1 - 1 file changed, 1 deletion(-) diff --git a/cpp/src/parquet/meson.build b/cpp/src/parquet/meson.build index bb14538ee44c..88f2b58b851d 100644 --- a/cpp/src/parquet/meson.build +++ b/cpp/src/parquet/meson.build @@ -160,7 +160,6 @@ if needs_parquet_encryption or get_option('parquet_require_encryption').auto() 'CMAKE_BUILD_WITH_INSTALL_RPATH': 'ON', 'CMAKE_INSTALL_RPATH': build_output_dir, 'CMAKE_INSTALL_RPATH_USE_LINK_PATH': 'ON', - 'CMAKE_BUILD_RPATH': build_output_dir, 'CMAKE_BUILD_RPATH_USE_ORIGIN': 'ON', }, ) From ace5a89aa9dd5390ccb286aee1ec9ba89d6f8020 Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Tue, 27 Jan 2026 10:37:34 -0600 Subject: [PATCH 27/31] Linker errors --- cpp/src/parquet/meson.build | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/cpp/src/parquet/meson.build b/cpp/src/parquet/meson.build index 88f2b58b851d..f170c3c8c180 100644 --- a/cpp/src/parquet/meson.build +++ b/cpp/src/parquet/meson.build @@ -148,17 +148,20 @@ if needs_parquet_encryption or get_option('parquet_require_encryption').auto() 'BUILD_SHARED_LIBS': 'ON', 'BUILD_TESTING': 'OFF', 'BUILD_BENCHMARKS': 'OFF', - 'CMAKE_LIBRARY_OUTPUT_DIRECTORY': build_output_dir, - 'CMAKE_RUNTIME_OUTPUT_DIRECTORY': build_output_dir, - 'CMAKE_ARCHIVE_OUTPUT_DIRECTORY': build_output_dir, - 'CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG': build_output_dir, - 'CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE': build_output_dir, - 'CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG': build_output_dir, - 'CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE': build_output_dir, - 'CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG': build_output_dir, - 'CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE': build_output_dir, + # 'CMAKE_LIBRARY_OUTPUT_DIRECTORY': build_output_dir, + #'CMAKE_RUNTIME_OUTPUT_DIRECTORY': build_output_dir, + #'CMAKE_ARCHIVE_OUTPUT_DIRECTORY': build_output_dir, + #'CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG': build_output_dir, + #'CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE': build_output_dir, + #'CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG': build_output_dir, + #'CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE': build_output_dir, + #'CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG': build_output_dir, + #'CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE': build_output_dir, + #'CMAKE_BUILD_WITH_INSTALL_RPATH': 'ON', + #'CMAKE_INSTALL_RPATH': build_output_dir, + #'CMAKE_INSTALL_RPATH_USE_LINK_PATH': 'ON', + #'CMAKE_BUILD_RPATH_USE_ORIGIN': 'ON', 'CMAKE_BUILD_WITH_INSTALL_RPATH': 'ON', - 'CMAKE_INSTALL_RPATH': build_output_dir, 'CMAKE_INSTALL_RPATH_USE_LINK_PATH': 'ON', 'CMAKE_BUILD_RPATH_USE_ORIGIN': 'ON', }, From 12ea2a49903dace75db4fa70cee36e2872570c93 Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Tue, 27 Jan 2026 10:48:40 -0600 Subject: [PATCH 28/31] Linker errors --- cpp/src/parquet/meson.build | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cpp/src/parquet/meson.build b/cpp/src/parquet/meson.build index f170c3c8c180..f0acc967ce3c 100644 --- a/cpp/src/parquet/meson.build +++ b/cpp/src/parquet/meson.build @@ -148,6 +148,10 @@ if needs_parquet_encryption or get_option('parquet_require_encryption').auto() 'BUILD_SHARED_LIBS': 'ON', 'BUILD_TESTING': 'OFF', 'BUILD_BENCHMARKS': 'OFF', + 'GTEST_BUILD_TESTS': 'OFF', + 'GTEST_BUILD_SAMPLES': 'OFF', + 'BENCHMARK_ENABLE_TESTING': 'OFF', + 'BENCHMARK_ENABLE_INSTALL': 'OFF', # 'CMAKE_LIBRARY_OUTPUT_DIRECTORY': build_output_dir, #'CMAKE_RUNTIME_OUTPUT_DIRECTORY': build_output_dir, #'CMAKE_ARCHIVE_OUTPUT_DIRECTORY': build_output_dir, From 36dc7d467d52fc91ce959648c0dae5a079a56af0 Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Tue, 27 Jan 2026 11:34:57 -0600 Subject: [PATCH 29/31] Trying to fix cycle --- cpp/subprojects/dbps_agent.wrap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/subprojects/dbps_agent.wrap b/cpp/subprojects/dbps_agent.wrap index ac8c37bf1cbd..a9cf66008de1 100644 --- a/cpp/subprojects/dbps_agent.wrap +++ b/cpp/subprojects/dbps_agent.wrap @@ -20,4 +20,4 @@ directory = DataBatchProtectionService-6206fb0e27556a0df9160364caa3819e4af3fe0f source_url = https://github.com/protegrity/DataBatchProtectionService/archive/6206fb0e27556a0df9160364caa3819e4af3fe0f.tar.gz source_filename = dbps_agent-6206fb0e27556a0df9160364caa3819e4af3fe0f.tar.gz source_hash = 9c95a1fec0c9851867a776c3241d3feb59b07bd7a50e653d6214e07a8ad62419 - +patch_directory = dbps_agent From 8f3ea2d9d068f1dad4a590f7c2fa0b60cfb1bc19 Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Tue, 27 Jan 2026 11:54:34 -0600 Subject: [PATCH 30/31] Patching DBPS build file --- cpp/src/parquet/meson.build | 2 +- .../dbps_agent/CMakeLists.txt.patch | 30 +++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 cpp/subprojects/packagefiles/dbps_agent/CMakeLists.txt.patch diff --git a/cpp/src/parquet/meson.build b/cpp/src/parquet/meson.build index f0acc967ce3c..cac7a26b0806 100644 --- a/cpp/src/parquet/meson.build +++ b/cpp/src/parquet/meson.build @@ -146,7 +146,7 @@ if needs_parquet_encryption or get_option('parquet_require_encryption').auto() { 'CMAKE_BUILD_TYPE': build_type, 'BUILD_SHARED_LIBS': 'ON', - 'BUILD_TESTING': 'OFF', + 'BUILD_TESTS': 'OFF', 'BUILD_BENCHMARKS': 'OFF', 'GTEST_BUILD_TESTS': 'OFF', 'GTEST_BUILD_SAMPLES': 'OFF', diff --git a/cpp/subprojects/packagefiles/dbps_agent/CMakeLists.txt.patch b/cpp/subprojects/packagefiles/dbps_agent/CMakeLists.txt.patch new file mode 100644 index 000000000000..5de49c10b51a --- /dev/null +++ b/cpp/subprojects/packagefiles/dbps_agent/CMakeLists.txt.patch @@ -0,0 +1,30 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -520,15 +520,19 @@ endif() + + # All target (everything) + add_custom_target(all_targets + DEPENDS + libraries + executables + COMMENT "Building all targets" + ) + + # Add tests to all_targets if enabled + if(BUILD_TESTS) +- add_dependencies(all_targets tests) ++ # Only add test dependencies when tests target actually exists ++ # This prevents Meson from detecting cycles when BUILD_TESTS is OFF ++ if(TARGET tests) ++ add_dependencies(all_targets tests) ++ endif() + endif() + + # Add client shared library to all_targets if enabled + if(BUILD_SHARED_LIBS) +- add_dependencies(all_targets shared_libraries) ++ # Only add shared library dependencies when shared_libraries target exists ++ if(TARGET shared_libraries) ++ add_dependencies(all_targets shared_libraries) ++ endif() + endif() \ No newline at end of file From 6e90b0a9a5f9495058273f8c2ca4fbd4aae8104e Mon Sep 17 00:00:00 2001 From: Sofia Brenes Date: Tue, 27 Jan 2026 12:30:09 -0600 Subject: [PATCH 31/31] Patching DBPS build file --- .../packagefiles/dbps_agent/CMakeLists.txt.patch | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/cpp/subprojects/packagefiles/dbps_agent/CMakeLists.txt.patch b/cpp/subprojects/packagefiles/dbps_agent/CMakeLists.txt.patch index 5de49c10b51a..a06c90233b39 100644 --- a/cpp/subprojects/packagefiles/dbps_agent/CMakeLists.txt.patch +++ b/cpp/subprojects/packagefiles/dbps_agent/CMakeLists.txt.patch @@ -1,5 +1,20 @@ --- a/CMakeLists.txt +++ b/CMakeLists.txt +@@ -10,8 +10,10 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) + # Build options + option(BUILD_TESTS "Build test executables" ON) + option(BUILD_SHARED_LIBS "Build shared libraries" ON) + + # Enable CTest and GoogleTest integration +-enable_testing() +-include(CTest) ++if(BUILD_TESTS) ++ enable_testing() ++ include(CTest) ++endif() + + # ============================================================================= + # Dependencies @@ -520,15 +520,19 @@ endif() # All target (everything)