From: Saul Wold <sgw@linux.intel.com>
To: Patches and discussions about the oe-core layer
<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH 36/52] gettext.bbclass: Use _append instead of =+
Date: Wed, 04 May 2011 22:06:21 -0700 [thread overview]
Message-ID: <4DC2304D.70205@linux.intel.com> (raw)
In-Reply-To: <20110505041912.GA10374@sakrah.homelinux.org>
On 05/04/2011 09:19 PM, Khem Raj wrote:
> On (04/05/11 18:07), Khem Raj wrote:
>> On Tue, May 3, 2011 at 3:39 PM, Richard Purdie
>> <richard.purdie@linuxfoundation.org> wrote:
>>> On Tue, 2011-05-03 at 11:04 -0700, Khem Raj wrote:
>>>> This has the same problem It empties out DEPENDS_GETTEXT after they have
>>>> have already been added to DEPENDS via virtclass e.g. when you build
>>>> gcc-runtime-nativesdk it will report a dep loop since now it depends on
>>>> virtual/gettext-nativesdk (added by gettext class)
>>>> and virtual/gettext-nativesdk depends on compilerlibs
>>>> provided by gcc-runtime-nativesdk. This was same problem I was trying to
>>>> circumvent
>>>
>>> Ok, how about this version:
>>>
>>> diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
>>> index 4f20bc2..3b83e42 100644
>>> --- a/meta/classes/base.bbclass
>>> +++ b/meta/classes/base.bbclass
>>> @@ -89,9 +89,11 @@ def base_dep_prepend(d):
>>> deps += " virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}compilerlibs virtual/libc "
>>> return deps
>>>
>>> -DEPENDS_prepend="${@base_dep_prepend(d)} "
>>> -DEPENDS_virtclass-native_prepend="${@base_dep_prepend(d)} "
>>> -DEPENDS_virtclass-nativesdk_prepend="${@base_dep_prepend(d)} "
>>> +BASEDEPENDS = "${@base_dep_prepend(d)}"
>>> +
>>> +DEPENDS_prepend="${BASEDEPENDS} "
>>> +DEPENDS_virtclass-native_prepend="${BASEDEPENDS} "
>>> +DEPENDS_virtclass-nativesdk_prepend="${BASEDEPENDS} "
>>>
>>> FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", "${FILE_DIRNAME}/${P}", "${FILE_DIRNAME}/${PN}", "${FILE_DIRNAME}/${BP}", "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files", "${FILE_DIRNAME}" ], d)}"
>>> # THISDIR only works properly with imediate expansion as it has to run
>>> diff --git a/meta/classes/gettext.bbclass b/meta/classes/gettext.bbclass
>>> index a40e74f..6f79e5e 100644
>>> --- a/meta/classes/gettext.bbclass
>>> +++ b/meta/classes/gettext.bbclass
>>> @@ -1,17 +1,17 @@
>>> -def gettext_after_parse(d):
>>> - # Remove the NLS bits if USE_NLS is no.
>>> - if bb.data.getVar('USE_NLS', d, 1) == 'no':
>>> - cfg = oe_filter_out('^--(dis|en)able-nls$', bb.data.getVar('EXTRA_OECONF', d, 1) or "", d)
>>> - cfg += " --disable-nls"
>>> - depends = bb.data.getVar('DEPENDS', d, 1) or ""
>>> - bb.data.setVar('DEPENDS', oe_filter_out('^(virtual/libiconv|virtual/libintl)$', depends, d), d)
>>> - bb.data.setVar('EXTRA_OECONF', cfg, d)
>>> +def gettext_dependencies(d):
>>> + if d.getVar('USE_NLS', True) == 'no':
>>> + return ""
>>> + if bb.data.getVar('INHIBIT_DEFAULT_DEPS', d, True) and not oe.utils.inherits(d, 'cross-canadian'):
>>> + return ""
>>> + return d.getVar('DEPENDS_GETTEXT', False)
>>>
>>> -python () {
>>> - gettext_after_parse(d)
>>> -}
>>> +def gettext_oeconf(d):
>>> + # Remove the NLS bits if USE_NLS is no.
>>> + if d.getVar('USE_NLS', True) == 'no':
>>> + return '--disable-nls'
>>> + return "--enable-nls"
>>>
>>> -DEPENDS_GETTEXT = "gettext gettext-native"
>>> +DEPENDS_GETTEXT = "virtual/gettext gettext-native"
>>>
>>> -DEPENDS =+ "${DEPENDS_GETTEXT}"
>>> -EXTRA_OECONF += "--enable-nls"
>>> +BASEDEPENDS =+ "${@gettext_dependencies(d)}"
>>> +EXTRA_OECONF += "${@gettext_oeconf(d)}"
>>>
>>>
>>
>> a build from scratch revealed few more issues with this patch too.
>>
>> 1. We have to only remove gettext from dependencies if its a target
>> package for all other it still it needed otherwise all native and
>> cross tools start failing to build
>> e.g. binutils-cross this can be easily solved by a patch
>>
>> iff --git a/meta/classes/gettext.bbclass b/meta/classes/gettext.bbclass
>> index 6f79e5e..cc39204 100644
>> --- a/meta/classes/gettext.bbclass
>> +++ b/meta/classes/gettext.bbclass
>> @@ -1,5 +1,5 @@
>> def gettext_dependencies(d):
>> - if d.getVar('USE_NLS', True) == 'no':
>> + if d.getVar('USE_NLS', True) == 'no' and not oe.utils.inherits(d,
>> 'native', 'nativesdk', 'cross')
>> return ""
>> if bb.data.getVar('INHIBIT_DEFAULT_DEPS', d, True) and not
>> oe.utils.inherits(d, 'cross-canadian')
>> return ""
>>
>>
>> second problem is that EXTRA_OECONF when recipes override it instead
>> of += or appending etc.
>> then --enable|--disable-nls that we added via gettext_oeconf() is lost
>> as a result some packages complain about config.rpath
>> when USE_NLS is set to no the reason is their configure is missing the
>> argument --disable-nls this works ok
>> for eglibc based targets since default is to enable-nls if nothing is
>> specified but uclibc fails. As a testcase try to preprocess
>> utils-linux
>> recipe and check the contents of EXTRA_OECONF
>
> attached is a patch on top of this patch which fixes both the issues I
> mentioned. I also thought of defining USE_NLS to yes in
> native/cross/nativesdk classes but then I resorted to add the check in
> gettext.bbclass
>
Khem,
Are you refering to the changes above? If so, it would be better to
have it in a proper patch email, if you could resend with just the patch
and comments that would be most appreciated.
Thanks
Sau!
> Please review and apply if appropriate
>
> Thanks
>
>
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
next prev parent reply other threads:[~2011-05-05 5:09 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-27 7:29 [PATCH 00/52] Updated Consolidated pull Saul Wold
2011-04-27 7:29 ` [PATCH 01/52] sat-solver: fix arch=all packages Saul Wold
2011-04-27 8:24 ` Antonio Ospite
2011-04-27 18:24 ` Saul Wold
2011-04-27 7:29 ` [PATCH 02/52] quilt: fix test for target build Saul Wold
2011-04-27 7:29 ` [PATCH 03/52] gcc: Add recipes for 4.6.0 Saul Wold
2011-04-27 8:17 ` Antonio Ospite
2011-04-27 18:23 ` Saul Wold
2011-04-27 18:42 ` Khem Raj
2011-04-28 9:14 ` Richard Purdie
2011-04-28 8:53 ` Richard Purdie
2011-04-27 7:29 ` [PATCH 04/52] perl: upgrade from 5.12.2 to 5.12.3 Saul Wold
2011-04-27 7:29 ` [PATCH 06/52] web: update svn to 131 to fix build issue Saul Wold
2011-04-27 7:29 ` [PATCH 05/52] gdb: set --without-ust for EXTRA_OEFLAGS Saul Wold
2011-04-27 7:29 ` [PATCH 07/52] tar-1.17 (GPLv2) bugfix Saul Wold
2011-04-27 7:29 ` [PATCH 08/52] cpio-2.8 (GPLv2) bug fix Saul Wold
2011-04-27 7:29 ` [PATCH 09/52] rxvt-unicode: upgrade to version 9.10 Saul Wold
2011-04-27 7:29 ` [PATCH 10/52] valgrind: upgrade to version 3.6.1 Saul Wold
2011-04-27 7:29 ` [PATCH 11/52] bluez-hcidump: upgrade to version 2.0 Saul Wold
2011-04-27 7:29 ` [PATCH 12/52] gupnp-av: upgrade to version 0.8.0 Saul Wold
2011-04-27 7:29 ` [PATCH 13/52] libsndfile1: upgrade to version 1.0.24 Saul Wold
2011-04-27 7:29 ` [PATCH 14/52] glib-2.0: upgrade to version 2.28.6 Saul Wold
2011-04-27 7:29 ` [PATCH 15/52] libfm: Remove the flag of G_DISABLE_DEPRECATED Saul Wold
2011-04-27 7:29 ` [PATCH 16/52] polkit: upgrade to version 0.101 Saul Wold
2011-04-27 7:29 ` [PATCH 17/52] gst-fluendo-mpegdemux: upgrade to version 0.10.67 Saul Wold
2011-04-27 7:29 ` [PATCH 18/52] libsamplerate0: upgrade to version 0.1.7 Saul Wold
2011-04-27 7:29 ` [PATCH 19/52] alsa-utils: upgrade to version 1.0.24.2 Saul Wold
2011-04-27 7:29 ` [PATCH 21/52] distro_tracking_fields: cwautomacros, valgrind, etc Saul Wold
2011-04-27 8:20 ` Antonio Ospite
2011-04-27 7:29 ` [PATCH 20/52] cwautomacros: upgrade to version 20110201 Saul Wold
2011-04-27 7:29 ` [PATCH 22/52] sstate.bbclass: Reduce SSTATE_MANIFESTS assignment to be weak Saul Wold
2011-04-27 7:29 ` [PATCH 23/52] libiconv: update from 1.9.2 -> 1.11.1 Saul Wold
2011-04-27 7:29 ` [PATCH 24/52] elfutils_0.148.bb: Fix compilation issues on uclibc Saul Wold
2011-04-27 7:29 ` [PATCH 25/52] perl_5.12.2.bb: Undefine features not found in uclibc Saul Wold
2011-04-27 7:29 ` [PATCH 26/52] xorg-lib: inherit gettext class instead of adding gettext to DEPENDS directly Saul Wold
2011-04-27 7:29 ` [PATCH 27/52] attr: Fix compilation on uclibc Saul Wold
2011-04-27 7:29 ` [PATCH 28/52] linux-tools.inc: Dummify do_compile_perf and do_install_perf for uclibc Saul Wold
2011-04-27 14:34 ` Darren Hart
2011-04-27 14:37 ` Darren Hart
2011-04-27 16:10 ` Khem Raj
2011-04-27 7:29 ` [PATCH 29/52] python: add missing cytpes modules Saul Wold
2011-04-27 7:29 ` [PATCH 30/52] cdrtools: recipe and patch cleanup Saul Wold
2011-04-27 7:29 ` [PATCH 31/52] distro_tracking_fields.inc: add cdrtools recipe Saul Wold
2011-04-27 7:29 ` [PATCH 32/52] logging: fix oedebug loglevel test Saul Wold
2011-04-27 7:29 ` [PATCH 33/52] logging: remove unused BBDEBUG from local.conf.sample Saul Wold
2011-04-27 7:29 ` [PATCH 34/52] logging: add bb* logging mechanisms for bash recipe functions Saul Wold
2011-04-28 9:05 ` Richard Purdie
2011-04-29 4:30 ` Darren Hart
2011-04-29 4:34 ` Saul Wold
2011-04-27 7:29 ` [PATCH 35/52] libsdl: add SRC_URI Checksums Saul Wold
2011-04-27 7:29 ` [PATCH 36/52] gettext.bbclass: Use _append instead of =+ Saul Wold
2011-04-28 9:01 ` Richard Purdie
2011-04-29 16:11 ` Khem Raj
2011-05-03 12:14 ` Richard Purdie
2011-05-03 18:04 ` Khem Raj
2011-05-03 22:39 ` Richard Purdie
2011-05-05 1:07 ` Khem Raj
2011-05-05 4:19 ` Khem Raj
2011-05-05 5:06 ` Saul Wold [this message]
2011-05-05 6:38 ` Khem Raj
2011-05-05 9:41 ` Richard Purdie
2011-05-05 16:58 ` Khem Raj
2011-04-27 7:29 ` [PATCH 37/52] insane.bbclass: Move code to add function to tasks toward the end Saul Wold
2011-04-28 8:46 ` Richard Purdie
2011-04-27 7:29 ` [PATCH 38/52] insane.bbclass: Checking for NLS too when checking gettext dependency Saul Wold
2011-04-28 9:02 ` Richard Purdie
2011-04-27 7:30 ` [PATCH 39/52] autotools.bbclass: Copy gettext files only if --disable-nls is not set Saul Wold
2011-04-27 7:30 ` [PATCH 40/52] gettext: Divide packaging into gettext-runtime and rest Saul Wold
2011-04-27 7:30 ` [PATCH 41/52] gettext_0.17.bb: PROVIDE virtual/gettext and RCONFLICT with proxy-libintl Saul Wold
2011-04-27 7:30 ` [PATCH 42/52] poky-default.inc: Weakly assign gettext to provide virtual/gettext Saul Wold
2011-04-27 7:30 ` [PATCH 43/52] glib-2.0: Inherit gettext should provide right libintl so remove from DEPENDS Saul Wold
2011-04-27 7:30 ` [PATCH 44/52] util-linux.inc: remove virtual/libintl " Saul Wold
2011-04-28 9:03 ` Richard Purdie
2011-04-27 7:30 ` [PATCH 45/52] perl_5.12.2.bb: Undefine features not found in uclibc Saul Wold
2011-04-27 7:30 ` [PATCH 46/52] alsa-utils_1.0.23.bb: Fix compilation for uclibc targets Saul Wold
2011-04-27 7:30 ` [PATCH 47/52] clutter-box2d: add DEPENDS for clutter-1.6 Saul Wold
2011-04-27 7:30 ` [PATCH 48/52] table: move old clutter demo to meta-demoapps Saul Wold
2011-04-27 7:30 ` [PATCH 49/52] tidy: " Saul Wold
2011-04-27 7:30 ` [PATCH 50/52] alsa-tools: Add checksums Saul Wold
2011-04-27 7:30 ` [PATCH 51/52] world-broken: add older clutters since we don't want clutter confusion Saul Wold
2011-04-27 7:30 ` [PATCH 52/52] qemu: Fix non-sdl/opengl build Saul Wold
2011-04-27 8:17 ` [PATCH 00/52] Updated Consolidated pull Antonio Ospite
2011-04-27 17:38 ` Saul Wold
2011-04-28 9:12 ` Richard Purdie
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=4DC2304D.70205@linux.intel.com \
--to=sgw@linux.intel.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