All of lore.kernel.org
 help / color / mirror / Atom feed
* RFC: handling of machine/distro features stuff
@ 2006-10-29 14:28 Marcin Juszkiewicz
  2006-10-29 22:10 ` Jamie Lenehan
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Marcin Juszkiewicz @ 2006-10-29 14:28 UTC (permalink / raw)
  To: openembedded-devel


Currently OpenEmbedded use overrides based on DISTRO, MACHINE, TARGET_ARCH 
and few others. I want to suggest start of using also 
{MACHINE,DISTRO}_FEATURES because we have some stuff in metadata which 
make sense only on some targets only - for example madwifi is limited to 
PCI devices only.

Why do this at all? Let me take wpa-supplicant 0.5.x as example.

I'm building own distribution for my PDA devices and want to use latest 
possible software. But wpa-supplicant 0.5.1 depends on madwifi which 
cannot be build because my target device does not have PCI bus support. If 
I remove madwifi stuff from wpa-supplicant recipe then I will get working 
version. But this cannot be pushed back into repo because NSLU2 related 
distros want version with madwifi support.

Solution can be adding checking for pci support in 
{MACHINE,DISTRO}_FEATURES and only then enable madwifi support:

DEPENDS = "gnutls \ 
${@base_contains("DISTRO_FEATURES", "pci", "madwifi", "",d)}"

Same stuff can go into madwifi recipe so it will get skipped if target 
device lack PCI support.


-- 
JID: hrw-jabber.org
OpenEmbedded developer/consultant

               Life's not fair. But the root password helps.





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

* Re: RFC: handling of machine/distro features stuff
  2006-10-29 14:28 RFC: handling of machine/distro features stuff Marcin Juszkiewicz
@ 2006-10-29 22:10 ` Jamie Lenehan
  2006-10-30  1:32 ` Justin Patrin
  2006-11-17  0:01 ` Marcin Juszkiewicz
  2 siblings, 0 replies; 8+ messages in thread
From: Jamie Lenehan @ 2006-10-29 22:10 UTC (permalink / raw)
  To: Marcin Juszkiewicz; +Cc: openembedded-devel

On Sun, Oct 29, 2006 at 03:28:39PM +0100, Marcin Juszkiewicz wrote:
> 
> Currently OpenEmbedded use overrides based on DISTRO, MACHINE, TARGET_ARCH 
> and few others. I want to suggest start of using also 
> {MACHINE,DISTRO}_FEATURES because we have some stuff in metadata which 
> make sense only on some targets only - for example madwifi is limited to 
> PCI devices only.

In general that sounds reasonable.

I've also run into problems before with things that depend on PCMCIA
which I don't have built into any of my kernels.

If you are going to do this it might be nice to make pci and mini-pci
separate features, since I don't want to build loads of pci device
and driver related stuff when my target devices only have mini-pci.
All my current mad-wifi cards for here are mini-pci.

[...]
> I remove madwifi stuff from wpa-supplicant recipe then I will get working 
> version. But this cannot be pushed back into repo because NSLU2 related 
> distros want version with madwifi support.

Yep. I need madwifi support in wpa-supplicant for my router distro
and associated target devices as well.

-- 
 Jamie Lenehan <lenehan@twibble.org>



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

* Re: RFC: handling of machine/distro features stuff
  2006-10-29 14:28 RFC: handling of machine/distro features stuff Marcin Juszkiewicz
  2006-10-29 22:10 ` Jamie Lenehan
@ 2006-10-30  1:32 ` Justin Patrin
  2006-11-04 13:37   ` Leon Woestenberg
  2006-11-17  0:01 ` Marcin Juszkiewicz
  2 siblings, 1 reply; 8+ messages in thread
From: Justin Patrin @ 2006-10-30  1:32 UTC (permalink / raw)
  To: openembedded-devel

On 10/29/06, Marcin Juszkiewicz <openembedded@hrw.one.pl> wrote:
>
> Currently OpenEmbedded use overrides based on DISTRO, MACHINE, TARGET_ARCH
> and few others. I want to suggest start of using also
> {MACHINE,DISTRO}_FEATURES because we have some stuff in metadata which
> make sense only on some targets only - for example madwifi is limited to
> PCI devices only.
>
> Why do this at all? Let me take wpa-supplicant 0.5.x as example.
>
> I'm building own distribution for my PDA devices and want to use latest
> possible software. But wpa-supplicant 0.5.1 depends on madwifi which
> cannot be build because my target device does not have PCI bus support. If
> I remove madwifi stuff from wpa-supplicant recipe then I will get working
> version. But this cannot be pushed back into repo because NSLU2 related
> distros want version with madwifi support.
>
> Solution can be adding checking for pci support in
> {MACHINE,DISTRO}_FEATURES and only then enable madwifi support:
>
> DEPENDS = "gnutls \
> ${@base_contains("DISTRO_FEATURES", "pci", "madwifi", "",d)}"
>
> Same stuff can go into madwifi recipe so it will get skipped if target
> device lack PCI support.
>

It *sounds* like what you want here is basically a USE-flag type of
system. Introducing it as FEATURES flags makes sense to me given that
OE is made for building embedded distros and not for local building,
as portage.

-- 
Justin Patrin



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

* Re: RFC: handling of machine/distro features stuff
  2006-10-30  1:32 ` Justin Patrin
@ 2006-11-04 13:37   ` Leon Woestenberg
  0 siblings, 0 replies; 8+ messages in thread
From: Leon Woestenberg @ 2006-11-04 13:37 UTC (permalink / raw)
  To: openembedded-devel

Hello all,

On 10/30/06, Justin Patrin <papercrane@gmail.com> wrote:
>
> It *sounds* like what you want here is basically a USE-flag type of
> system. Introducing it as FEATURES flags makes sense to me given that
> OE is made for building embedded distros and not for local building,
> as portage.
>
Yes, USE flags came to my mind as well when I read this.

In my use case (beware of pun) I have a package overlay of graphical
packages (freetype, pango, cairo, gtk) but without dependencies on X
support (they render to framebuffers).

So, I recon this would fall into the domain of a DISTRO FEATURE (i.e. "no X11")

However, could I *disable* a feature in the intended framework? (much
like with the plus and minus signs in the emerge USE case)

Regards,

Leon 'likewise'



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

* Re: RFC: handling of machine/distro features stuff
  2006-10-29 14:28 RFC: handling of machine/distro features stuff Marcin Juszkiewicz
  2006-10-29 22:10 ` Jamie Lenehan
  2006-10-30  1:32 ` Justin Patrin
@ 2006-11-17  0:01 ` Marcin Juszkiewicz
  2006-11-17  9:25   ` Richard Purdie
  2 siblings, 1 reply; 8+ messages in thread
From: Marcin Juszkiewicz @ 2006-11-17  0:01 UTC (permalink / raw)
  To: openembedded-devel

Dnia niedziela, 29 października 2006 15:28, Marcin Juszkiewicz napisał:
> Currently OpenEmbedded use overrides based on DISTRO, MACHINE,
> TARGET_ARCH and few others. I want to suggest start of using also
> {MACHINE,DISTRO}_FEATURES because we have some stuff in metadata which
> make sense only on some targets only - for example madwifi is limited
> to PCI devices only.

Holger 'zecke' Freyther pointed me to MacPorts and their 'variants'. After 
looking at them I think that those are other kind of our overrides.

Which points me to this idea: how about adding COMBINED_FEATURES into 
overrides? I do not know will it slow down BitBake or make metadata bit 
more ugly but it is kind of solution.

do_configure() {
	do something
}

do_configure_pci() {
	do something
	do something PCI related
}

would solve wpa-supplicant example. 

What do you think?

-- 
JID: hrw-jabber.org
OpenEmbedded developer/consultant

        "To be or not to be that is the question.":
         every programmer knows the answer $2b or (not $2b) is $ff.





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

* Re: RFC: handling of machine/distro features stuff
  2006-11-17  0:01 ` Marcin Juszkiewicz
@ 2006-11-17  9:25   ` Richard Purdie
  2006-11-24 16:03     ` Marcin Juszkiewicz
  0 siblings, 1 reply; 8+ messages in thread
From: Richard Purdie @ 2006-11-17  9:25 UTC (permalink / raw)
  To: openembedded-devel

On Fri, 2006-11-17 at 01:01 +0100, Marcin Juszkiewicz wrote:
> Dnia niedziela, 29 października 2006 15:28, Marcin Juszkiewicz napisał:
> > Currently OpenEmbedded use overrides based on DISTRO, MACHINE,
> > TARGET_ARCH and few others. I want to suggest start of using also
> > {MACHINE,DISTRO}_FEATURES because we have some stuff in metadata which
> > make sense only on some targets only - for example madwifi is limited
> > to PCI devices only.
> 
> Holger 'zecke' Freyther pointed me to MacPorts and their 'variants'. After 
> looking at them I think that those are other kind of our overrides.
> 
> Which points me to this idea: how about adding COMBINED_FEATURES into 
> overrides? I do not know will it slow down BitBake or make metadata bit 
> more ugly but it is kind of solution.

Personally, I think its a bad idea as we have too many variables in this
field and it could end up with too much namespace pollution. We need to
keep our overrides lean :)

Also, this would automatically make any package machine specific and
make multimachine pointless (anything using COMBINED_FEATURES is machine
specific).

Richard




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

* Re: RFC: handling of machine/distro features stuff
  2006-11-17  9:25   ` Richard Purdie
@ 2006-11-24 16:03     ` Marcin Juszkiewicz
  2006-11-24 17:56       ` Richard Purdie
  0 siblings, 1 reply; 8+ messages in thread
From: Marcin Juszkiewicz @ 2006-11-24 16:03 UTC (permalink / raw)
  To: openembedded-devel

Dnia piątek, 17 listopada 2006 10:25, Richard Purdie napisał:
> > Which points me to this idea: how about adding COMBINED_FEATURES into
> > overrides? I do not know will it slow down BitBake or make metadata
> > bit more ugly but it is kind of solution.

> Also, this would automatically make any package machine specific and
> make multimachine pointless (anything using COMBINED_FEATURES is machine
> specific).

Koen suggested other solution - marking packages MACHINE specific when
COMBINED_FEATURES are used. For example wpa-supplicant will get this:

DEPENDS = "gnutls ${@base_contains('COMBINED_FEATURES', 'pci', 'madwifi-ng', '',d)}"
PACKAGE_ARCH = "${@base_contains('COMBINED_FEATURES', 'pci', ${MACHINE}, ${TARGET_ARCH}, d)}"

export HAS_PCI = ${@base_contains('COMBINED_FEATURES', 'pci', 1, 0,d)}

do_configure () {
        install -m 0755 ${WORKDIR}/defconfig-gnutls  .config

        if [ "x$HAS_PCI" == "x1" ] then; do
                echo "CONFIG_DRIVER_MADWIFI=y" >> .config
                echo "CFLAGS += -I${STAGING_INCDIR}/madwifi-ng" >> .config
        fi
}

Opinions?

-- 
JID: hrw-jabber.org
OpenEmbedded developer/consultant

        "To be or not to be that is the question.":
         every programmer knows the answer $2b or (not $2b) is $ff.





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

* Re: RFC: handling of machine/distro features stuff
  2006-11-24 16:03     ` Marcin Juszkiewicz
@ 2006-11-24 17:56       ` Richard Purdie
  0 siblings, 0 replies; 8+ messages in thread
From: Richard Purdie @ 2006-11-24 17:56 UTC (permalink / raw)
  To: openembedded-devel

On Fri, 2006-11-24 at 17:03 +0100, Marcin Juszkiewicz wrote:
> Koen suggested other solution - marking packages MACHINE specific when
> COMBINED_FEATURES are used. For example wpa-supplicant will get this:
>[...]
> Opinions?

Looks good to me.

Cheers,

Richard




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

end of thread, other threads:[~2006-11-24 17:59 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-10-29 14:28 RFC: handling of machine/distro features stuff Marcin Juszkiewicz
2006-10-29 22:10 ` Jamie Lenehan
2006-10-30  1:32 ` Justin Patrin
2006-11-04 13:37   ` Leon Woestenberg
2006-11-17  0:01 ` Marcin Juszkiewicz
2006-11-17  9:25   ` Richard Purdie
2006-11-24 16:03     ` Marcin Juszkiewicz
2006-11-24 17:56       ` Richard Purdie

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.