Skip to contentSkip to conversation

Remove dependency on X11 when building for qemu machines

PATCH In review Paul Eggleton 4 participants 24 messages Nov 14, 2011 – Nov 15, 2011

lore
Share & tools
lore
#0 lore raw

cover Remove dependency on X11 when building for qemu machines

Make some adjustments to qemu-config and items it depends upon to avoid having a hard depencency on building X11. Note that there is still a dependency chain that builds X11 for core-image-minimal by default (udev->glib-2.0->dbus...) however, at least you can now remove x11 from DISTRO_FEATURES and still be able to build an image for a qemu* machine.

As a side bonus because of the oprofileui-server split qemu-config should not need to be blacklisted for non-GPLv3 builds anymore.

The following changes since commit f2316ff39670ed99382411e15ac035550360fbdd:

opkg: Ensure we use the uname/gname fields when extracting tarballs (2011-11-14 11:15:36 +0000)

are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib paule/qemu-x11
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/qemu-x11

Paul Eggleton (4):
oprofileui: split server to separate recipe to avoid X11 dependency
qemu-config: split out anjuta-remote-run
distcc: make distccmon-gnome optional and default to off
qemu-config: update DESCRIPTION and LICENSE

 meta/recipes-bsp/qemu-config/qemu-config.bb        |   12 +-
 .../anjuta-remote-run/anjuta-remote-run.bb         |   21 ++
 .../anjuta-remote-run/COPYING.GPL                  |  339 ++++++++++++++++++++
 .../anjuta-remote-run}/anjuta-remote-run           |    0
 meta/recipes-devtools/distcc/distcc_2.18.3.bb      |   18 +-
 .../oprofile/oprofileui-server_git.bb              |   13 +
 meta/recipes-kernel/oprofile/oprofileui.inc        |   11 +-
 meta/recipes-kernel/oprofile/oprofileui_git.bb     |   12 +-
 8 files changed, 398 insertions(+), 28 deletions(-)
 create mode 100644 meta/recipes-devtools/anjuta-remote-run/anjuta-remote-run.bb
 create mode 100644 meta/recipes-devtools/anjuta-remote-run/anjuta-remote-run/COPYING.GPL
 rename meta/{recipes-bsp/qemu-config/qemu-config => recipes-devtools/anjuta-remote-run/anjuta-remote-run}/anjuta-remote-run (100%)
 create mode 100644 meta/recipes-kernel/oprofile/oprofileui-server_git.bb
Signature · 1 line
1.7.5.4
#1 lore raw

PATCH 1/4 oprofileui: split server to separate recipe to avoid X11 dependency

Increase SRCREV to include an upstream patch that fixes the configure script so that the server can be built separately without gtk+ and avahi-ui, and create a separate recipe for the server.

Part of the fix for [YOCTO #1690].

---
 .../oprofile/oprofileui-server_git.bb              |   13 +++++++++++++
 meta/recipes-kernel/oprofile/oprofileui.inc        |   11 ++---------
 meta/recipes-kernel/oprofile/oprofileui_git.bb     |   12 ++++++++++--
 3 files changed, 25 insertions(+), 11 deletions(-)
 create mode 100644 meta/recipes-kernel/oprofile/oprofileui-server_git.bb
meta/recipes-kernel/oprofile/oprofileui-server_git.bb new file +13 -0
new file mode 100644
index 0000000..b9f6a81
@@ -0,0 +1,13 @@
+require oprofileui.inc
+
+SRCREV = "82ecf8c6b53b84f80682a8312f9defa83a95f2a3"
+PV = "0.0+git${SRCPV}"
+PR = "r0"
+
+S = "${WORKDIR}/git"
+
+SRC_URI = "git://git.yoctoproject.org/oprofileui;protocol=git"
+
+EXTRA_OECONF += "--disable-client --enable-server"
+
+RDEPENDS_${PN} = "oprofile"
meta/recipes-kernel/oprofile/oprofileui.inc +2 -9
index ab14c38..9a9bc19 100644
@@ -8,16 +8,9 @@ SECTION = "x11"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
 
-DEPENDS = "glib-2.0 gtk+ libglade libxml2 avahi-ui gconf"
+DEPENDS = "glib-2.0 avahi"
 
-inherit autotools pkgconfig gtk-icon-cache
-
-PACKAGES =+ "oprofileui-server oprofileui-viewer"
+inherit autotools pkgconfig
 
 EXTRA_OECONF = "--with-avahi"
 
-FILES_oprofileui-viewer = "${bindir}/oparchconv ${bindir}/oprofile-viewer ${datadir}/applications/ ${datadir}/oprofileui/"
-RDEPENDS_oprofile-viewer = "oprofile"
-
-FILES_oprofileui-server = "${bindir}/oprofile-server"
-RDEPENDS_oprofile-server = "oprofile"
meta/recipes-kernel/oprofile/oprofileui_git.bb +10 -2
index 2b56981..4eeace4 100644
@@ -1,10 +1,18 @@
 require oprofileui.inc
 
-SRCREV = "b3116a4f80ae64bd280e6434d66f33ed492d449a"
+DEPENDS += "gtk+ libglade libxml2 gconf avahi-ui"
+
+SRCREV = "82ecf8c6b53b84f80682a8312f9defa83a95f2a3"
 PV = "0.0+git${SRCPV}"
 PR = "r0"
 
 S = "${WORKDIR}/git"
 
-# Oprofileui at http://labs.o-hand.com/oprofileui/ is not maintained now.
 SRC_URI = "git://git.yoctoproject.org/oprofileui;protocol=git"
+
+EXTRA_OECONF += "--enable-client --disable-server"
+
+PACKAGES =+ "oprofileui-viewer"
+
+FILES_oprofileui-viewer = "${bindir}/oparchconv ${bindir}/oprofile-viewer ${datadir}/applications/ ${datadir}/oprofileui/"
+RDEPENDS_oprofile-viewer = "oprofile"
Signature · 1 line
1.7.5.4
#2 lore raw

PATCH 2/4 qemu-config: split out anjuta-remote-run

In reply to Paul Eggleton

anjuta-remote-run requires dbus-x11 which results in X11 being built for any image built for a qemu machine, which is somewhat excessive. Given that support for Anjuta is also unlikely to be needed by everyone and is by no means specific to qemu, split it out to a separate recipe.

Part of the fix for [YOCTO #1690].

---
 meta/recipes-bsp/qemu-config/qemu-config.bb        |    8 +-
 .../anjuta-remote-run/anjuta-remote-run.bb         |   21 ++
 .../anjuta-remote-run/COPYING.GPL                  |  339 ++++++++++++++++++++
 .../anjuta-remote-run}/anjuta-remote-run           |    0
 4 files changed, 362 insertions(+), 6 deletions(-)
 create mode 100644 meta/recipes-devtools/anjuta-remote-run/anjuta-remote-run.bb
 create mode 100644 meta/recipes-devtools/anjuta-remote-run/anjuta-remote-run/COPYING.GPL
 rename meta/{recipes-bsp/qemu-config/qemu-config => recipes-devtools/anjuta-remote-run/anjuta-remote-run}/anjuta-remote-run (100%)
meta/recipes-bsp/qemu-config/qemu-config.bb +2 -6
index ebf957a..4baf175 100644
@@ -5,10 +5,9 @@ LIC_FILES_CHKSUM = "file://${WORKDIR}/COPYING.GPL;md5=751419260aa954499f7abaabaa
 
 COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemumips|qemuppc)"
 
