Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Martin Jansa <martin.jansa@gmail.com>
To: Adrian Ratiu <adrian.ratiu@collabora.com>
Cc: Patches and discussions about the oe-core layer
	<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH] opkg/package/rootfs_ipk: allow overwriting OPKGLIBDIR
Date: Wed, 17 Jul 2019 16:41:01 +0200	[thread overview]
Message-ID: <20190717144101.GB2242@jama> (raw)
In-Reply-To: <87a7dcg2yt.fsf@collabora.com>

[-- Attachment #1: Type: text/plain, Size: 5039 bytes --]

On Wed, Jul 17, 2019 at 05:17:30PM +0300, Adrian Ratiu wrote:
> On Wed, 17 Jul 2019, Martin Jansa <martin.jansa@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@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@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@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@lists.openembedded.org
> >> >> http://lists.openembedded.org/mailman/listinfo/openembedded-core
> >> >>
> >
> > -- 
> > Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 201 bytes --]

  reply	other threads:[~2019-07-17 14:40 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-16 21:55 [PATCH] opkg/package/rootfs_ipk: allow overwriting OPKGLIBDIR Adrian Ratiu
2019-07-17 11:12 ` Martin Jansa
2019-07-17 11:52   ` Adrian Ratiu
2019-07-17 12:17     ` Martin Jansa
2019-07-17 14:17       ` Adrian Ratiu
2019-07-17 14:41         ` Martin Jansa [this message]
2019-07-17 14:43           ` Martin Jansa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190717144101.GB2242@jama \
    --to=martin.jansa@gmail.com \
    --cc=adrian.ratiu@collabora.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox