From 2bbd07843e8ec34311cafab35f21b40c86e0dd7f Mon Sep 17 00:00:00 2001 From: Markus Volk Date: Tue, 12 Sep 2023 17:00:41 +0200 Subject: [PATCH] meson: fix reproducibility Tracker's design seems to be strictly for non-cross builds and leaks buildpaths into the binaries at various places. Avoid this to improve binary reproducibility. todo: Some of these paths may need to be adjusted to make the test environment work Upstream-Status: Inappropriate [oe-specific] Signed-off-by: Markus Volk --- meson.build | 8 ++++---- src/libtracker-miners-common/tracker-landlock.c | 4 ++-- src/miners/fs/meson.build | 4 ++-- src/tracker-extract/meson.build | 2 +- tests/tracker-miner-fs/meson.build | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/meson.build b/meson.build index a838344..6945f63 100644 --- a/meson.build +++ b/meson.build @@ -393,7 +393,7 @@ conf.set('PACKAGE_VERSION', '"@0@"'.format(meson.project_version())) conf.set('TRACKER_VERSION', '"@0@"'.format(meson.project_version())) # Config that goes in some other generated files (.desktop, .pc, etc) -conf.set('abs_top_builddir', meson.current_build_dir()) +conf.set('abs_top_builddir', '') conf.set('exec_prefix', get_option('prefix')) conf.set('bindir', join_paths(get_option('prefix'), get_option('bindir'))) conf.set('datadir', datadir) @@ -422,7 +422,7 @@ tracker_c_args = [ configinc = include_directories('./') srcinc = include_directories('src/') -build_root = meson.current_build_dir() +build_root = '' # We use tracker-miners-3.0 rather than tracker3-miners inside the lib64 # directory, following the existing convention in that directory. @@ -451,8 +451,8 @@ subdir('data') subdir('docs') test_c_args = tracker_c_args + [ - '-DTOP_BUILDDIR="@0@/"'.format(meson.build_root()), - '-DTOP_SRCDIR="@0@/"'.format(meson.source_root()), + '-DTOP_BUILDDIR="@0@/"'.format(''), + '-DTOP_SRCDIR="@0@/"'.format('/usr/src/debug/tracker'), ] if get_option('tests_tap_protocol') diff --git a/src/libtracker-miners-common/tracker-landlock.c b/src/libtracker-miners-common/tracker-landlock.c index 95c652e..608cee4 100644 --- a/src/libtracker-miners-common/tracker-landlock.c +++ b/src/libtracker-miners-common/tracker-landlock.c @@ -276,7 +276,7 @@ tracker_landlock_init (const gchar * const *indexed_folders) LANDLOCK_ACCESS_FS_READ_DIR); } } - +#if 0 current_dir = g_get_current_dir (); /* Detect running in-tree */ @@ -296,7 +296,7 @@ tracker_landlock_init (const gchar * const *indexed_folders) in_tree_rules[i].flags); } } - +#endif /* Add user cache for readonly databases */ #ifdef MINER_FS_CACHE_LOCATION add_rule (landlock_fd, MINER_FS_CACHE_LOCATION, diff --git a/src/miners/fs/meson.build b/src/miners/fs/meson.build index 6e58832..04750f8 100644 --- a/src/miners/fs/meson.build +++ b/src/miners/fs/meson.build @@ -67,8 +67,8 @@ executable('tracker-miner-fs-@0@'.format(tracker_api_major), dependencies: tracker_miner_fs_deps, c_args: [ tracker_c_args, - '-DBUILDROOT="@0@"'.format(meson.global_build_root()), - '-DBUILD_EXTRACTDIR="@0@"'.format(meson.build_root() / 'src' / 'tracker-extract'), + '-DBUILDROOT="@0@"'.format(get_option('prefix') / 'src'), + '-DBUILD_EXTRACTDIR="@0@"'.format(get_option('prefix') / 'src' / 'tracker-extract'), '-DLIBEXECDIR="@0@"'.format(get_option('prefix') / get_option('libexecdir')), ], install: true, diff --git a/src/tracker-extract/meson.build b/src/tracker-extract/meson.build index 16ce367..bbd494d 100644 --- a/src/tracker-extract/meson.build +++ b/src/tracker-extract/meson.build @@ -158,7 +158,7 @@ endif executable('tracker-extract-@0@'.format(tracker_api_major), tracker_extract_sources, # Manually add the root dir to work around https://github.com/mesonbuild/meson/issues/1387 - c_args: tracker_c_args + ['-I' + meson.build_root()], + c_args: tracker_c_args, export_dynamic: true, dependencies: tracker_extract_dependencies, install: true, diff --git a/tests/tracker-miner-fs/meson.build b/tests/tracker-miner-fs/meson.build index 8c081fd..9792082 100644 --- a/tests/tracker-miner-fs/meson.build +++ b/tests/tracker-miner-fs/meson.build @@ -18,7 +18,7 @@ libtracker_miner_test_c_args = [ ] libtracker_miner_test_environment = environment() -libtracker_miner_test_environment.set('GSETTINGS_SCHEMA_DIR', join_paths(meson.build_root(), 'data')) +libtracker_miner_test_environment.set('GSETTINGS_SCHEMA_DIR', '/usr/src/debug/tracker-miners/data') libtracker_miner_test_deps = [tracker_miners_common_dep, tracker_miner_dep, tracker_sparql] -- 2.34.1