-PR = "r22"
+PR = "r23"
 
 SRC_URI = "file://distcc.sh \
-           file://anjuta-remote-run \
            file://exports \
            file://shutdown.desktop \
            file://qemu-autostart \
@@ -22,9 +21,6 @@ do_install() {
     install -m 0755 distcc.sh ${D}${sysconfdir}/profile.d/
     install -m 0644 exports ${D}${sysconfdir}/
     
-    install -d ${D}${bindir}
-    install -m 0755 anjuta-remote-run ${D}${bindir}/
-    
     install -d ${D}${datadir}/applications
     install -m 0644 shutdown.desktop ${D}${datadir}/applications/
 
@@ -37,7 +33,7 @@ pkg_postinst_${PN} () {
         sed -i $D${datadir}/applications/shutdown.desktop -e 's/^Exec=halt/Exec=reboot/'
 }
 
-RDEPENDS_${PN} = "distcc dbus-x11 task-core-nfs-server oprofileui-server rsync bash"
+RDEPENDS_${PN} = "distcc task-core-nfs-server oprofileui-server rsync bash"
 
 inherit update-rc.d allarch
 
meta/recipes-devtools/anjuta-remote-run/anjuta-remote-run.bb new file +21 -0
new file mode 100644
index 0000000..18bdec6
@@ -0,0 +1,21 @@
+DESCRIPTION = "Provides on-device script for interaction with the Anjuta IDE"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe"
+
+PR = "r0"
+
+SRC_URI = "file://anjuta-remote-run \
+           file://COPYING.GPL"
+
+S = "${WORKDIR}"
+
+do_install() {
+    install -d ${D}${bindir}
+    install -m 0755 anjuta-remote-run ${D}${bindir}/
+}
+
+PACKAGES = "${PN}"
+RDEPENDS_${PN} = "dbus-x11"
+
+inherit allarch
+
meta/recipes-devtools/anjuta-remote-run/anjuta-remote-run/COPYING.GPL new file +339 -0

339 lines not on this page · raw message

meta/recipes-devtools/anjuta-remote-run/anjuta-remote-run/anjuta-remote-run renamed from meta/recipes-bsp/qemu-config/qemu-config/anjuta-remote-run +0 -0
similarity index 100%
rename from meta/recipes-bsp/qemu-config/qemu-config/anjuta-remote-run
rename to meta/recipes-devtools/anjuta-remote-run/anjuta-remote-run/anjuta-remote-run
Signature · 1 line
1.7.5.4
#3 lore raw

PATCH 3/4 distcc: make distccmon-gnome optional and default to off

In reply to Paul Eggleton

Most people building distcc will not need the distccmon-gnome GUI to be built, so make it optional via the new PACKAGECONFIG functionality and default it to disabled. (This also removes the need to disable it for uclibc.)

