diff mbox series

[meta-oe,2/2] zsh: make libpcre2 a PACKAGECONFIG

Message ID 20261102103459.3625067-2-sean@geanix.com
State Under Review
Headers show
Series [meta-oe,1/2] zsh: make gdbm a PACKAGECONFIG | expand

Commit Message

Sean Nyekjaer Nov. 2, 2026, 10:34 a.m. UTC
libpcre2 was always in DEPENDS. Move it to a PACKAGECONFIG, enabled
by default, so it can be dropped.

Signed-off-by: Sean Nyekjaer <sean@geanix.com>
---
 meta-oe/recipes-shells/zsh/zsh_5.9.2.bb | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Khem Raj Nov. 3, 2026, 3:15 a.m. UTC | #1
On Mon, Nov 2, 2026 at 2:35 AM Sean Nyekjaer via openembedded-devel <sean=
geanix.com@lists.openembedded.org> wrote:

> libpcre2 was always in DEPENDS. Move it to a PACKAGECONFIG, enabled
> by default, so it can be dropped.
>
> Signed-off-by: Sean Nyekjaer <sean@geanix.com>
> ---
>  meta-oe/recipes-shells/zsh/zsh_5.9.2.bb | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/meta-oe/recipes-shells/zsh/zsh_5.9.2.bb
> b/meta-oe/recipes-shells/zsh/zsh_5.9.2.bb
> index 47b9bfc18f..16a769612c 100644
> --- a/meta-oe/recipes-shells/zsh/zsh_5.9.2.bb
> +++ b/meta-oe/recipes-shells/zsh/zsh_5.9.2.bb
> @@ -8,7 +8,7 @@ SECTION = "base/shell"
>  LICENSE = "LicenseRef-zsh"
>  LIC_FILES_CHKSUM = "file://LICENCE;md5=1a4c4cda3e8096d2fd483ff2f4514fec"
>
> -DEPENDS = "ncurses bison-native libcap libpcre2 groff-native"
> +DEPENDS = "ncurses bison-native libcap groff-native"
>
>  SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${PV}/${BP}.tar.xz"
>  SRC_URI[sha256sum] =
> "36fa734374b44783582cec09bcd67822e2f992c779ec1624ab5596df078d2f81"
> @@ -44,7 +44,9 @@ ALTERNATIVE_LINK_NAME[sh] = "${base_bindir}/sh"
>  ALTERNATIVE_TARGET[sh] = "${base_bindir}/${BPN}"
>  ALTERNATIVE_PRIORITY = "90"
>
> +PACKAGECONFIG ??= "pcre"
>  PACKAGECONFIG[gdbm] = "--enable-gdbm,--disable-gdbm,gdbm"
> +PACKAGECONFIG[pcre] = "--enable-pcre,--disable-pcre,libpcre2"
>

zsh/pcre module is link=dynamic only and the recipe uses --disable-dynamic,
so the module is not built as such.

Making pcre a PACKAGECONFIG enabled by default, started passing
--enable-pcre, which zsh never got before (its default is off). configure
then runs pcre2-config, but libpcre2 inherits binconfig-disabled, so
`pcre2-config --cflags` returns bogus stuff. One can fix that by using
pkgconfig
or writing a small wrapper for pcre2-config using pkgconfig but servees no
point if dynamic modules are disabled.

Other patch to turn gdbm into a packageconfig also has same problem.


