From e3418b55dbc87793c9c6937e80a39102c45f2fa4 Mon Sep 17 00:00:00 2001 From: Markus Volk Date: Fri, 20 Sep 2024 17:08:21 +0200 Subject: tracker: update 3.7.1 -> 3.8.0 - Dont inherit python3native. It seems to be unneeded - Rename to tinysparql - Drop dependencies for python3-pygobject-native and libarchive - Disable tests by default - Add PACKAGECONFIG for avahi - Fix sed hack to keep buildpath out of enum-types.c - Add patch that avoids to create compatibility links which would lead to package_qa error: Path /home/flk/poky/build-hypr/tmp/work/corei7-64-poky-linux/tinysparql/3.8.0/sstate-build-package/package/usr/lib/libtracker-sparql-3.0.so is owned by uid 1000, gid 100, which doesn't match any user/group on target. This may be due to host contamination. - Refresh fix-reproducibility.patch and additionally edit tracker-http.c to avoid another buildpath leakage Exception: Exception: KeyError: 'getpwuid(): uid not found: 1000' Signed-off-by: Khem Raj --- .../tinysparql/0001-fix-reproducibility.patch | 102 +++++++++++++++++++++ ...ker-sparql-meson.build-dont-create-compat.patch | 32 +++++++ .../recipes-gnome/tracker/tinysparql_3.8.0.bb | 59 ++++++++++++ .../tracker/tracker/0001-fix-reproducibility.patch | 77 ---------------- meta-gnome/recipes-gnome/tracker/tracker_3.7.3.bb | 59 ------------ 5 files changed, 193 insertions(+), 136 deletions(-) create mode 100644 meta-gnome/recipes-gnome/tracker/tinysparql/0001-fix-reproducibility.patch create mode 100644 meta-gnome/recipes-gnome/tracker/tinysparql/0001-src-libtracker-sparql-meson.build-dont-create-compat.patch create mode 100644 meta-gnome/recipes-gnome/tracker/tinysparql_3.8.0.bb delete mode 100644 meta-gnome/recipes-gnome/tracker/tracker/0001-fix-reproducibility.patch delete mode 100644 meta-gnome/recipes-gnome/tracker/tracker_3.7.3.bb (limited to 'meta-gnome') diff --git a/meta-gnome/recipes-gnome/tracker/tinysparql/0001-fix-reproducibility.patch b/meta-gnome/recipes-gnome/tracker/tinysparql/0001-fix-reproducibility.patch new file mode 100644 index 0000000000..23da5bb97e --- /dev/null +++ b/meta-gnome/recipes-gnome/tracker/tinysparql/0001-fix-reproducibility.patch @@ -0,0 +1,102 @@ +From 1eec06fc1ef26e4954507001c1c2f981eab8d77d Mon Sep 17 00:00:00 2001 +From: Markus Volk +Date: Mon, 18 Sep 2023 02:47:55 +0200 +Subject: [PATCH] tracker: fix reproducibility issue + +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 | 6 +++--- + src/libtracker-common/meson.build | 4 ++-- + src/libtracker-http/meson.build | 8 ++++---- + src/libtracker-http/tracker-http.c | 4 ++-- + src/libtracker-sparql/meson.build | 4 ++-- + 5 files changed, 13 insertions(+), 13 deletions(-) + +diff --git a/meson.build b/meson.build +index 41c00fafc..6e7282cb7 100644 +--- a/meson.build ++++ b/meson.build +@@ -333,7 +333,7 @@ have_rtld_noload = cc.has_header_symbol('dlfcn.h', 'RTLD_NOLOAD') + conf.set('HAVE_RTLD_NOLOAD', have_rtld_noload) + + # Config that goes in some other generated files (.desktop, .service, etc) +-conf.set('abs_top_builddir', meson.current_build_dir()) ++conf.set('abs_top_builddir', '/usr/src/debug/tracker') + conf.set('libexecdir', join_paths(get_option('prefix'), get_option('libexecdir'))) + + configure_file(input: 'config.h.meson.in', +@@ -372,8 +372,8 @@ subdir('docs') + subdir('utils') + + test_c_args = tracker_c_args + [ +- '-DTOP_BUILDDIR="@0@"'.format(build_root), +- '-DTOP_SRCDIR="@0@"'.format(source_root), ++ '-DTOP_BUILDDIR="@0@/"'.format('/usr/src/debug/tracker'), ++ '-DTOP_SRCDIR="@0@/"'.format('/usr/src/debug/tracker'), + ] + + tracker_uninstalled_cli_dir = join_paths(meson.current_build_dir(), 'src', 'tracker') +diff --git a/src/libtracker-common/meson.build b/src/libtracker-common/meson.build +index 72c2ae073..12218c870 100644 +--- a/src/libtracker-common/meson.build ++++ b/src/libtracker-common/meson.build +@@ -51,10 +51,10 @@ libtracker_common = static_library('tracker-common', + dependencies: [tracker_common_dependencies, gmodule], + c_args: [ + '-DPRIVATE_LIBDIR="@0@"'.format(tracker_internal_libs_dir), +- '-DBUILD_LIBDIR="@0@"'.format(meson.current_build_dir()), ++ '-DBUILD_LIBDIR="@0@"'.format('/usr/src/debug/tracker'), + # Global build root is required to detect noinst situations (tests/introspection), + # event when built as a subproject +- '-DBUILDROOT="@0@"'.format(meson.global_build_root()), ++ '-DBUILDROOT="@0@"'.format('/usr/src/debug/tracker'), + ] + tracker_c_args, + include_directories: [configinc, srcinc], + gnu_symbol_visibility: 'hidden', +diff --git a/src/libtracker-http/tracker-http.c b/src/libtracker-http/tracker-http.c +index dd82e9928..3cc68b240 100644 +--- a/src/libtracker-http/tracker-http.c ++++ b/src/libtracker-http/tracker-http.c +@@ -53,13 +53,13 @@ ensure_types (void) + + current_dir = g_get_current_dir (); + +- if (g_strcmp0 (current_dir, BUILDROOT) == 0) { ++ if (0) { + /* Detect in-build runtime of this code, this may happen + * building introspection information or running tests. + * We want the in-tree modules to be loaded then. + */ + module_path = g_strdup_printf (BUILD_LIBDIR "/%s", modules[i]); +- } else { ++ } else { + module_path = g_strdup_printf (PRIVATE_LIBDIR "/%s", modules[i]); + } + +diff --git a/src/libtracker-sparql/meson.build b/src/libtracker-sparql/meson.build +index 5eccb92fc..161f6ea21 100644 +--- a/src/libtracker-sparql/meson.build ++++ b/src/libtracker-sparql/meson.build +@@ -102,10 +102,10 @@ libtracker_sparql_private = static_library('tracker-sparql-private', + c_args: [ + '-include', 'libtracker-sparql/tracker-private.h', + '-DPRIVATE_LIBDIR="@0@"'.format(tracker_internal_libs_dir), +- '-DBUILD_LIBDIR="@0@"'.format(meson.current_build_dir()), ++ '-DBUILD_LIBDIR="@0@"'.format('/usr/src/debug/tracker'), + # Global build root is required to detect noinst situations (tests/introspection), + # event when built as a subproject +- '-DBUILDROOT="@0@"'.format(meson.global_build_root()), ++ '-DBUILDROOT="@0@"'.format('/usr/src/debug/tracker'), + ] + tracker_c_args, + + dependencies: [libtracker_sparql_dependencies], +-- +2.46.0 + diff --git a/meta-gnome/recipes-gnome/tracker/tinysparql/0001-src-libtracker-sparql-meson.build-dont-create-compat.patch b/meta-gnome/recipes-gnome/tracker/tinysparql/0001-src-libtracker-sparql-meson.build-dont-create-compat.patch new file mode 100644 index 0000000000..d6cc4f45d2 --- /dev/null +++ b/meta-gnome/recipes-gnome/tracker/tinysparql/0001-src-libtracker-sparql-meson.build-dont-create-compat.patch @@ -0,0 +1,32 @@ +From 0dfdbeef174c18e846b98af816a9675c12a42845 Mon Sep 17 00:00:00 2001 +From: Markus Volk +Date: Fri, 20 Sep 2024 16:43:44 +0200 +Subject: [PATCH] src/libtracker-sparql/meson.build: dont create compatibility + symlinks + +Using the sh script will cause package_qa error: +Exception: Exception: KeyError: 'getpwuid(): uid not found: 1000' +Path /home/flk/poky/build-hypr/tmp/work/corei7-64-poky-linux/tinysparql/3.8.0/sstate-build-package/package/usr/lib/libtracker-sparql-3.0.so is owned by uid 1000, gid 100, which doesn't match any user/group on target. This may be due to host contamination. + +Upstream-Status: Inappropriate [oe-specific] + +Signed-off-by: Markus Volk +--- + src/libtracker-sparql/meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/libtracker-sparql/meson.build b/src/libtracker-sparql/meson.build +index 5eccb92fc..6ed7c2b1f 100644 +--- a/src/libtracker-sparql/meson.build ++++ b/src/libtracker-sparql/meson.build +@@ -247,6 +247,6 @@ endif + + tracker_sparql_uninstalled_dir = meson.current_build_dir() + +-meson.add_install_script('symlink-libtracker-sparql.sh', get_option('libdir'), meson.current_build_dir()) ++#meson.add_install_script('symlink-libtracker-sparql.sh', get_option('libdir'), meson.current_build_dir()) + + meson.override_dependency('tinysparql-3.0', tracker_sparql_dep) +-- +2.46.0 + diff --git a/meta-gnome/recipes-gnome/tracker/tinysparql_3.8.0.bb b/meta-gnome/recipes-gnome/tracker/tinysparql_3.8.0.bb new file mode 100644 index 0000000000..628384464d --- /dev/null +++ b/meta-gnome/recipes-gnome/tracker/tinysparql_3.8.0.bb @@ -0,0 +1,59 @@ +SUMMARY = "Tracker is a file search engine" +LICENSE = "GPL-2.0-only & LGPL-2.1-only" +LIC_FILES_CHKSUM = " \ + file://COPYING.GPL;md5=ee31012bf90e7b8c108c69f197f3e3a4 \ + file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \ +" + +DEPENDS = " \ + dbus-native \ + glib-2.0 \ + sqlite3 \ + dbus \ + icu \ + json-glib \ + libsoup \ + libstemmer \ +" + +inherit gettext gnomebase gobject-introspection vala gtk-doc bash-completion + +SRC_URI += "file://0001-fix-reproducibility.patch" +SRC_URI += "file://0001-src-libtracker-sparql-meson.build-dont-create-compat.patch" +SRC_URI[archive.sha256sum] = "c0fcda77520f531548b2395137dcd193ee9cde5e222d3c9d273f030d1762a504" + +# text search is not an option anymore and requires sqlite3 build with +# PACKAGECONFIG[fts5] set (default) + +# set required cross property sqlite3_has_fts5 +do_write_config[vardeps] += "PACKAGECONFIG" +do_write_config:append() { + echo "[properties]" > ${WORKDIR}/meson-tracker.cross + echo "sqlite3_has_fts5 = 'true'" >> ${WORKDIR}/meson-tracker.cross +} + +EXTRA_OEMESON = " \ + --cross-file ${WORKDIR}/meson-tracker.cross \ + -Dman=false \ + -Dsystemd_user_services=${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)} \ + -Dsystemd_user_services_dir=${systemd_user_unitdir} \ + -Dtests=false \ + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Dvapi=enabled', '-Dvapi=disabled', d)} \ +" + +GIR_MESON_ENABLE_FLAG = 'enabled' +GIR_MESON_DISABLE_FLAG = 'disabled' + +PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "zeroconf", "avahi", "", d)}" +PACKAGECONFIG[avahi] = "-Davahi=enabled,-Davahi=disabled,avahi," + +do_install:prepend() { + sed -i -e 's|${B}|${TARGET_DBGSRC_DIR}|g' ${B}/src/libtracker-sparql/tracker-sparql-enum-types.c + sed -i -e 's|${B}|${TARGET_DBGSRC_DIR}|g' ${B}/src/libtracker-sparql/core/tracker-data-enum-types.c +} + +FILES:${PN} += " \ + ${datadir}/dbus-1 \ + ${libdir}/tinysparql-3.0 \ + ${systemd_user_unitdir} \ +" diff --git a/meta-gnome/recipes-gnome/tracker/tracker/0001-fix-reproducibility.patch b/meta-gnome/recipes-gnome/tracker/tracker/0001-fix-reproducibility.patch deleted file mode 100644 index 4527f9efa3..0000000000 --- a/meta-gnome/recipes-gnome/tracker/tracker/0001-fix-reproducibility.patch +++ /dev/null @@ -1,77 +0,0 @@ -From ae34fb111e1f2498f37b21c0c32ace6c9928ad66 Mon Sep 17 00:00:00 2001 -From: Markus Volk -Date: Mon, 18 Sep 2023 02:47:55 +0200 -Subject: [PATCH] tracker: fix reproducibility issue - -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 | 6 +++--- - src/libtracker-common/meson.build | 4 ++-- - src/libtracker-sparql/meson.build | 4 ++-- - 3 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/meson.build b/meson.build -index bc9f93a..6c86e5a 100644 ---- a/meson.build -+++ b/meson.build -@@ -357,7 +357,7 @@ have_rtld_noload = cc.has_header_symbol('dlfcn.h', 'RTLD_NOLOAD') - conf.set('HAVE_RTLD_NOLOAD', have_rtld_noload) - - # Config that goes in some other generated files (.desktop, .service, etc) --conf.set('abs_top_builddir', meson.current_build_dir()) -+conf.set('abs_top_builddir', '/usr/src/debug/tracker') - conf.set('libexecdir', join_paths(get_option('prefix'), get_option('libexecdir'))) - - configure_file(input: 'config.h.meson.in', -@@ -396,8 +396,8 @@ subdir('docs') - subdir('utils') - - test_c_args = tracker_c_args + [ -- '-DTOP_BUILDDIR="@0@"'.format(build_root), -- '-DTOP_SRCDIR="@0@"'.format(source_root), -+ '-DTOP_BUILDDIR="@0@/"'.format('/usr/src/debug/tracker'), -+ '-DTOP_SRCDIR="@0@/"'.format('/usr/src/debug/tracker'), - ] - - tracker_uninstalled_cli_dir = join_paths(meson.current_build_dir(), 'src', 'tracker') -diff --git a/src/libtracker-common/meson.build b/src/libtracker-common/meson.build -index 9355d1c..cdbc05f 100644 ---- a/src/libtracker-common/meson.build -+++ b/src/libtracker-common/meson.build -@@ -51,10 +51,10 @@ libtracker_common = static_library('tracker-common', - dependencies: [tracker_common_dependencies, gmodule], - c_args: [ - '-DPRIVATE_LIBDIR="@0@"'.format(tracker_internal_libs_dir), -- '-DBUILD_LIBDIR="@0@"'.format(meson.current_build_dir()), -+ '-DBUILD_LIBDIR="@0@"'.format('/usr/src/debug/tracker'), - # Global build root is required to detect noinst situations (tests/introspection), - # event when built as a subproject -- '-DBUILDROOT="@0@"'.format(meson.global_build_root()), -+ '-DBUILDROOT="@0@"'.format('/usr/src/debug/tracker'), - ] + tracker_c_args, - include_directories: [configinc, srcinc], - gnu_symbol_visibility: 'hidden', -diff --git a/src/libtracker-sparql/meson.build b/src/libtracker-sparql/meson.build -index 4143eac..b73f1c9 100644 ---- a/src/libtracker-sparql/meson.build -+++ b/src/libtracker-sparql/meson.build -@@ -98,10 +98,10 @@ libtracker_sparql_private = static_library('tracker-sparql-private', - c_args: [ - '-include', 'libtracker-sparql/tracker-private.h', - '-DPRIVATE_LIBDIR="@0@"'.format(tracker_internal_libs_dir), -- '-DBUILD_LIBDIR="@0@"'.format(meson.current_build_dir()), -+ '-DBUILD_LIBDIR="@0@"'.format('/usr/src/debug/tracker'), - # Global build root is required to detect noinst situations (tests/introspection), - # event when built as a subproject -- '-DBUILDROOT="@0@"'.format(meson.global_build_root()), -+ '-DBUILDROOT="@0@"'.format('/usr/src/debug/tracker'), - ] + tracker_c_args, - - dependencies: [libtracker_sparql_dependencies, gvdb_dep], diff --git a/meta-gnome/recipes-gnome/tracker/tracker_3.7.3.bb b/meta-gnome/recipes-gnome/tracker/tracker_3.7.3.bb deleted file mode 100644 index 885f3515da..0000000000 --- a/meta-gnome/recipes-gnome/tracker/tracker_3.7.3.bb +++ /dev/null @@ -1,59 +0,0 @@ -SUMMARY = "Tracker is a file search engine" -LICENSE = "GPL-2.0-only & LGPL-2.1-only" -LIC_FILES_CHKSUM = " \ - file://COPYING.GPL;md5=ee31012bf90e7b8c108c69f197f3e3a4 \ - file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \ -" - -DEPENDS = " \ - dbus-native \ - python3-pygobject-native \ - glib-2.0 \ - sqlite3 \ - libarchive \ - dbus \ - icu \ - json-glib \ - libsoup-3.0 \ - libstemmer \ -" - - -inherit gettext gnomebase gobject-introspection vala gtk-doc bash-completion python3native - -SRC_URI += "file://0001-fix-reproducibility.patch" -SRC_URI[archive.sha256sum] = "ab3d4a50937e04c5ed7846f6dbb999e2909819402f389ca592ee6b77dd28d1f9" - -# text search is not an option anymore and requires sqlite3 build with -# PACKAGECONFIG[fts5] set (default) - -# set required cross property sqlite3_has_fts5 -do_write_config[vardeps] += "PACKAGECONFIG" -do_write_config:append() { - echo "[properties]" > ${WORKDIR}/meson-tracker.cross - echo "sqlite3_has_fts5 = 'true'" >> ${WORKDIR}/meson-tracker.cross -} - -EXTRA_OEMESON = " \ - --cross-file ${WORKDIR}/meson-tracker.cross \ - -Dman=false \ - -Dsystemd_user_services=${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)} \ - -Dsystemd_user_services_dir=${systemd_user_unitdir} \ - -Dsoup=soup3 \ - ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Dvapi=enabled', '-Dvapi=disabled', d)} \ -" - -do_install:prepend() { - sed -i -e 's|${B}/../${PN}-${PV}|${TARGET_DBGSRC_DIR}|g' ${B}/src/libtracker-sparql/tracker-sparql-enum-types.c - sed -i -e 's|${B}/../${PN}-${PV}|${TARGET_DBGSRC_DIR}|g' ${B}/src/libtracker-sparql/core/tracker-data-enum-types.c -} - -GIR_MESON_ENABLE_FLAG = 'enabled' -GIR_MESON_DISABLE_FLAG = 'disabled' - -FILES:${PN} += " \ - ${datadir}/dbus-1 \ - ${datadir}/tracker3 \ - ${libdir}/tracker-3.0 \ - ${systemd_user_unitdir} \ -" -- cgit v1.2.3-54-g00ecf