Part of the fix for [YOCTO #1690].

---
 meta/recipes-devtools/distcc/distcc_2.18.3.bb |   18 +++++++++---------
 1 files changed, 9 insertions(+), 9 deletions(-)
meta/recipes-devtools/distcc/distcc_2.18.3.bb +9 -9
index ec6ffb3..e15af5e 100644
@@ -4,11 +4,12 @@ compilation of C/C++/ObjC code across machines on a network."
 SECTION = "devel"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-PR = "r7"
+PR = "r8"
 
-DEPENDS = "avahi ${GTKDEP}"
-GTKDEP_libc-uclibc = ""
-GTKDEP = "gtk+"
+DEPENDS = "avahi"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[gui] = "--with-gtk,--without-gtk --without-gnome,gtk+"
 
 RRECOMMENDS_${PN} = "avahi-daemon"
 
@@ -28,20 +29,19 @@ inherit autotools pkgconfig update-rc.d
 
 INITSCRIPT_NAME = "distcc"
 
-EXTRA_OECONF = "--with-gtk"
-EXTRA_OECONF_libc-uclibc = "--without-gtk --without-gnome"
 do_install_append() {
     install -d ${D}${sysconfdir}/init.d/
     install -d ${D}${sysconfdir}/default
     install -m 0755 ${WORKDIR}/distcc ${D}${sysconfdir}/init.d/
     install -m 0755 ${WORKDIR}/default ${D}${sysconfdir}/default/distcc
-    ${DESKTOPINSTALL}
+    ${@base_contains("PACKAGECONFIG", "gui", "desktop_install", "", d)}
 }
-DESKTOPINSTALL = ""
-DESKTOPINSTALL_libc-glibc () {
+
+desktop_install() {
     install -d ${D}${datadir}/distcc/
     install -m 0644 ${WORKDIR}/distccmon-gnome.desktop ${D}${datadir}/distcc/
 }
+
 PACKAGES += "distcc-distmon-gnome"
 
 FILES_${PN} = " ${sysconfdir} \
Signature · 1 line
1.7.5.4
#23 lore raw

PATCH 4/4 qemu-config: update DESCRIPTION and LICENSE

In reply to Paul Eggleton

* Make the DESCRIPTION more accurate
* LICENSE is actually GPLv2 according to the COPYING.GPL file

---
 meta/recipes-bsp/qemu-config/qemu-config.bb |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
meta/recipes-bsp/qemu-config/qemu-config.bb +2 -2
index 4baf175..2fd9667 100644
@@ -1,6 +1,6 @@
-DESCRIPTION = "Adds scripts to use distcc on the host system under qemu"
+DESCRIPTION = "Adds scripts and configuration for development on qemu images"
 
-LICENSE = "GPL"
+LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://${WORKDIR}/COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe"
 
 COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemumips|qemuppc)"
Signature · 1 line
1.7.5.4
#4 lore raw

Re: [PATCH 3/4] distcc: make distccmon-gnome optional and default to off

In reply to Paul Eggleton

Op 14 nov. 2011, om 19:54 heeft Paul Eggleton het volgende geschreven:

Quoted 6 lines

Most people building distcc will not need the distccmon-gnome GUI to be built, so make it optional via the new PACKAGECONFIG functionality and default it to disabled. (This also removes the need to disable it for uclibc.)

Part of the fix for [YOCTO #1690].

I think splitting distccmon-gnome into a seperate recipe is a better idea.

regards,

Koen

#5 lore raw

Re: [PATCH 3/4] distcc: make distccmon-gnome optional and default to off

Quoted 10 lines · Koen Kooi

Op 14 nov. 2011, om 19:54 heeft Paul Eggleton het volgende geschreven:

Quoted 6 lines

Most people building distcc will not need the distccmon-gnome GUI to be built, so make it optional via the new PACKAGECONFIG functionality and default it to disabled. (This also removes the need to disable it for uclibc.)

Part of the fix for [YOCTO #1690].

I think splitting distccmon-gnome into a seperate recipe is a better idea.

I think that makes sense in some cases but I'd hate for it to become the default approach for issues like this as the duplication of code, parsing and build time etc. grate on me. Do we really need separate recipes?

I'll probably take this patch as it improves the situation IMO (and is easy to change the configuration from a distro config if anyone does have an issue with it being disabled).

Cheers,

Richard

#6 lore raw

Re: [PATCH 3/4] distcc: make distccmon-gnome optional and default to off

Op 14 nov. 2011, om 21:39 heeft Richard Purdie het volgende geschreven:

Quoted 8 lines · Koen Kooi
Quoted 7 lines

Op 14 nov. 2011, om 19:54 heeft Paul Eggleton het volgende geschreven:

Quoted 5 lines

Most people building distcc will not need the distccmon-gnome GUI to be built, so make it optional via the new PACKAGECONFIG functionality and default it to disabled. (This also removes the need to disable it for uclibc.)

Quoted 8 lines
Quoted 3 lines
Quoted 1 line

Part of the fix for [YOCTO #1690].

I think splitting distccmon-gnome into a seperate recipe is a better idea.

I think that makes sense in some cases but I'd hate for it to become the default approach for issues like this as the duplication of code, parsing and build time etc. grate on me. Do we really need separate recipes?

I think for this case, yes. And I'll happily trade needing extra buildtime for not needing USEFLAGS.

Quoted 4 lines

I'll probably take this patch as it improves the situation IMO (and is easy to change the configuration from a distro config if anyone does have an issue with it being disabled).

This patch changes the default behaviour in a way that distros need to update their configs in order to keep the status quo. I know I use distccmon-gnome on my boards, but will I remember 2 months from now that this patch went in? I asked this before in a different context, but I'll ask again: do you expect distro maintainers to vet each and every commit that goes into OE-core to find out when default got (silently) changed?

USEFLAGS should be a last resort when having seperate recipes doesn't work out, not a default cure.

regards,

Koen

#7 lore raw

Re: [PATCH 3/4] distcc: make distccmon-gnome optional and default to off

Quoted 4 lines · Koen Kooi

Op 14 nov. 2011, om 21:39 heeft Richard Purdie het volgende geschreven:

Quoted 3 lines · Koen Kooi
Quoted 1 line

I think splitting distccmon-gnome into a seperate recipe is a better idea.

Quoted 8 lines
Quoted 4 lines

I think that makes sense in some cases but I'd hate for it to become the default approach for issues like this as the duplication of code, parsing and build time etc. grate on me. Do we really need separate recipes?

I think for this case, yes. And I'll happily trade needing extra buildtime for not needing USEFLAGS.

The proposals for alternative recipes for the different combinations got voted down and PACKAGECONFIG was the preferred solution. I can't say I personally like everything about the outcome. I do however understand why we've ended up in that position and don't intend to undermine the usefulness of it.

Quoted 13 lines
Quoted 1 line

I'll probably take this patch as it improves the situation IMO (and

is

Quoted 2 lines

easy to change the configuration from a distro config if anyone does have an issue with it being disabled).

This patch changes the default behaviour in a way that distros need to update their configs in order to keep the status quo. I know I use distccmon-gnome on my boards, but will I remember 2 months from now that this patch went in? I asked this before in a different context, but I'll ask again: do you expect distro maintainers to vet each and every commit that goes into OE-core to find out when default got (silently) changed?

Quoted 2 lines

USEFLAGS should be a last resort when having seperate recipes doesn't work out, not a default cure.

The discussion and decision went against this, rightly or wrongly PACKAGECONFIG is here and we should start to use it. In some cases it will help you a lot, in others it will cause you a bit more work. Such is life.

However I do agree the defaults should be backwards compatible so I'm going to ask Paul to resubmit with a default value that matches the original recipe, probably something like:

PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)} \
                   ${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}

although we could/should probably have some kind of "HAVEGTK" macro type variable defined to help avoid some of this ugliness.

Cheers,

Richard

#22 lore raw

Re: [PATCH 3/4] distcc: make distccmon-gnome optional and default to off

In reply to Koen Kooi
Quoted 3 lines · On Monday 14 November 2011 21:55:28 Koen Kooi wrote:

This patch changes the default behaviour in a way that distros need to update their configs in order to keep the status quo. I know I use distccmon-gnome on my boards,

I have to say I'm surprised, I hadn't considered the distcc UI to be particularly useful in our context so I'm surprised that anyone is actually using it, but everyone has their own requirements I guess.

Quoted 4 lines

but will I remember 2 months from now that
this patch went in? I asked this before in a different context, but I'll ask again: do you expect distro maintainers to vet each and every commit that goes into OE-core to find out when default got (silently) changed?

There are degrees of "silently". Given that this patch is being reviewed on the mailing list I think it's anything but silent.

Cheers,
Paul

Signature · 2 lines
Paul Eggleton
Intel Open Source Technology Centre
#8 lore raw

Re: [PATCH 3/4] distcc: make distccmon-gnome optional and default to off

In reply to Richard Purdie

Op 14 nov. 2011, om 22:48 heeft Richard Purdie het volgende geschreven:

Quoted 32 lines · Koen Kooi
Quoted 4 lines

Op 14 nov. 2011, om 21:39 heeft Richard Purdie het volgende geschreven:

Quoted 3 lines · Koen Kooi
Quoted 1 line

I think splitting distccmon-gnome into a seperate recipe is a better idea.

Quoted 8 lines
Quoted 4 lines

I think that makes sense in some cases but I'd hate for it to become the default approach for issues like this as the duplication of code, parsing and build time etc. grate on me. Do we really need separate recipes?

I think for this case, yes. And I'll happily trade needing extra buildtime for not needing USEFLAGS.

The proposals for alternative recipes for the different combinations got voted down and PACKAGECONFIG was the preferred solution. I can't say I personally like everything about the outcome. I do however understand why we've ended up in that position and don't intend to undermine the usefulness of it.

Quoted 13 lines
Quoted 1 line

I'll probably take this patch as it improves the situation IMO (and

is

Quoted 2 lines

easy to change the configuration from a distro config if anyone does have an issue with it being disabled).