>  # Needed for manpages.bbclass, but they're always installed
>  PACKAGECONFIG[manpages] = ""
>
> --
> 2.55.0
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#131748):
> https://lists.openembedded.org/g/openembedded-devel/message/131748
> Mute This Topic: https://lists.openembedded.org/mt/122055384/1997914
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [
> raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
Sean Nyekjaer Nov. 3, 2026, 8:48 a.m. UTC | #2
> On 3 Nov 2026, at 04.15, Khem Raj <raj.khem@gmail.com> wrote:
> 
> 
> 
> On Mon, Nov 2, 2026 at 2:35 AM Sean Nyekjaer via openembedded-devel <sean=geanix.com@lists.openembedded.org> wrote:
> libpcre2 was always in DEPENDS. Move it to a PACKAGECONFIG, enabled
> by default, so it can be dropped.
> 
> Signed-off-by: Sean Nyekjaer <sean@geanix.com>
> ---
>  meta-oe/recipes-shells/zsh/zsh_5.9.2.bb | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/meta-oe/recipes-shells/zsh/zsh_5.9.2.bb b/meta-oe/recipes-shells/zsh/zsh_5.9.2.bb
> index 47b9bfc18f..16a769612c 100644
> --- a/meta-oe/recipes-shells/zsh/zsh_5.9.2.bb
> +++ b/meta-oe/recipes-shells/zsh/zsh_5.9.2.bb
> @@ -8,7 +8,7 @@ SECTION = "base/shell"
>  LICENSE = "LicenseRef-zsh"
>  LIC_FILES_CHKSUM = "file://LICENCE;md5=1a4c4cda3e8096d2fd483ff2f4514fec"
> 
> -DEPENDS = "ncurses bison-native libcap libpcre2 groff-native"
> +DEPENDS = "ncurses bison-native libcap groff-native"
> 
>  SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${PV}/${BP}.tar.xz"
>  SRC_URI[sha256sum] = "36fa734374b44783582cec09bcd67822e2f992c779ec1624ab5596df078d2f81"
> @@ -44,7 +44,9 @@ ALTERNATIVE_LINK_NAME[sh] = "${base_bindir}/sh"
>  ALTERNATIVE_TARGET[sh] = "${base_bindir}/${BPN}"
>  ALTERNATIVE_PRIORITY = "90"
> 
> +PACKAGECONFIG ??= "pcre"
>  PACKAGECONFIG[gdbm] = "--enable-gdbm,--disable-gdbm,gdbm"
> +PACKAGECONFIG[pcre] = "--enable-pcre,--disable-pcre,libpcre2"
> 
> zsh/pcre module is link=dynamic only and the recipe uses --disable-dynamic,
> so the module is not built as such. 
> 
> Making pcre a PACKAGECONFIG enabled by default, started passing
> --enable-pcre, which zsh never got before (its default is off). configure
> then runs pcre2-config, but libpcre2 inherits binconfig-disabled, so
> `pcre2-config --cflags` returns bogus stuff. One can fix that by using pkgconfig
> or writing a small wrapper for pcre2-config using pkgconfig but servees no
> point if dynamic modules are disabled.
> 
> Other patch to turn gdbm into a packageconfig also has same problem.

What would be your solution here? Would you prefer the pkgconfig solution?
Should we remove is "—disable-dynamic” if one is enabling pcre2?

gdbm is off by default. So should we remove it from DEPENDS and remove “—disable-gdbm” ?

/Sean

>    # Needed for manpages.bbclass, but they're always installed
>  PACKAGECONFIG[manpages] = ""
> 
> -- 
> 2.55.0
> 
> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#131748): https://lists.openembedded.org/g/openembedded-devel/message/131748
> Mute This Topic: https://lists.openembedded.org/mt/122055384/1997914
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Khem Raj Nov. 3, 2026, 2:46 p.m. UTC | #3
On Tue, Nov 3, 2026 at 12:49 AM Sean Nyekjaer <sean@geanix.com> wrote:

>
>
> > On 3 Nov 2026, at 04.15, Khem Raj <raj.khem@gmail.com> wrote:
> >
> >
> >
> > On Mon, Nov 2, 2026 at 2:35 AM Sean Nyekjaer via openembedded-devel
> <sean=geanix.com@lists.openembedded.org> wrote:
> > libpcre2 was always in DEPENDS. Move it to a PACKAGECONFIG, enabled
> > by default, so it can be dropped.
> >
> > Signed-off-by: Sean Nyekjaer <sean@geanix.com>
> > ---
> >  meta-oe/recipes-shells/zsh/zsh_5.9.2.bb | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/meta-oe/recipes-shells/zsh/zsh_5.9.2.bb
> b/meta-oe/recipes-shells/zsh/zsh_5.9.2.bb
> > index 47b9bfc18f..16a769612c 100644
> > --- a/meta-oe/recipes-shells/zsh/zsh_5.9.2.bb
> > +++ b/meta-oe/recipes-shells/zsh/zsh_5.9.2.bb
> > @@ -8,7 +8,7 @@ SECTION = "base/shell"
> >  LICENSE = "LicenseRef-zsh"
> >  LIC_FILES_CHKSUM = "file://LICENCE;md5=1a4c4cda3e8096d2fd483ff2f4514fec"
> >
> > -DEPENDS = "ncurses bison-native libcap libpcre2 groff-native"
> > +DEPENDS = "ncurses bison-native libcap groff-native"
> >
> >  SRC_URI =
> "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${PV}/${BP}.tar.xz"
> >  SRC_URI[sha256sum] =
> "36fa734374b44783582cec09bcd67822e2f992c779ec1624ab5596df078d2f81"
> > @@ -44,7 +44,9 @@ ALTERNATIVE_LINK_NAME[sh] = "${base_bindir}/sh"
> >  ALTERNATIVE_TARGET[sh] = "${base_bindir}/${BPN}"
> >  ALTERNATIVE_PRIORITY = "90"
> >
> > +PACKAGECONFIG ??= "pcre"
> >  PACKAGECONFIG[gdbm] = "--enable-gdbm,--disable-gdbm,gdbm"
> > +PACKAGECONFIG[pcre] = "--enable-pcre,--disable-pcre,libpcre2"
> >
> > zsh/pcre module is link=dynamic only and the recipe uses
> --disable-dynamic,
> > so the module is not built as such.
> >
> > Making pcre a PACKAGECONFIG enabled by default, started passing
> > --enable-pcre, which zsh never got before (its default is off). configure
> > then runs pcre2-config, but libpcre2 inherits binconfig-disabled, so
> > `pcre2-config --cflags` returns bogus stuff. One can fix that by using
> pkgconfig
> > or writing a small wrapper for pcre2-config using pkgconfig but servees
> no
> > point if dynamic modules are disabled.
> >
> > Other patch to turn gdbm into a packageconfig also has same problem.
>
> What would be your solution here? Would you prefer the pkgconfig solution?
> Should we remove is "—disable-dynamic” if one is enabling pcre2?
>
>
yes pkfconfig is preferred way to tool the knob and perhaps enable dynamic
modules
but it would be good to know size/perf impact of doing it.


> gdbm is off by default. So should we remove it from DEPENDS and remove
> “—disable-gdbm” ?
>
> /Sean
>
> >    # Needed for manpages.bbclass, but they're always installed
> >  PACKAGECONFIG[manpages] = ""
> >
> > --
> > 2.55.0
> >
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#131748):
> https://lists.openembedded.org/g/openembedded-devel/message/131748
> > Mute This Topic: https://lists.openembedded.org/mt/122055384/1997914
> > Group Owner: openembedded-devel+owner@lists.openembedded.org
> > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [
> raj.khem@gmail.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
>
>
>
>
diff mbox series

Patch

diff --git a/meta-oe/recipes-shells/zsh/zsh_5.9.2.bb b/meta-oe/recipes-shells/zsh/zsh_5.9.2.bb
index 47b9bfc18f..16a769612c 100644
--- a/meta-oe/recipes-shells/zsh/zsh_5.9.2.bb
+++ b/meta-oe/recipes-shells/zsh/zsh_5.9.2.bb
@@ -8,7 +8,7 @@  SECTION = "base/shell"
 LICENSE = "LicenseRef-zsh"
 LIC_FILES_CHKSUM = "file://LICENCE;md5=1a4c4cda3e8096d2fd483ff2f4514fec"
 
-DEPENDS = "ncurses bison-native libcap libpcre2 groff-native"
+DEPENDS = "ncurses bison-native libcap groff-native"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${PV}/${BP}.tar.xz"
 SRC_URI[sha256sum] = "36fa734374b44783582cec09bcd67822e2f992c779ec1624ab5596df078d2f81"
@@ -44,7 +44,9 @@  ALTERNATIVE_LINK_NAME[sh] = "${base_bindir}/sh"
 ALTERNATIVE_TARGET[sh] = "${base_bindir}/${BPN}"
 ALTERNATIVE_PRIORITY = "90"
 
+PACKAGECONFIG ??= "pcre"
 PACKAGECONFIG[gdbm] = "--enable-gdbm,--disable-gdbm,gdbm"
+PACKAGECONFIG[pcre] = "--enable-pcre,--disable-pcre,libpcre2"
 # Needed for manpages.bbclass, but they're always installed
 PACKAGECONFIG[manpages] = ""