* [PATCH v2 1/4] libpsl: upgrade 0.22.0 -> 0.23.0
@ 2026-07-22 21:57 Khem Raj
2026-07-22 21:57 ` [PATCH v2 2/4] libpsl: convert to meson build system Khem Raj
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Khem Raj @ 2026-07-22 21:57 UTC (permalink / raw)
To: openembedded-core; +Cc: Khem Raj
License-Update: copyright notice reworded, MIT terms unchanged
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
---
.../libpsl/{libpsl_0.22.0.bb => libpsl_0.23.0.bb} | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
rename meta/recipes-support/libpsl/{libpsl_0.22.0.bb => libpsl_0.23.0.bb} (79%)
diff --git a/meta/recipes-support/libpsl/libpsl_0.22.0.bb b/meta/recipes-support/libpsl/libpsl_0.23.0.bb
similarity index 79%
rename from meta/recipes-support/libpsl/libpsl_0.22.0.bb
rename to meta/recipes-support/libpsl/libpsl_0.23.0.bb
index 1e5e9c74b4..793fe0d73b 100644
--- a/meta/recipes-support/libpsl/libpsl_0.22.0.bb
+++ b/meta/recipes-support/libpsl/libpsl_0.23.0.bb
@@ -7,13 +7,13 @@ HOMEPAGE = "https://rockdaboot.github.io/libpsl/"
BUGTRACKER = "https://github.com/rockdaboot/libpsl/issues"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=9f9e317096db2a598fc44237c5b8a4f7 \
- file://COPYING;md5=9f9e317096db2a598fc44237c5b8a4f7 \
+LIC_FILES_CHKSUM = "file://LICENSE;md5=49296c1806ef92c28297fb264163d81e \
+ file://COPYING;md5=49296c1806ef92c28297fb264163d81e \
"
SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BP}.tar.gz \
"
-SRC_URI[sha256sum] = "c45c3aa17576b99873e05a9b09a44041b065bbfa390e6d474d06fbfaeb9c7722"
+SRC_URI[sha256sum] = "f39b9631b3d369a21259ea4654f8875c0ec6995ce9551c0eb5d423e4c011f911"
GITHUB_BASE_URI = "https://github.com/rockdaboot/libpsl/releases"
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v2 2/4] libpsl: convert to meson build system
2026-07-22 21:57 [PATCH v2 1/4] libpsl: upgrade 0.22.0 -> 0.23.0 Khem Raj
@ 2026-07-22 21:57 ` Khem Raj
2026-07-22 21:57 ` [PATCH v2 3/4] libpsl: Do not embed the build path in suffixes_dafsa.h Khem Raj
2026-07-22 21:57 ` [PATCH v2 4/4] libpsl: Fix meson configure failure when docs are enabled Khem Raj
2 siblings, 0 replies; 4+ messages in thread
From: Khem Raj @ 2026-07-22 21:57 UTC (permalink / raw)
To: openembedded-core; +Cc: Khem Raj
Switch the recipe from autotools to meson:
- inherit meson instead of autotools; drop gettext (the meson build has
no i18n)
- Map the PACKAGECONFIG knobs to meson options: --enable-runtime=X
becomes -Druntime=X, and builtin PSL data stays enabled via meson's
default (-Dbuiltin=true), matching the previous --enable-builtin.
- Disable the bundled tests and fuzzers with -Dtests=false.
- The gtk-doc class drives -Ddocs on its own via GTKDOC_MESON_OPTION.
Unlike the autotools tarball, meson regenerates psl.1 at build time and
stamps it with `date +%B %Y`, which is not reproducible. Backport the
proposed upstream fix to honour SOURCE_DATE_EPOCH.
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
---
v2: Inherit manpages
.../0001-Support-reproducible-builds.patch | 50 +++++++++++++++++++
meta/recipes-support/libpsl/libpsl_0.23.0.bb | 11 ++--
2 files changed, 57 insertions(+), 4 deletions(-)
create mode 100644 meta/recipes-support/libpsl/libpsl/0001-Support-reproducible-builds.patch
diff --git a/meta/recipes-support/libpsl/libpsl/0001-Support-reproducible-builds.patch b/meta/recipes-support/libpsl/libpsl/0001-Support-reproducible-builds.patch
new file mode 100644
index 0000000000..16a3ed37db
--- /dev/null
+++ b/meta/recipes-support/libpsl/libpsl/0001-Support-reproducible-builds.patch
@@ -0,0 +1,50 @@
+From deaa74f9dea55d4dbf1ef98879049c02d23749e8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tim=20R=C3=BChsen?= <tim.ruehsen@gmx.de>
+Date: Thu, 16 Jul 2026 13:20:21 +0200
+Subject: [PATCH] Support reproducible builds
+
+Co-authored-by: Chris Lamb <lamby@debian.org>
+Upstream-Status: Backport [https://github.com/rockdaboot/libpsl/commit/1d28619bde704d5b5037e0680e72c1c326663234]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 4 ++--
+ meson.build | 11 ++++++++++-
+ 2 files changed, 12 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 8b7ccc8..3f8158d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -42,8 +42,8 @@ AC_SUBST([LIBPSL_VERSION_MAJOR], [$(echo $VERSION | cut -d'.' -f1)])
+ AC_SUBST([LIBPSL_VERSION_MINOR], [$(echo $VERSION | cut -d'.' -f2)])
+ AC_SUBST([LIBPSL_VERSION_PATCH], [$(echo $VERSION | cut -d'.' -f3)])
+ AC_SUBST([LIBPSL_VERSION_NUMBER], [$(printf '0x%02x%02x%02x' $LIBPSL_VERSION_MAJOR $LIBPSL_VERSION_MINOR $LIBPSL_VERSION_PATCH)])
+-AC_SUBST([COPYRIGHT_MONTH], [$(date +%B)])
+-AC_SUBST([COPYRIGHT_YEAR], [$(date +%Y)])
++AC_SUBST([COPYRIGHT_MONTH], [m4_esyscmd([LC_ALL=C date -u -d "@$SOURCE_DATE_EPOCH" +%B 2>/dev/null || LC_ALL=C date -u -r "$SOURCE_DATE_EPOCH" +%B 2>/dev/null || LC_ALL=C date -u +%B])])
++AC_SUBST([COPYRIGHT_YEAR], [m4_esyscmd([LC_ALL=Cdate -u -d "@$SOURCE_DATE_EPOCH" +%Y 2>/dev/null || LC_ALL=C date -u -r "$SOURCE_DATE_EPOCH" +%Y 2>/dev/null || LC_ALL=C date -u +%Y])])
+ AC_CONFIG_FILES([include/libpsl.h tools/psl.1])
+
+ dnl
+diff --git a/meson.build b/meson.build
+index 1e46d06..06c36c6 100644
+--- a/meson.build
++++ b/meson.build
+@@ -157,7 +157,16 @@ endif
+ # Shared configuration data for copyright date and version
+ _cdata = configuration_data()
+ _cdata.set('PACKAGE_VERSION', meson.project_version())
+-copyright_date = run_command(['date', '+%B %Y'], check: true).stdout().strip()
++date_exe = find_program('date')
++epoch_cmd = run_command('sh', '-c', 'LC_ALL=C echo "${SOURCE_DATE_EPOCH:-$(date +%s)}"', check: true)
++source_date_epoch = epoch_cmd.stdout().strip()
++copyright_cmd = run_command('sh', '-c',
++ 'date -u -d "@' + source_date_epoch + '" "+%B %Y" 2>/dev/null || ' +
++ 'date -u -r "' + source_date_epoch + '" "+%B %Y" 2>/dev/null || ' +
++ 'date -u "+%B %Y"',
++ check: true
++)
++copyright_date = copyright_cmd.stdout().strip()
+ _cdata.set('COPYRIGHT_MONTH', copyright_date.split()[0])
+ _cdata.set('COPYRIGHT_YEAR', copyright_date.split()[1])
+
diff --git a/meta/recipes-support/libpsl/libpsl_0.23.0.bb b/meta/recipes-support/libpsl/libpsl_0.23.0.bb
index 793fe0d73b..f915fae621 100644
--- a/meta/recipes-support/libpsl/libpsl_0.23.0.bb
+++ b/meta/recipes-support/libpsl/libpsl_0.23.0.bb
@@ -12,15 +12,18 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=49296c1806ef92c28297fb264163d81e \
"
SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BP}.tar.gz \
+ file://0001-Support-reproducible-builds.patch \
"
SRC_URI[sha256sum] = "f39b9631b3d369a21259ea4654f8875c0ec6995ce9551c0eb5d423e4c011f911"
GITHUB_BASE_URI = "https://github.com/rockdaboot/libpsl/releases"
-inherit autotools gettext gtk-doc manpages pkgconfig lib_package github-releases
+inherit meson gtk-doc pkgconfig lib_package github-releases manpages
+
+# Do not build the bundled tests and fuzzers.
+EXTRA_OEMESON = "-Dtests=false"
PACKAGECONFIG ?= "idn2"
-PACKAGECONFIG[manpages] = "--enable-man,--disable-man,libxslt-native"
-PACKAGECONFIG[icu] = "--enable-runtime=libicu --enable-builtin=libicu,,icu"
-PACKAGECONFIG[idn2] = "--enable-runtime=libidn2 --enable-builtin=libidn2,,libidn2 libunistring"
+PACKAGECONFIG[icu] = "-Druntime=libicu,,icu"
+PACKAGECONFIG[idn2] = "-Druntime=libidn2,,libidn2 libunistring"
BBCLASSEXTEND = "native nativesdk"
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v2 3/4] libpsl: Do not embed the build path in suffixes_dafsa.h
2026-07-22 21:57 [PATCH v2 1/4] libpsl: upgrade 0.22.0 -> 0.23.0 Khem Raj
2026-07-22 21:57 ` [PATCH v2 2/4] libpsl: convert to meson build system Khem Raj
@ 2026-07-22 21:57 ` Khem Raj
2026-07-22 21:57 ` [PATCH v2 4/4] libpsl: Fix meson configure failure when docs are enabled Khem Raj
2 siblings, 0 replies; 4+ messages in thread
From: Khem Raj @ 2026-07-22 21:57 UTC (permalink / raw)
To: openembedded-core; +Cc: Khem Raj
The generated src/suffixes_dafsa.h records the public suffix list it was
built from in _psl_filename[]. meson feeds psl-make-dafsa an absolute
input path, so the full build directory gets baked into the header and,
through it, into the library and its -src/-dbg packages. On an
autobuilder whose build tree lives under $HOME/TMPDIR this trips the
buildpaths QA check with references to both TMPDIR and the build host
HOME directory, and it makes the build non-reproducible.
The absolute path is useless on the target: it is only consumed by
psl_builtin_outdated() to stat() the source list, which never exists on
the running system. psl_builtin_filename() is documented to return "the
file name", so embed only the basename.
Fixes
ERROR: libpsl-0.23.0-r0 do_package_qa: QA Issue: File /usr/src/debug/libpsl/0.23.0/src/suffixes_dafsa.h in package libpsl-src contains reference to TMPDIR [buildpaths]
ERROR: libpsl-0.23.0-r0 do_package_qa: QA Issue: File /usr/src/debug/libpsl/0.23.0/src/suffixes_dafsa.h in package libpsl-src contains a reference to the build host HOME directory. If upstream hardcodes a directory path that matches your home, you can set OEQA_BUILDPATHS_SKIP = "/srv/pokybuild" in the recipe. [buildpaths]
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
---
...mbed-only-the-basename-of-the-input-.patch | 46 +++++++++++++++++++
meta/recipes-support/libpsl/libpsl_0.23.0.bb | 1 +
2 files changed, 47 insertions(+)
create mode 100644 meta/recipes-support/libpsl/libpsl/0002-psl-make-dafsa-embed-only-the-basename-of-the-input-.patch
diff --git a/meta/recipes-support/libpsl/libpsl/0002-psl-make-dafsa-embed-only-the-basename-of-the-input-.patch b/meta/recipes-support/libpsl/libpsl/0002-psl-make-dafsa-embed-only-the-basename-of-the-input-.patch
new file mode 100644
index 0000000000..32dfc02983
--- /dev/null
+++ b/meta/recipes-support/libpsl/libpsl/0002-psl-make-dafsa-embed-only-the-basename-of-the-input-.patch
@@ -0,0 +1,46 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 20 Jul 2026 09:00:00 -0700
+Subject: [PATCH] psl-make-dafsa: embed only the basename of the input file
+
+The generated suffixes_dafsa.h records the path of the public suffix
+list it was built from in _psl_filename[]. meson passes this input as an
+absolute path (meson.current_source_dir()/list/public_suffix_list.dat),
+so the full build directory ends up baked into the header and, through
+it, into the compiled library and its -src/-dbg packages. This is not
+reproducible and trips the OE buildpaths QA check (references to TMPDIR
+and to the build host HOME directory) when the build tree lives under
+those prefixes on an autobuilder.
+
+The absolute path is useless on the target anyway: it is only consumed
+by psl_builtin_outdated(), which stat()s _psl_filename and compares its
+mtime; the build-host path never exists on the running system so the
+stat always fails. psl_builtin_filename() is documented to return "the
+file name of the Public Suffix List file", so a basename is in fact the
+more faithful value.
+
+Embed only os.path.basename() of the input. The unmodified path is still
+used to open, stat and checksum the file, so only the leaked string
+changes.
+
+Upstream-Status: Backport [https://github.com/rockdaboot/libpsl/commit/b16a2c4d66e94acc3388088c7a13ae62dbacb71d]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/psl-make-dafsa | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/psl-make-dafsa b/src/psl-make-dafsa
+index 1111111..2222222 100755
+--- a/src/psl-make-dafsa
++++ b/src/psl-make-dafsa
+@@ -518,7 +518,7 @@ def to_cxx_plus(data, codecs):
+ text += b'static int _psl_nexceptions = %d;\n' % psl_nexceptions
+ text += b'static int _psl_nwildcards = %d;\n' % psl_nwildcards
+ text += b'static const char _psl_sha1_checksum[] = "%s";\n' % bytes(sha1_file(psl_input_file), **codecs)
+- text += b'static const char _psl_filename[] = "%s";\n' % bytes(psl_input_file, **codecs)
++ text += b'static const char _psl_filename[] = "%s";\n' % bytes(os.path.basename(psl_input_file), **codecs)
+ return text
+
+ def words_to_whatever(words, converter, utf_mode, codecs):
+--
+2.51.0
diff --git a/meta/recipes-support/libpsl/libpsl_0.23.0.bb b/meta/recipes-support/libpsl/libpsl_0.23.0.bb
index f915fae621..6026adad9f 100644
--- a/meta/recipes-support/libpsl/libpsl_0.23.0.bb
+++ b/meta/recipes-support/libpsl/libpsl_0.23.0.bb
@@ -13,6 +13,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=49296c1806ef92c28297fb264163d81e \
SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BP}.tar.gz \
file://0001-Support-reproducible-builds.patch \
+ file://0002-psl-make-dafsa-embed-only-the-basename-of-the-input-.patch \
"
SRC_URI[sha256sum] = "f39b9631b3d369a21259ea4654f8875c0ec6995ce9551c0eb5d423e4c011f911"
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v2 4/4] libpsl: Fix meson configure failure when docs are enabled
2026-07-22 21:57 [PATCH v2 1/4] libpsl: upgrade 0.22.0 -> 0.23.0 Khem Raj
2026-07-22 21:57 ` [PATCH v2 2/4] libpsl: convert to meson build system Khem Raj
2026-07-22 21:57 ` [PATCH v2 3/4] libpsl: Do not embed the build path in suffixes_dafsa.h Khem Raj
@ 2026-07-22 21:57 ` Khem Raj
2 siblings, 0 replies; 4+ messages in thread
From: Khem Raj @ 2026-07-22 21:57 UTC (permalink / raw)
To: openembedded-core; +Cc: Khem Raj
libpsl 0.23.0 ships docs/libpsl/meson.build referencing an undefined
"cdata" configuration object; the top-level meson.build only defines
"_cdata". meson shares scope across subdir(), so with docs enabled (which
OE does via gtk-doc) do_configure fails:
docs/libpsl/meson.build:7:20: ERROR: Unknown variable "cdata".
Backport the upstream one-line fix to reference "_cdata", which already
carries LIBPSL_VERSION for version.xml.in.
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
---
...ta-to-_cdata-in-docs-libpsl-meson.bu.patch | 38 +++++++++++++++++++
meta/recipes-support/libpsl/libpsl_0.23.0.bb | 1 +
2 files changed, 39 insertions(+)
create mode 100644 meta/recipes-support/libpsl/libpsl/0003-meson-rename-cdata-to-_cdata-in-docs-libpsl-meson.bu.patch
diff --git a/meta/recipes-support/libpsl/libpsl/0003-meson-rename-cdata-to-_cdata-in-docs-libpsl-meson.bu.patch b/meta/recipes-support/libpsl/libpsl/0003-meson-rename-cdata-to-_cdata-in-docs-libpsl-meson.bu.patch
new file mode 100644
index 0000000000..8aecf34e4a
--- /dev/null
+++ b/meta/recipes-support/libpsl/libpsl/0003-meson-rename-cdata-to-_cdata-in-docs-libpsl-meson.bu.patch
@@ -0,0 +1,38 @@
+From 3e02f2cd038209e873c970709a9eeeead4d70afa Mon Sep 17 00:00:00 2001
+From: Tim Rühsen <tim.ruehsen@gmx.de>
+Date: Mon, 22 Jul 2026 09:00:00 +0200
+Subject: [PATCH] meson: also rename cdata to _cdata in docs/libpsl/meson.build
+
+The 0.23.0 release ships docs/libpsl/meson.build referencing a
+configuration data object named "cdata", but the top-level meson.build
+(and include/meson.build, which sets LIBPSL_VERSION on it) only defines
+"_cdata". Meson shares the interpreter scope across subdir(), so once the
+docs are enabled (get_option('docs'), which OE turns on via gtk-doc) the
+configure step fails with:
+
+ docs/libpsl/meson.build:7:20: ERROR: Unknown variable "cdata".
+
+Reference the existing "_cdata", which already carries LIBPSL_VERSION as
+needed by version.xml.in.
+
+Upstream-Status: Backport [https://github.com/rockdaboot/libpsl/commit/3e02f2cd038209e873c970709a9eeeead4d70afa]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ docs/libpsl/meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/docs/libpsl/meson.build b/docs/libpsl/meson.build
+index 1111111..2222222 100644
+--- a/docs/libpsl/meson.build
++++ b/docs/libpsl/meson.build
+@@ -4,7 +4,7 @@ if get_option('docs')
+ configure_file(
+ input : 'version.xml.in',
+ output : 'version.xml',
+- configuration : cdata)
++ configuration : _cdata)
+
+ docs = gnome.gtkdoc('libpsl',
+ main_sgml: 'libpsl-docs.sgml',
+--
+2.51.0
diff --git a/meta/recipes-support/libpsl/libpsl_0.23.0.bb b/meta/recipes-support/libpsl/libpsl_0.23.0.bb
index 6026adad9f..3b3c4aa32b 100644
--- a/meta/recipes-support/libpsl/libpsl_0.23.0.bb
+++ b/meta/recipes-support/libpsl/libpsl_0.23.0.bb
@@ -14,6 +14,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=49296c1806ef92c28297fb264163d81e \
SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BP}.tar.gz \
file://0001-Support-reproducible-builds.patch \
file://0002-psl-make-dafsa-embed-only-the-basename-of-the-input-.patch \
+ file://0003-meson-rename-cdata-to-_cdata-in-docs-libpsl-meson.bu.patch \
"
SRC_URI[sha256sum] = "f39b9631b3d369a21259ea4654f8875c0ec6995ce9551c0eb5d423e4c011f911"
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-07-22 21:57 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-22 21:57 [PATCH v2 1/4] libpsl: upgrade 0.22.0 -> 0.23.0 Khem Raj
2026-07-22 21:57 ` [PATCH v2 2/4] libpsl: convert to meson build system Khem Raj
2026-07-22 21:57 ` [PATCH v2 3/4] libpsl: Do not embed the build path in suffixes_dafsa.h Khem Raj
2026-07-22 21:57 ` [PATCH v2 4/4] libpsl: Fix meson configure failure when docs are enabled Khem Raj
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.