This patch changes the default behaviour in a way that distros need to update their configs in order to keep the status quo. I know I use distccmon-gnome on my boards, but will I remember 2 months from now that this patch went in? I asked this before in a different context, but I'll ask again: do you expect distro maintainers to vet each and every commit that goes into OE-core to find out when default got (silently) changed?

Quoted 7 lines
Quoted 2 lines

USEFLAGS should be a last resort when having seperate recipes doesn't work out, not a default cure.

The discussion and decision went against this, rightly or wrongly PACKAGECONFIG is here and we should start to use it. In some cases it will help you a lot, in others it will cause you a bit more work. Such is life.

Let's move this to the TSC and see if we can get this crap removed. There is already an existing ruling that USEFLAGS should be a last resort. I'm tired of yocto-marketing feel good patches making life harder for people actually using oe-core and its output.

#20 lore raw

Re: [PATCH 3/4] distcc: make distccmon-gnome optional and default to off

In reply to Richard Purdie

Am Montag, den 14.11.2011, 21:48 +0000 schrieb Richard Purdie:

Quoted 10 lines · Koen Kooi
Quoted 9 lines

Op 14 nov. 2011, om 21:39 heeft Richard Purdie het volgende geschreven:

Quoted 7 lines · Koen Kooi
Quoted 1 line

