[OE-core] [PATCH] opkg/package/rootfs_ipk: allow overwriting OPKGLIBDIR

Martin Jansa martin.jansa at gmail.com
Wed Jul 17 14:41:01 UTC 2019


On Wed, Jul 17, 2019 at 05:17:30PM +0300, Adrian Ratiu wrote:
> On Wed, 17 Jul 2019, Martin Jansa <martin.jansa at gmail.com> wrote:
> > On Wed, Jul 17, 2019 at 02:52:21PM +0300, Adrian Ratiu wrote: 
> >> Hi  On Wed, 17 Jul 2019, Martin Jansa <martin.jansa at gmail.com> 
> >> wrote: 
> >> > Why don't you overwrite it with an override? We're doing that 
> >> > for years without any issues. 
> >>  You mean a distro-wide override in a .conf? 
> > 
> > yes 
> > 
> >> Can you please point to an example? 
> > 
> > https://github.com/webosose/meta-webosose/blob/master/meta-webos/conf/distro/include/webos.inc#L256 
> 
> Thanks, I didn't know about the _forcevariable override.
> 
> Is using _forcevariable the preferred method to do this though 
> instead of using ??= ?
> 
> The reference manual says it's not recommended and a "worst case" 
> solution...

You can use any other override from OVERRIDES variables which covers all
cases you want to cover.

I was using ${DISTRO} before, but switched to forcevariable later,
because I needed to cover more DISTROs at the same time.

https://github.com/openwebos/meta-webos/commit/8c79f89fac09364e5ce494ee5fab133e7734583f#diff-e2b7938279c801074fb285c60acf2228

forcevariable is OK as long as you know what you're doing, if your
distro really enforces different OPKGLIBDIR for good reason, then the
users probably won't ever need to override it again locally.

Using ??= for every variable, just because someone somewhere might
prefer different value doesn't look much better IMHO.

Cheers,

> >
> >> > On Wed, Jul 17, 2019 at 12:01 AM Adrian Ratiu <adrian.ratiu at collabora.com>
> >> > wrote:
> >> >
> >> >> Some distributions for various reasons (like for example mounting a
> >> >> tmpfs over /var at runtime) can't use /var/lib to store the opkg
> >> >> metadata, so a different path is required to have a functioning
> >> >> package manager.
> >> >>
> >> >> ${localstatedir} can't be modified to something other than the
> >> >> hardcoded value in bitbake.conf because other recipes depending on it
> >> >> will fail to install.
> >> >>
> >> >> So the only recourse, which is also the least invasive, is to allow
> >> >> distros to overwrite the OPKGLIBDIR variable just like they are also
> >> >> allowed to overwrite OPKGBUILDCMD.
> >> >>
> >> >> Signed-off-by: Adrian Ratiu <adrian.ratiu at collabora.com>
> >> >> ---
> >> >>  meta/classes/package_ipk.bbclass         | 2 +-
> >> >>  meta/classes/rootfs_ipk.bbclass          | 2 +-
> >> >>  meta/recipes-devtools/opkg/opkg_0.4.1.bb | 2 +-
> >> >>  3 files changed, 3 insertions(+), 3 deletions(-)
> >> >>
> >> >> diff --git a/meta/classes/package_ipk.bbclass
> >> >> b/meta/classes/package_ipk.bbclass
> >> >> index d1b317b42b..9f9da2f91d 100644
> >> >> --- a/meta/classes/package_ipk.bbclass
> >> >> +++ b/meta/classes/package_ipk.bbclass
> >> >> @@ -14,7 +14,7 @@ OPKG_ARGS += "--force_postinstall
> >> >> --prefer-arch-to-version"
> >> >>  OPKG_ARGS += "${@['',
> >> >> '--no-install-recommends'][d.getVar("NO_RECOMMENDATIONS") == "1"]}"
> >> >>  OPKG_ARGS += "${@['', '--add-exclude ' + ' --add-exclude
> >> >> '.join((d.getVar('PACKAGE_EXCLUDE') or
> >> >> "").split())][(d.getVar("PACKAGE_EXCLUDE") or "").strip() != ""]}"
> >> >>
> >> >> -OPKGLIBDIR = "${localstatedir}/lib"
> >> >> +OPKGLIBDIR ??= "${localstatedir}/lib"
> >> >>
> >> >>  python do_package_ipk () {
> >> >>      workdir = d.getVar('WORKDIR')
> >> >> diff --git a/meta/classes/rootfs_ipk.bbclass
> >> >> b/meta/classes/rootfs_ipk.bbclass
> >> >> index aabc370cfc..e73d2bfdae 100644
> >> >> --- a/meta/classes/rootfs_ipk.bbclass
> >> >> +++ b/meta/classes/rootfs_ipk.bbclass
> >> >> @@ -21,7 +21,7 @@ OPKG_PREPROCESS_COMMANDS = ""
> >> >>
> >> >>  OPKG_POSTPROCESS_COMMANDS = ""
> >> >>
> >> >> -OPKGLIBDIR = "${localstatedir}/lib"
> >> >> +OPKGLIBDIR ??= "${localstatedir}/lib"
> >> >>
> >> >>  MULTILIBRE_ALLOW_REP = "${OPKGLIBDIR}/opkg|/usr/lib/opkg"
> >> >>
> >> >> diff --git a/meta/recipes-devtools/opkg/opkg_0.4.1.bb
> >> >> b/meta/recipes-devtools/opkg/opkg_0.4.1.bb
> >> >> index 8c48d3097c..c663eff13b 100644
> >> >> --- a/meta/recipes-devtools/opkg/opkg_0.4.1.bb
> >> >> +++ b/meta/recipes-devtools/opkg/opkg_0.4.1.bb
> >> >> @@ -28,7 +28,7 @@ PACKAGES =+ "libopkg"
> >> >>  inherit autotools pkgconfig systemd ptest
> >> >>
> >> >>  target_localstatedir := "${localstatedir}"
> >> >> -OPKGLIBDIR = "${target_localstatedir}/lib"
> >> >> +OPKGLIBDIR ??= "${target_localstatedir}/lib"
> >> >>
> >> >>  PACKAGECONFIG ??= "libsolv"
> >> >>
> >> >> --
> >> >> 2.22.0
> >> >>
> >> >> --
> >> >> _______________________________________________
> >> >> Openembedded-core mailing list
> >> >> Openembedded-core at lists.openembedded.org
> >> >> http://lists.openembedded.org/mailman/listinfo/openembedded-core
> >> >>
> >
> > -- 
> > Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20190717/12174e61/attachment.sig>


More information about the Openembedded-core mailing list