From: Robert Yang <liezhi.yang@windriver.com>
To: Paul Eggleton <paul.eggleton@linux.intel.com>
Cc: openembedded-devel@lists.openembedded.org
Subject: Re: [meta-oe] [PATCH] mariadb: drop anonymous function
Date: Sat, 20 Sep 2014 10:44:29 +0800 [thread overview]
Message-ID: <541CEA0D.9000901@windriver.com> (raw)
In-Reply-To: <23138750.MHktKfaJby@peggleto-mobl5.ger.corp.intel.com>
On 09/19/2014 04:48 PM, Paul Eggleton wrote:
> On Friday 19 September 2014 10:02:29 Robert Yang wrote:
>> On 09/16/2014 10:39 PM, Robert Yang wrote:
>>> On 09/16/2014 10:30 PM, Paul Eggleton wrote:
>>>> Hi Robert,
>>>>
>>>> On Tuesday 16 September 2014 06:54:40 Robert Yang wrote:
>>>>> The anonymous function redefined bindir to bindir_noprefix (and others),
>>>>> which broke the sstate between build dirs. After checked the vars in
>>>>> CMakeCache.txt, we can drop it safely, and the builds are OK.
>>>>>
>>>>> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
>>>>> ---
>>>>>
>>>>> meta-oe/recipes-support/mysql/mariadb_5.5.39.inc | 28
>>>>>
>>>>> +++++++--------------- 1 file changed, 8 insertions(+), 20 deletions(-)
>>>>>
>>>>> diff --git a/meta-oe/recipes-support/mysql/mariadb_5.5.39.inc
>>>>> b/meta-oe/recipes-support/mysql/mariadb_5.5.39.inc index
>>>>> 9cc2cc9..f5c0a1f
>>>>> 100644
>>>>> --- a/meta-oe/recipes-support/mysql/mariadb_5.5.39.inc
>>>>> +++ b/meta-oe/recipes-support/mysql/mariadb_5.5.39.inc
>>>>> @@ -35,18 +35,6 @@ SYSTEMD_AUTO_ENABLE_mariadb-server = "disable"
>>>>>
>>>>> EXTRA_OEMAKE = "'GEN_LEX_HASH=${STAGING_BINDIR_NATIVE}/gen_lex_hash'"
>>>>>
>>>>> -python __anonymous() {
>>>>> - # This is a pain but it's the only way to pass these in since
>>>>> - # MariaDB's cmake scripts insist on prepending the prefix to the
>>>>> - # specified values for INSTALL_*
>>>>> - localdata = d.createCopy()
>>>>> - localdata.setVar('prefix', '')
>>>>> - localdata.setVar('exec_prefix', '')
>>>>> - d.setVar('bindir_noprefix', localdata.getVar('bindir',
>>>>> True).lstrip('/')) - d.setVar('sbindir_noprefix',
>>>>> localdata.getVar('sbindir', True).lstrip('/')) -
>>>>> d.setVar('datadir_noprefix', localdata.getVar('datadir',
>>>>> True).lstrip('/'))
>>>>> - d.setVar('libdir_noprefix', localdata.getVar('libdir',
>>>>> True).lstrip('/')) -}
>>>>>
>>>>> PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam',
>>>>> 'pam',
>>>>>
>>>>> '', d)}" PACKAGECONFIG_class-native = ""
>>>>> @@ -64,15 +52,15 @@ EXTRA_OECMAKE = "-DWITH_EMBEDDED_SERVER=ON \
>>>>>
>>>>> -DNROFF=FALSE \
>>>>> -DENABLE_DTRACE=FALSE \
>>>>> -DWITH_PIC=ON \
>>>>>
>>>>> - -DINSTALL_DOCDIR:PATH=${datadir_noprefix}/doc/${BPN} \
>>>>> - -DINSTALL_BINDIR:PATH=${bindir_noprefix} \
>>>>> - -DINSTALL_SBINDIR:PATH=${sbindir_noprefix} \
>>>>> - -DINSTALL_SCRIPTDIR:PATH=${bindir_noprefix} \
>>>>> - -DINSTALL_LIBDIR:PATH=${libdir_noprefix} \
>>>>> - -DINSTALL_PLUGINDIR:PATH=${libdir_noprefix}/plugin \
>>>>> + -DINSTALL_DOCDIR:PATH=${datadir}/doc/${BPN} \
>>>>> + -DINSTALL_BINDIR:PATH=${bindir} \
>>>>> + -DINSTALL_SBINDIR:PATH=${sbindir} \
>>>>> + -DINSTALL_SCRIPTDIR:PATH=${bindir} \
>>>>> + -DINSTALL_LIBDIR:PATH=${libdir} \
>>>>> + -DINSTALL_PLUGINDIR:PATH=${libdir}/plugin \
>>>>>
>>>>> -DINSTALL_SYSCONFDIR:PATH=${sysconfdir} \
>>>>>
>>>>> - -DINSTALL_MYSQLSHAREDIR:PATH=${datadir_noprefix}/mysql
>>>>> \
>>>>> -
>>>>> -DINSTALL_SUPPORTFILESDIR:PATH=${datadir_noprefix}/mysql-support-files \
>>>>> +
>>>>>
>>>>> -DINSTALL_MYSQLSHAREDIR:PATH=${datadir}/mysql \
>>>>>
>>>>> +
>>>>> -DINSTALL_SUPPORTFILESDIR:PATH=${datadir}/mysql-support-files \
>>>>> -DMYSQL_DATADIR:PATH=/var/mysql \
>>>>>
>>>>> -DCAT_EXECUTABLE=`which cat` \
>>>>> -DCMAKE_AR:FILEPATH=${AR}"
>>>>
>>>> I'm pretty sure I tested this beforehand; the problem I found is that
>>>> some of the scripts end up with the prefix twice in substituted paths
>>>> because it is expected that the paths supplied at configuration time do
>>>> not include the prefix, but our paths normally include them.
>>>>
>>>> Did you do runtime tests with this change?
>>>
>>> Thanks, not yet, I will do and reply later.
>>
>> Hi Paul,
>>
>> You are right, there are problems when runtime testing. I will try to fix
>> it in another way, we need fix it is because it breaks the sstate which
>> depends on mariadb. (and several ones)
>
> When you say it breaks sstate is that because the system is unable to see the
> dependencies between e.g. bindir_noprefix and bindir? If that's the issue then
> perhaps the answer is just to explicitly add those dependencies.
Sorry, I didn't say clearly, it breaks the sstate between different builds,
for example "bitbake mariadb-native" in build1, then create another build2,
but let them use the same SSTATE_DIR, and run "bitbake mariadb-native", we
will see that mariadb-native is built again (but it should be installed from
sstate). I think it is because bindir_noprefix can be replaced with
FIXMESTAGINGDIR the by sstate.bcclass. All the recipes' sstate which depends on
mariadb/-native can not be reused.
// Robert
>
> Cheers,
> Paul
>
prev parent reply other threads:[~2014-09-20 2:44 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-16 13:54 [meta-oe] [PATCH] mariadb: drop anonymous function Robert Yang
2014-09-16 14:30 ` Paul Eggleton
2014-09-16 14:39 ` Robert Yang
2014-09-19 2:02 ` Robert Yang
2014-09-19 8:48 ` Paul Eggleton
2014-09-20 2:44 ` Robert Yang [this message]
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=541CEA0D.9000901@windriver.com \
--to=liezhi.yang@windriver.com \
--cc=openembedded-devel@lists.openembedded.org \
--cc=paul.eggleton@linux.intel.com \
/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