I think splitting distccmon-gnome into a seperate recipe is a better idea.

I think that makes sense in some cases but I'd hate for it to become the default approach for issues like this as the duplication of code, parsing and build time etc. grate on me. Do we really need separate recipes?

Quoted 5 lines
Quoted 3 lines

I think for this case, yes. And I'll happily trade needing extra buildtime for not needing USEFLAGS.

The proposals for alternative recipes for the different combinations got voted down and PACKAGECONFIG was the preferred solution.

Where is this vote (and discussion) documented? I found nothing in the OE Wiki and searching for it with »openembedded packageconfig vote oe-core list« brought up only some minutes [1].

I also do not remember anything on openembedded-devel where such general discussion definitely belong in my opinion.

It would be great if somebody could help me by giving me an URL.

Quoted 3 lines

I can't say I personally like everything about the outcome. I do however understand why we've ended up in that position and don't intend to undermine the usefulness of it.

[…]

Thanks,

Paul

[1] http://comments.gmane.org/gmane.comp.handhelds.openembedded.core/7688

#9 lore raw

Re: [PATCH 3/4] distcc: make distccmon-gnome optional and default to off

In reply to Koen Kooi
Quoted 37 lines · Koen Kooi

Op 14 nov. 2011, om 22:48 heeft Richard Purdie het volgende geschreven:

Quoted 35 lines · Koen Kooi
Quoted 4 lines

Op 14 nov. 2011, om 21:39 heeft Richard Purdie het volgende geschreven:

Quoted 3 lines · Koen Kooi
Quoted 1 line

I think splitting distccmon-gnome into a seperate recipe is a better idea.

Quoted 8 lines
Quoted 4 lines

I think that makes sense in some cases but I'd hate for it to become the default approach for issues like this as the duplication of code, parsing and build time etc. grate on me. Do we really need separate recipes?

I think for this case, yes. And I'll happily trade needing extra buildtime for not needing USEFLAGS.

The proposals for alternative recipes for the different combinations got voted down and PACKAGECONFIG was the preferred solution. I can't say I personally like everything about the outcome. I do however understand why we've ended up in that position and don't intend to undermine the usefulness of it.

Quoted 15 lines
Quoted 1 line

I'll probably take this patch as it improves the situation IMO (and

is

Quoted 2 lines

easy to change the configuration from a distro config if anyone does have an issue with it being disabled).

This patch changes the default behaviour in a way that distros need to update their configs in order to keep the status quo. I know I use distccmon-gnome on my boards, but will I remember 2 months from now that this patch went in? I asked this before in a different context, but I'll ask again: do you expect distro maintainers to vet each and every commit that goes into OE-core to find out when default got (silently) changed?

USEFLAGS should be a last resort when having seperate recipes doesn't work out, not a default cure.

Quoted 6 lines
Quoted 4 lines

The discussion and decision went against this, rightly or wrongly PACKAGECONFIG is here and we should start to use it. In some cases it will help you a lot, in others it will cause you a bit more work. Such is life.

Let's move this to the TSC and see if we can get this crap removed.

Lets revisit the original problem - how can a user disable something like X11 from being built when they don't need/want/care about it? We have the layers mechanism but I don't think its reasonable for them to have to bbappend everything with an optional X dependency which was the only option previously available.

I can't say I love the PACKAGECONFIG code but equally I'm not aware of any better proposal for solving a real world issue a significant portion of the userbase has in some form (be it X11, gstreamer plugins or other areas).

Quoted 2 lines

There is already an existing ruling that USEFLAGS should be a last
resort.

There was a discussion about *not* calling these USEFLAGS...

Quoted 2 lines

I'm tired of yocto-marketing feel good patches making life harder for people actually using oe-core and its output.

I can think of several actual users who find PACKAGECONFIG makes their life much easier. I'd guess they're not "proper" users though?

You keep talking about "them" and "us" and I'm really getting sick of it. The whole point is we work as one team on OE-Core. This also means we also take collective responsibility for actions ("disagree and commit"). There are a ton of hoops I jump through when trying to maintain OE-Core to ensure its not just me but everyone gets time for review, discussion etc. of patches and that there is a decision making process which involved others for major decisions (the TSC).

