diff options
| -rw-r--r-- | meta-gnome/recipes-gnome/tracker/tracker/0001-fix-reproducibility.patch | 78 | ||||
| -rw-r--r-- | meta-gnome/recipes-gnome/tracker/tracker_3.6.0.bb (renamed from meta-gnome/recipes-gnome/tracker/tracker_3.5.1.bb) | 19 |
2 files changed, 90 insertions, 7 deletions
diff --git a/meta-gnome/recipes-gnome/tracker/tracker/0001-fix-reproducibility.patch b/meta-gnome/recipes-gnome/tracker/tracker/0001-fix-reproducibility.patch new file mode 100644 index 0000000000..30a58923c3 --- /dev/null +++ b/meta-gnome/recipes-gnome/tracker/tracker/0001-fix-reproducibility.patch | |||
| @@ -0,0 +1,78 @@ | |||
| 1 | From e5acd475f796420b4887969f2b0057dbf67979b3 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Markus Volk <f_l_k@t-online.de> | ||
| 3 | Date: Mon, 18 Sep 2023 02:47:55 +0200 | ||
| 4 | Subject: [PATCH] tracker: fix reproducibility issue | ||
| 5 | |||
| 6 | Tracker's design seems to be strictly for non-cross builds and leaks buildpaths into the | ||
| 7 | binaries at various places. Avoid this to improve binary reproducibility. | ||
| 8 | |||
| 9 | todo: Some of these paths may need to be adjusted to make the test environment work | ||
| 10 | |||
| 11 | Signed-off-by: Markus Volk <f_l_k@t-online.de> | ||
| 12 | --- | ||
| 13 | meson.build | 6 +++--- | ||
| 14 | src/libtracker-common/meson.build | 4 ++-- | ||
| 15 | src/libtracker-sparql/meson.build | 4 ++-- | ||
| 16 | 3 files changed, 7 insertions(+), 7 deletions(-) | ||
| 17 | |||
| 18 | diff --git a/meson.build b/meson.build | ||
| 19 | index 8442a216f..82844d7fd 100644 | ||
| 20 | --- a/meson.build | ||
| 21 | +++ b/meson.build | ||
| 22 | @@ -348,7 +348,7 @@ have_rtld_noload = cc.has_header_symbol('dlfcn.h', 'RTLD_NOLOAD') | ||
| 23 | conf.set('HAVE_RTLD_NOLOAD', have_rtld_noload) | ||
| 24 | |||
| 25 | # Config that goes in some other generated files (.desktop, .service, etc) | ||
| 26 | -conf.set('abs_top_builddir', meson.current_build_dir()) | ||
| 27 | +conf.set('abs_top_builddir', '/usr/src/debug/tracker') | ||
| 28 | conf.set('libexecdir', join_paths(get_option('prefix'), get_option('libexecdir'))) | ||
| 29 | |||
| 30 | configure_file(input: 'config.h.meson.in', | ||
| 31 | @@ -388,8 +388,8 @@ subdir('docs') | ||
| 32 | subdir('utils') | ||
| 33 | |||
| 34 | test_c_args = tracker_c_args + [ | ||
| 35 | - '-DTOP_BUILDDIR="@0@"'.format(build_root), | ||
| 36 | - '-DTOP_SRCDIR="@0@"'.format(source_root), | ||
| 37 | + '-DTOP_BUILDDIR="@0@/"'.format('/usr/src/debug/tracker'), | ||
| 38 | + '-DTOP_SRCDIR="@0@/"'.format('/usr/src/debug/tracker'), | ||
| 39 | ] | ||
| 40 | |||
| 41 | tracker_uninstalled_cli_dir = join_paths(meson.current_build_dir(), 'src', 'tracker') | ||
| 42 | diff --git a/src/libtracker-common/meson.build b/src/libtracker-common/meson.build | ||
| 43 | index 9355d1c0d..cdbc05f28 100644 | ||
| 44 | --- a/src/libtracker-common/meson.build | ||
| 45 | +++ b/src/libtracker-common/meson.build | ||
| 46 | @@ -51,10 +51,10 @@ libtracker_common = static_library('tracker-common', | ||
| 47 | dependencies: [tracker_common_dependencies, gmodule], | ||
| 48 | c_args: [ | ||
| 49 | '-DPRIVATE_LIBDIR="@0@"'.format(tracker_internal_libs_dir), | ||
| 50 | - '-DBUILD_LIBDIR="@0@"'.format(meson.current_build_dir()), | ||
| 51 | + '-DBUILD_LIBDIR="@0@"'.format('/usr/src/debug/tracker'), | ||
| 52 | # Global build root is required to detect noinst situations (tests/introspection), | ||
| 53 | # event when built as a subproject | ||
| 54 | - '-DBUILDROOT="@0@"'.format(meson.global_build_root()), | ||
| 55 | + '-DBUILDROOT="@0@"'.format('/usr/src/debug/tracker'), | ||
| 56 | ] + tracker_c_args, | ||
| 57 | include_directories: [configinc, srcinc], | ||
| 58 | gnu_symbol_visibility: 'hidden', | ||
| 59 | diff --git a/src/libtracker-sparql/meson.build b/src/libtracker-sparql/meson.build | ||
| 60 | index 36288f5c3..61086a697 100644 | ||
| 61 | --- a/src/libtracker-sparql/meson.build | ||
| 62 | +++ b/src/libtracker-sparql/meson.build | ||
| 63 | @@ -96,10 +96,10 @@ libtracker_sparql_private = static_library('tracker-sparql-private', | ||
| 64 | c_args: [ | ||
| 65 | '-include', 'libtracker-sparql/tracker-private.h', | ||
| 66 | '-DPRIVATE_LIBDIR="@0@"'.format(tracker_internal_libs_dir), | ||
| 67 | - '-DBUILD_LIBDIR="@0@"'.format(meson.current_build_dir()), | ||
| 68 | + '-DBUILD_LIBDIR="@0@"'.format('/usr/src/debug/tracker'), | ||
| 69 | # Global build root is required to detect noinst situations (tests/introspection), | ||
| 70 | # event when built as a subproject | ||
| 71 | - '-DBUILDROOT="@0@"'.format(meson.global_build_root()), | ||
| 72 | + '-DBUILDROOT="@0@"'.format('/usr/src/debug/tracker'), | ||
| 73 | ] + tracker_c_args, | ||
| 74 | |||
| 75 | dependencies: [libtracker_sparql_dependencies, gvdb_dep], | ||
| 76 | -- | ||
| 77 | 2.41.0 | ||
| 78 | |||
diff --git a/meta-gnome/recipes-gnome/tracker/tracker_3.5.1.bb b/meta-gnome/recipes-gnome/tracker/tracker_3.6.0.bb index 6dd8af2390..d2eb392a0f 100644 --- a/meta-gnome/recipes-gnome/tracker/tracker_3.5.1.bb +++ b/meta-gnome/recipes-gnome/tracker/tracker_3.6.0.bb | |||
| @@ -20,14 +20,10 @@ DEPENDS = " \ | |||
| 20 | 20 | ||
| 21 | GNOMEBASEBUILDCLASS = "meson" | 21 | GNOMEBASEBUILDCLASS = "meson" |
| 22 | 22 | ||
| 23 | inherit gnomebase gsettings gobject-introspection vala gtk-doc manpages bash-completion features_check python3native | 23 | inherit gettext gnomebase gsettings gobject-introspection vala gtk-doc bash-completion python3native |
| 24 | 24 | ||
| 25 | SRC_URI += "file://0001-meson-Do-not-define-TOP_SRCDIR.patch" | 25 | SRC_URI += "file://0001-fix-reproducibility.patch" |
| 26 | SRC_URI[archive.sha256sum] = "f972d50ac7bafdccf113b1eb99dcae35404685a99e55bfef16f3ac83b4de974d" | 26 | SRC_URI[archive.sha256sum] = "52592cfe19baffd16dbe47475be7da750dbd0b6333fd7acb60faa9da5bc40df2" |
| 27 | |||
| 28 | # gobject-introspection is mandatory and cannot be configured | ||
| 29 | REQUIRED_DISTRO_FEATURES = "gobject-introspection-data" | ||
| 30 | GIR_MESON_OPTION = "" | ||
| 31 | 27 | ||
| 32 | # text search is not an option anymore and requires sqlite3 build with | 28 | # text search is not an option anymore and requires sqlite3 build with |
| 33 | # PACKAGECONFIG[fts5] set (default) | 29 | # PACKAGECONFIG[fts5] set (default) |
| @@ -45,8 +41,17 @@ EXTRA_OEMESON = " \ | |||
| 45 | -Dsystemd_user_services=${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)} \ | 41 | -Dsystemd_user_services=${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)} \ |
| 46 | -Dsystemd_user_services_dir=${systemd_user_unitdir} \ | 42 | -Dsystemd_user_services_dir=${systemd_user_unitdir} \ |
| 47 | -Dsoup=soup3 \ | 43 | -Dsoup=soup3 \ |
| 44 | ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Dvapi=enabled', '-Dvapi=disabled', d)} \ | ||
| 48 | " | 45 | " |
| 49 | 46 | ||
| 47 | do_install:prepend() { | ||
| 48 | sed -i -e 's|${B}/../${PN}-${PV}|/usr/src/debug/${PN}/${PV}-${PR}|g' ${B}/src/libtracker-sparql/tracker-sparql-enum-types.c | ||
| 49 | sed -i -e 's|${B}/../${PN}-${PV}|/usr/src/debug/${PN}/${PV}-${PR}|g' ${B}/src/libtracker-sparql/core/tracker-data-enum-types.c | ||
| 50 | } | ||
| 51 | |||
| 52 | GIR_MESON_ENABLE_FLAG = 'enabled' | ||
| 53 | GIR_MESON_DISABLE_FLAG = 'disabled' | ||
| 54 | |||
| 50 | FILES:${PN} += " \ | 55 | FILES:${PN} += " \ |
| 51 | ${datadir}/dbus-1 \ | 56 | ${datadir}/dbus-1 \ |
| 52 | ${datadir}/tracker3 \ | 57 | ${datadir}/tracker3 \ |
