All of lore.kernel.org
 help / color / mirror / Atom feed
* [meta-oe] [PATCH] mariadb: drop anonymous function
@ 2014-09-16 13:54 Robert Yang
  2014-09-16 14:30 ` Paul Eggleton
  0 siblings, 1 reply; 6+ messages in thread
From: Robert Yang @ 2014-09-16 13:54 UTC (permalink / raw)
  To: openembedded-devel

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}"
-- 
1.7.9.5



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [meta-oe] [PATCH] mariadb: drop anonymous function
  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
  0 siblings, 1 reply; 6+ messages in thread
From: Paul Eggleton @ 2014-09-16 14:30 UTC (permalink / raw)
  To: Robert Yang; +Cc: openembedded-devel

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?

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [meta-oe] [PATCH] mariadb: drop anonymous function
  2014-09-16 14:30 ` Paul Eggleton
@ 2014-09-16 14:39   ` Robert Yang
  2014-09-19  2:02     ` Robert Yang
  0 siblings, 1 reply; 6+ messages in thread
From: Robert Yang @ 2014-09-16 14:39 UTC (permalink / raw)
  To: Paul Eggleton; +Cc: openembedded-devel



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.

// Robert

>
> Cheers,
> Paul
>


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [meta-oe] [PATCH] mariadb: drop anonymous function
  2014-09-16 14:39   ` Robert Yang
@ 2014-09-19  2:02     ` Robert Yang
  2014-09-19  8:48       ` Paul Eggleton
  0 siblings, 1 reply; 6+ messages in thread
From: Robert Yang @ 2014-09-19  2:02 UTC (permalink / raw)
  To: openembedded-devel, Paul Eggleton



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)

// Robert

>
> // Robert
>
>>
>> Cheers,
>> Paul
>>


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [meta-oe] [PATCH] mariadb: drop anonymous function
  2014-09-19  2:02     ` Robert Yang
@ 2014-09-19  8:48       ` Paul Eggleton
  2014-09-20  2:44         ` Robert Yang
  0 siblings, 1 reply; 6+ messages in thread
From: Paul Eggleton @ 2014-09-19  8:48 UTC (permalink / raw)
  To: Robert Yang; +Cc: openembedded-devel

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.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [meta-oe] [PATCH] mariadb: drop anonymous function
  2014-09-19  8:48       ` Paul Eggleton
@ 2014-09-20  2:44         ` Robert Yang
  0 siblings, 0 replies; 6+ messages in thread
From: Robert Yang @ 2014-09-20  2:44 UTC (permalink / raw)
  To: Paul Eggleton; +Cc: openembedded-devel



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
>


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-09-20  2:44 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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 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.