Decisions around PACKAGECONFIG were nothing to do with Yocto, Yocto didn't ask for it. Since OE-Core committed to that direction, yes, Yocto people have written some patches using it. Yocto did ensure during the discussion about that feature it could solve some problems Yocto was aware of.

Its ironic I'm now in the position I'm defending something I was never keen on (but I do understand why on balance we probably do need it).

Cheers,

Richard

#21 lore raw

Re: [PATCH 3/4] distcc: make distccmon-gnome optional and default to off

In reply to Paul Menzel
Quoted 17 lines · Paul Menzel

Am Montag, den 14.11.2011, 21:48 +0000 schrieb Richard Purdie:

Quoted 10 lines · Koen Kooi
Quoted 9 lines

Op 14 nov. 2011, om 21:39 heeft Richard Purdie het volgende geschreven:

Quoted 7 lines · Koen Kooi
Quoted 1 line

I think splitting distccmon-gnome into a seperate recipe is a better idea.

I think that makes sense in some cases but I'd hate for it to become the default approach for issues like this as the duplication of code, parsing and build time etc. grate on me. Do we really need separate recipes?

Quoted 5 lines
Quoted 3 lines

I think for this case, yes. And I'll happily trade needing extra buildtime for not needing USEFLAGS.

The proposals for alternative recipes for the different combinations got voted down and PACKAGECONFIG was the preferred solution.

Quoted 8 lines

Where is this vote (and discussion) documented? I found nothing in the OE Wiki and searching for it with »openembedded packageconfig vote oe-core list« brought up only some minutes [1].

I also do not remember anything on openembedded-devel where such general discussion definitely belong in my opinion.

It would be great if somebody could help me by giving me an URL.

The reference I could find was:

http://lists.linuxtogo.org/pipermail/tsc/2011-October/000302.html

which asked for objections amongst the TSC members, non were received. I'm drawing a blank finding the previous discussion, I think there was a different term used and I can't think what it was which makes searching hard. There was also discussion of the actual patches on the mailing list (which IMO is where the discussion should really happen).

Cheers,

Richard

#10 lore raw

Re: [PATCH 3/4] distcc: make distccmon-gnome optional and default to off

In reply to Koen Kooi
Quoted 4 lines · On Tuesday 15 November 2011 08:58:00 Koen Kooi wrote:

Let's move this to the TSC and see if we can get this crap removed. There is already an existing ruling that USEFLAGS should be a last resort. I'm tired of yocto-marketing feel good patches making life harder for people actually using oe-core and its output.

Marketing has nothing to do with it. All I really want is to fix the problem that the build blows up if you try to build any image for any of the qemu* machines with x11 removed from DISTRO_FEATURES. I think it would have been nice to also be able to avoid having to build gtk+ and everything it depends upon for all such images regardless of whether or not it is really needed, but I can live without making that further cleanup if it's going to cause such an uproar.

If PACKAGE_CONFIG is not an acceptable solution to this problem I'll accept checking for x11 in DISTRO_FEATURES alone, if that's what it takes to get the real problem fixed.

Cheers,
Paul

Signature · 2 lines
Paul Eggleton
Intel Open Source Technology Centre
#11 lore raw

Re: [PATCH 3/4] distcc: make distccmon-gnome optional and default to off

Op 15 nov. 2011, om 12:44 heeft Paul Eggleton het volgende geschreven:

Quoted 9 lines · On Tuesday 15 November 2011 08:58:00 Koen Kooi wrote:
Quoted 4 lines

Let's move this to the TSC and see if we can get this crap removed. There is already an existing ruling that USEFLAGS should be a last resort. I'm tired of yocto-marketing feel good patches making life harder for people actually using oe-core and its output.

Marketing has nothing to do with it. All I really want is to fix the problem that the build blows up if you try to build any image for any of the qemu* machines with x11 removed from DISTRO_FEATURES.

Isn't a better question "Why are all images for qemu machines forcing distcc to get built?"?

Quoted 9 lines

I think it would have been
nice to also be able to avoid having to build gtk+ and everything it depends upon for all such images regardless of whether or not it is really needed, but I can live without making that further cleanup if it's going to cause such an uproar.

If PACKAGE_CONFIG is not an acceptable solution to this problem I'll accept checking for x11 in DISTRO_FEATURES alone, if that's what it takes to get the real problem fixed.

Or just make a seperate recipe for distccmon-gnome, that would avoid the need of any USEFLAGS. Should be just a matter of require distcc_$PV.bb ; EXTRA_OEOCONF = foo

regards,

Koen

#12 lore raw

Re: [PATCH 3/4] distcc: make distccmon-gnome optional and default to off

Quoted 8 lines · Koen Kooi

Op 15 nov. 2011, om 12:44 heeft Paul Eggleton het volgende geschreven:

Quoted 6 lines · On Tuesday 15 November 2011 08:58:00 Koen Kooi wrote:
Quoted 4 lines

Let's move this to the TSC and see if we can get this crap removed. There is already an existing ruling that USEFLAGS should be a last resort. I'm tired of yocto-marketing feel good patches making life harder for people actually using oe-core and its output.

Quoted 5 lines
Quoted 3 lines

Marketing has nothing to do with it. All I really want is to fix the problem that the build blows up if you try to build any image for any of the qemu* machines with x11 removed from DISTRO_FEATURES.

Isn't a better question "Why are all images for qemu machines forcing distcc to get built?"?

Both questions are valid:

a) If I build distcc and I have x11 disabled, it shouldn't break.

b) Should qemu include distcc?

Traditionally, qemu-config does pull it in. Why? The qemu scripts allow pass through of compilation to the build system instead of doing it under emulation for a significant speed up in compile time. It was originally felt that it should therefore maximally autoconfigure that stuff transparently to the user.

If we don't think that is useful we can drop it. That is a separate discussion to a) which seems to be the contentious problem and solving
b) is just hiding from the issue.

Quoted 3 lines

Or just make a seperate recipe for distccmon-gnome, that would avoid the need of any USEFLAGS. Should be just a matter of require distcc_ $PV.bb ; EXTRA_OEOCONF = foo

and the rest (resolving the various packaging conflicts so that distcc-gnome only packages the gnome pieces and removes everything else).

To put this quite simply, I think there is no good reason we shouldn't use the mechanism we've selected to handle this kind of problem. We should have defaults the reflect backwards compatibility. Other than that where is the problem other than a general objection to PACKAGECONFIG?

Cheers,

Richard

#13 lore raw

Re: [PATCH 3/4] distcc: make distccmon-gnome optional and default to off

Op 15 nov. 2011, om 14:43 heeft Richard Purdie het volgende geschreven:

Quoted 39 lines · Koen Kooi
Quoted 8 lines

Op 15 nov. 2011, om 12:44 heeft Paul Eggleton het volgende geschreven:

Quoted 6 lines · On Tuesday 15 November 2011 08:58:00 Koen Kooi wrote:
Quoted 4 lines

Let's move this to the TSC and see if we can get this crap removed. There is already an existing ruling that USEFLAGS should be a last resort. I'm tired of yocto-marketing feel good patches making life harder for people actually using oe-core and its output.

Quoted 5 lines
Quoted 3 lines

Marketing has nothing to do with it. All I really want is to fix the problem that the build blows up if you try to build any image for any of the qemu* machines with x11 removed from DISTRO_FEATURES.

Isn't a better question "Why are all images for qemu machines forcing distcc to get built?"?

Both questions are valid:

a) If I build distcc and I have x11 disabled, it shouldn't break.

b) Should qemu include distcc?

Traditionally, qemu-config does pull it in. Why? The qemu scripts allow pass through of compilation to the build system instead of doing it under emulation for a significant speed up in compile time. It was originally felt that it should therefore maximally autoconfigure that stuff transparently to the user.

If we don't think that is useful we can drop it. That is a separate discussion to a) which seems to be the contentious problem and solving
b) is just hiding from the issue.

Quoted 3 lines

Or just make a seperate recipe for distccmon-gnome, that would avoid the need of any USEFLAGS. Should be just a matter of require distcc_ $PV.bb ; EXTRA_OEOCONF = foo

and the rest (resolving the various packaging conflicts so that distcc-gnome only packages the gnome pieces and removes everything else).

Quoted 5 lines

To put this quite simply, I think there is no good reason we shouldn't use the mechanism we've selected to handle this kind of problem. We should have defaults the reflect backwards compatibility. Other than that where is the problem other than a general objection to PACKAGECONFIG?

It forces a choice when there is a solution where things can coexist.

regards,

Koen

#14 lore raw

Re: [PATCH 3/4] distcc: make distccmon-gnome optional and default to off

Quoted 8 lines · Koen Kooi

Op 15 nov. 2011, om 14:43 heeft Richard Purdie het volgende geschreven:

Quoted 5 lines

To put this quite simply, I think there is no good reason we shouldn't use the mechanism we've selected to handle this kind of problem. We should have defaults the reflect backwards compatibility. Other than that where is the problem other than a general objection to PACKAGECONFIG?

It forces a choice when there is a solution where things can coexist.

There are multiple ways of coexisting and the configuration changing based on DISTRO_FEATURES doesn't force a choice either.

Bottom line is we discussed and agreed a way of handling this and I'd really like to have one preferred way of doing so. IMO the two recipe approach duplicates build time and adds complexity into the recipe which we can avoid using PACKAGECONFIG. Yes that has complexities of its own but the sooner we start experimenting with it, the sooner we'll work through any issues. There are certainly ways we can make things neater. If it really does turn out to be a bad idea we can come up with good reasons why we should get rid of it.

FWIW, if you want an example of how badly wrong a two recipe approach can get, see the dpkg/update-alternatives mess I fixed yesterday.

Cheers,

Richard

#15 lore raw

Re: [PATCH 3/4] distcc: make distccmon-gnome optional and default to off

Op 15 nov. 2011, om 15:42 heeft Richard Purdie het volgende geschreven:

Quoted 8 lines · Koen Kooi
Quoted 7 lines

Op 15 nov. 2011, om 14:43 heeft Richard Purdie het volgende geschreven:

Quoted 5 lines

To put this quite simply, I think there is no good reason we shouldn't use the mechanism we've selected to handle this kind of problem. We should have defaults the reflect backwards compatibility. Other than that where is the problem other than a general objection to PACKAGECONFIG?

Quoted 4 lines
Quoted 1 line

It forces a choice when there is a solution where things can coexist.

There are multiple ways of coexisting and the configuration changing based on DISTRO_FEATURES doesn't force a choice either.

It does force a choice, since you don't want to change DISTRO_FEATURES when distributing binaries. If changing it is safe, then it isn't a DISTRO_FEATURE.

regards,

Koen

#16 lore raw

Re: [PATCH 3/4] distcc: make distccmon-gnome optional and default to off

Quoted 10 lines · Koen Kooi

Op 15 nov. 2011, om 15:42 heeft Richard Purdie het volgende geschreven:

Quoted 8 lines · Koen Kooi
Quoted 7 lines

Op 15 nov. 2011, om 14:43 heeft Richard Purdie het volgende geschreven:

Quoted 5 lines

To put this quite simply, I think there is no good reason we shouldn't use the mechanism we've selected to handle this kind of problem. We should have defaults the reflect backwards compatibility. Other than that where is the problem other than a general objection to PACKAGECONFIG?

Quoted 8 lines
Quoted 4 lines
Quoted 1 line

It forces a choice when there is a solution where things can coexist.

There are multiple ways of coexisting and the configuration changing based on DISTRO_FEATURES doesn't force a choice either.

It does force a choice, since you don't want to change DISTRO_FEATURES when distributing binaries. If changing it is safe, then it isn't a DISTRO_FEATURE.

I'd expect a given distro to be able to figure out in advance whether it intends to have X11 or not?

If unsure you leave it present...

I really don't see the problem here.

Cheers,

Richard

#17 lore raw

Re: [PATCH 3/4] distcc: make distccmon-gnome optional and default to off

Op 15 nov. 2011, om 16:12 heeft Richard Purdie het volgende geschreven:

Quoted 20 lines · Koen Kooi
Quoted 10 lines

Op 15 nov. 2011, om 15:42 heeft Richard Purdie het volgende geschreven:

Quoted 8 lines · Koen Kooi
Quoted 7 lines

Op 15 nov. 2011, om 14:43 heeft Richard Purdie het volgende geschreven:

Quoted 5 lines

To put this quite simply, I think there is no good reason we shouldn't use the mechanism we've selected to handle this kind of problem. We should have defaults the reflect backwards compatibility. Other than that where is the problem other than a general objection to PACKAGECONFIG?

Quoted 8 lines
Quoted 4 lines
Quoted 1 line

It forces a choice when there is a solution where things can coexist.

There are multiple ways of coexisting and the configuration changing based on DISTRO_FEATURES doesn't force a choice either.

It does force a choice, since you don't want to change DISTRO_FEATURES when distributing binaries. If changing it is safe, then it isn't a DISTRO_FEATURE.

Quoted 6 lines

I'd expect a given distro to be able to figure out in advance whether it intends to have X11 or not?

If unsure you leave it present...

I really don't see the problem here.

The patch here doesn't use 'x11', but 'gui' as PACKAGECONFIG. Triggering on x11 is fine in this case.

regards,

Koen

#19 lore raw

Re: [PATCH 3/4] distcc: make distccmon-gnome optional and default to off

In reply to Koen Kooi
Quoted 10 lines · On Tuesday 15 November 2011 15:55:38 Koen Kooi wrote:

Op 15 nov. 2011, om 15:42 heeft Richard Purdie het volgende geschreven:

Quoted 9 lines · Koen Kooi
Quoted 8 lines

Op 15 nov. 2011, om 14:43 heeft Richard Purdie het volgende geschreven:

Quoted 6 lines

To put this quite simply, I think there is no good reason we shouldn't
use the mechanism we've selected to handle this kind of problem. We should have defaults the reflect backwards compatibility. Other than that where is the problem other than a general objection to PACKAGECONFIG?

Quoted 8 lines
Quoted 4 lines
Quoted 1 line

It forces a choice when there is a solution where things can coexist.

There are multiple ways of coexisting and the configuration changing based on DISTRO_FEATURES doesn't force a choice either.

It does force a choice, since you don't want to change DISTRO_FEATURES when distributing binaries. If changing it is safe, then it isn't a DISTRO_FEATURE.

It forces nothing - in fact it allows a distro to make choices.

DISTRO_FEATURES and PACKAGECONFIG are both expressions of distro policy which is intended to be set before binaries are produced; PACKAGECONFIG is simply on a per-recipe basis rather than across multiple recipes.

Cheers,
Paul

Signature · 2 lines
Paul Eggleton
Intel Open Source Technology Centre
#18 lore raw

Re: [PATCH 3/4] distcc: make distccmon-gnome optional and default to off

In reply to Koen Kooi
Quoted 2 lines · On Tuesday 15 November 2011 16:23:07 Koen Kooi wrote:

The patch here doesn't use 'x11', but 'gui' as PACKAGECONFIG. Triggering on x11 is fine in this case.

Unless I've misunderstood, PACKAGECONFIG's namespace is specific to the package; so it does not really matter what it is called. If we're talking about changing to use DISTRO_FEATURES then yes, x11 would be the feature to check for.

Cheers,
Paul

Signature · 2 lines
Paul Eggleton
Intel Open Source Technology Centre