Skip to contentSkip to conversation

Joshua Lock : netbase: remove redundant assignments

oe-commits Martin Jansa 4 participants 9 messages Feb 27, 2012 1 message not in the archive

lore
Share & tools
lore
#1 lore raw
In reply to a message not in the archive
Quoted 5 lines · On Wed, Feb 22, 2012 at 10:13:09PM +0000, [email protected] wrote:
Module: openembedded-core.git
Branch: master
Commit: c3d5800d2850a186f91b5a0db642aa5d1c20156b
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=c3d5800d2850a186f91b5a0db642aa5d1c20156b
Quoted 8 lines
Author: Joshua Lock <[email protected]>
Date:   Tue Feb 21 17:46:44 2012 -0800

netbase: remove redundant assignments

There's no need to explicitly set PACKAGE_ARCH = MACHINE_ARCH, base.bbclass takes care of setting this value for us based on the interfaces for those machines being an OVERRIDE.

do_install () {
...

        # Disable network manager on machines that commonly do NFS booting
        case "${MACHINE}" in
                "qemuarm" | "qemux86" | "qemux86-64" | "qemumips" | "qemuppc" )

This causes do_install hash to depend on MACHINE variable for all MACHINEs, so making whole recipe MACHINE_ARCH would be more effective then rebuilding TARGET_ARCH package after every MACHINE switch.

Cheers,

Quoted 27 lines

---

 meta/recipes-core/netbase/netbase_4.47.bb |    4 ----
 1 files changed, 0 insertions(+), 4 deletions(-)
meta/recipes-core/netbase/netbase_4.47.bb +0 -4
index ddfa8ad..3aa4915 100644
@@ -47,7 +47,3 @@ do_install () {
 }
 
 CONFFILES_${PN} = "${sysconfdir}/hosts ${sysconfdir}/network/interfaces"
-
-PACKAGE_ARCH_qemuarm = "${MACHINE_ARCH}"
-PACKAGE_ARCH_qemux86 = "${MACHINE_ARCH}"
-PACKAGE_ARCH_qemux86-64 = "${MACHINE_ARCH}"

_______________________________________________
Openembedded-commits mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-commits

Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
#2 lore raw

Op 27 feb. 2012, om 11:33 heeft Martin Jansa het volgende geschreven:

Quoted 17 lines · On Wed, Feb 22, 2012 at 10:13:09PM +0000, [email protected] wrote:
Quoted 5 lines
Module: openembedded-core.git
Branch: master
Commit: c3d5800d2850a186f91b5a0db642aa5d1c20156b
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=c3d5800d2850a186f91b5a0db642aa5d1c20156b
Quoted 8 lines
Author: Joshua Lock <[email protected]>
Date:   Tue Feb 21 17:46:44 2012 -0800

netbase: remove redundant assignments

There's no need to explicitly set PACKAGE_ARCH = MACHINE_ARCH, base.bbclass takes care of setting this value for us based on the interfaces for those machines being an OVERRIDE.

do_install () {
...

Quoted 7 lines
       # Disable network manager on machines that commonly do NFS booting
       case "${MACHINE}" in
               "qemuarm" | "qemux86" | "qemux86-64" | "qemumips" | "qemuppc" )

This causes do_install hash to depend on MACHINE variable for all MACHINEs, so making whole recipe MACHINE_ARCH would be more effective then rebuilding TARGET_ARCH package after every MACHINE switch.

That whole bit needs to go into the specific nfs image recipe, not into the recipe. Unless we decide nfs is the one and only way to boot qemu machines.

regards,

Koen

#3 lore raw
Quoted 23 lines · Koen Kooi

Op 27 feb. 2012, om 11:33 heeft Martin Jansa het volgende geschreven:

Quoted 21 lines · On Wed, Feb 22, 2012 at 10:13:09PM +0000, [email protected] wrote:
Quoted 5 lines
Module: openembedded-core.git
Branch: master
Commit: c3d5800d2850a186f91b5a0db642aa5d1c20156b
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=c3d5800d2850a186f91b5a0db642aa5d1c20156b
Quoted 8 lines
Author: Joshua Lock <[email protected]>
Date:   Tue Feb 21 17:46:44 2012 -0800

netbase: remove redundant assignments

There's no need to explicitly set PACKAGE_ARCH = MACHINE_ARCH, base.bbclass takes care of setting this value for us based on the interfaces for those machines being an OVERRIDE.

do_install () {
...

       # Disable network manager on machines that commonly do NFS booting
       case "${MACHINE}" in
               "qemuarm" | "qemux86" | "qemux86-64" | "qemumips" | "qemuppc" )
Quoted 7 lines
Quoted 3 lines

This causes do_install hash to depend on MACHINE variable for all MACHINEs, so making whole recipe MACHINE_ARCH would be more effective then rebuilding TARGET_ARCH package after every MACHINE switch.

That whole bit needs to go into the specific nfs image recipe, not into the recipe. Unless we decide nfs is the one and only way to boot qemu machines.

Clearly the qemu machines boot on non-nfs setups just fine and the comment is just a bit stale here.

For qemu we expect the IP address to be stable and consistent so we know where to find it and we don't expect it to disappear. The problem was that if network manager starts poking around the main ethernet interface, anything can go wrong (e.g. random QA test failures if networkmanager decided to change the interface at the wrong moment). We therefore really do know better than network manager when it comes to ethernet connectivity into our qemu images.

There are a few options here:

a) Whitelist the MACHINE variable in hashes apart from the qemu machines

b) Change the code to a do_install_append_qemu* which would mean the hashes become stable.

c) Shove the information into a qemu specific package.

The trouble with c) before everyone decides its the best is how/when do you include that package. It really needs to be present whenever network manager is present. I don't want to end up with someone installing it from feeds and getting different behaviour as it would be a nightmare to debug.

d) We could also decide we don't care about network manager any more and just delete this I guess since we default to connman now.

Cheers,

Richard

#4 lore raw
Quoted 43 lines · Richard Purdie
Quoted 23 lines · Koen Kooi

Op 27 feb. 2012, om 11:33 heeft Martin Jansa het volgende geschreven:

Quoted 21 lines · On Wed, Feb 22, 2012 at 10:13:09PM +0000, [email protected] wrote:
Quoted 5 lines
Module: openembedded-core.git
Branch: master
Commit: c3d5800d2850a186f91b5a0db642aa5d1c20156b
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=c3d5800d2850a186f91b5a0db642aa5d1c20156b
Quoted 8 lines
Author: Joshua Lock <[email protected]>
Date:   Tue Feb 21 17:46:44 2012 -0800

netbase: remove redundant assignments

There's no need to explicitly set PACKAGE_ARCH = MACHINE_ARCH, base.bbclass takes care of setting this value for us based on the interfaces for those machines being an OVERRIDE.

do_install () {
...

       # Disable network manager on machines that commonly do NFS booting
       case "${MACHINE}" in
               "qemuarm" | "qemux86" | "qemux86-64" | "qemumips" | "qemuppc" )
Quoted 7 lines
Quoted 3 lines

This causes do_install hash to depend on MACHINE variable for all MACHINEs, so making whole recipe MACHINE_ARCH would be more effective then rebuilding TARGET_ARCH package after every MACHINE switch.

That whole bit needs to go into the specific nfs image recipe, not into the recipe. Unless we decide nfs is the one and only way to boot qemu machines.

Clearly the qemu machines boot on non-nfs setups just fine and the comment is just a bit stale here.

For qemu we expect the IP address to be stable and consistent so we know where to find it and we don't expect it to disappear. The problem was that if network manager starts poking around the main ethernet interface, anything can go wrong (e.g. random QA test failures if networkmanager decided to change the interface at the wrong moment). We therefore really do know better than network manager when it comes to ethernet connectivity into our qemu images.

Quoted 6 lines

There are a few options here:

a) Whitelist the MACHINE variable in hashes apart from the qemu machines

b) Change the code to a do_install_append_qemu* which would mean the hashes become stable.

I'm fine with this but maybe then return PACKAGE_ARCH setting for them as we would be assuming that every machine with such append also have own interfaces file in SRC_URI (this is now true better to see it explicitly set above do_install_append_qemu* statement IMHO).

Quoted 8 lines

c) Shove the information into a qemu specific package.

The trouble with c) before everyone decides its the best is how/when do you include that package. It really needs to be present whenever network manager is present. I don't want to end up with someone installing it from feeds and getting different behaviour as it would be a nightmare to debug.

Bit of off-topic, but do we really need EXTRA_IMAGEDEPENDS += "qemu-native qemu-helper-native" in meta/conf/machine/include/qemu.inc?

My guess is that in many cases host running builds isn't the same box where someone is using native qemu to test those images. (e.g. in my case I'm running builds in minimal chroot, while using distribution qemu to test resulting images).

Cheers,

Quoted 14 lines

d) We could also decide we don't care about network manager any more and just delete this I guess since we default to connman now.

Cheers,

Richard

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
#5 lore raw
Quoted 48 lines · Martin Jansa
Quoted 47 lines · Richard Purdie
Quoted 23 lines · Koen Kooi

Op 27 feb. 2012, om 11:33 heeft Martin Jansa het volgende geschreven:

Quoted 21 lines · On Wed, Feb 22, 2012 at 10:13:09PM +0000, [email protected] wrote:
Quoted 5 lines
Module: openembedded-core.git
Branch: master
Commit: c3d5800d2850a186f91b5a0db642aa5d1c20156b
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=c3d5800d2850a186f91b5a0db642aa5d1c20156b
Quoted 8 lines
Author: Joshua Lock <[email protected]>
Date:   Tue Feb 21 17:46:44 2012 -0800

netbase: remove redundant assignments

There's no need to explicitly set PACKAGE_ARCH = MACHINE_ARCH, base.bbclass takes care of setting this value for us based on the interfaces for those machines being an OVERRIDE.

do_install () {
...

       # Disable network manager on machines that commonly do NFS booting
       case "${MACHINE}" in
               "qemuarm" | "qemux86" | "qemux86-64" | "qemumips" | "qemuppc" )
Quoted 7 lines
Quoted 3 lines

This causes do_install hash to depend on MACHINE variable for all MACHINEs, so making whole recipe MACHINE_ARCH would be more effective then rebuilding TARGET_ARCH package after every MACHINE switch.

That whole bit needs to go into the specific nfs image recipe, not into the recipe. Unless we decide nfs is the one and only way to boot qemu machines.

Clearly the qemu machines boot on non-nfs setups just fine and the comment is just a bit stale here.

For qemu we expect the IP address to be stable and consistent so we know where to find it and we don't expect it to disappear. The problem was that if network manager starts poking around the main ethernet interface, anything can go wrong (e.g. random QA test failures if networkmanager decided to change the interface at the wrong moment). We therefore really do know better than network manager when it comes to ethernet connectivity into our qemu images.

There are a few options here:

a) Whitelist the MACHINE variable in hashes apart from the qemu machines

Quoted 7 lines
Quoted 2 lines

b) Change the code to a do_install_append_qemu* which would mean the hashes become stable.

I'm fine with this but maybe then return PACKAGE_ARCH setting for them as we would be assuming that every machine with such append also have own interfaces file in SRC_URI (this is now true better to see it explicitly set above do_install_append_qemu* statement IMHO).

Agreed.

Quoted 8 lines
Quoted 7 lines

c) Shove the information into a qemu specific package.

The trouble with c) before everyone decides its the best is how/when do you include that package. It really needs to be present whenever network manager is present. I don't want to end up with someone installing it from feeds and getting different behaviour as it would be a nightmare to debug.

Quoted 8 lines

Bit of off-topic, but do we really need EXTRA_IMAGEDEPENDS += "qemu-native qemu-helper-native" in meta/conf/machine/include/qemu.inc?

My guess is that in many cases host running builds isn't the same box where someone is using native qemu to test those images. (e.g. in my case I'm running builds in minimal chroot, while using distribution qemu to test resulting images).

We have a lot of manuals and user expectation that:

bitbake some-image
runqemu some-image

'just works'. That dependency is the only way we can ensure it :/

Cheers,

Richard

#7 lore raw
In reply to Richard Purdie

Op 27 feb. 2012, om 13:13 heeft Richard Purdie het volgende geschreven:

Quoted 43 lines · Koen Kooi
Quoted 23 lines

Op 27 feb. 2012, om 11:33 heeft Martin Jansa het volgende geschreven:

Quoted 21 lines · On Wed, Feb 22, 2012 at 10:13:09PM +0000, [email protected] wrote:
Quoted 5 lines
Module: openembedded-core.git
Branch: master
Commit: c3d5800d2850a186f91b5a0db642aa5d1c20156b
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=c3d5800d2850a186f91b5a0db642aa5d1c20156b
Quoted 8 lines
Author: Joshua Lock <[email protected]>
Date:   Tue Feb 21 17:46:44 2012 -0800

netbase: remove redundant assignments

There's no need to explicitly set PACKAGE_ARCH = MACHINE_ARCH, base.bbclass takes care of setting this value for us based on the interfaces for those machines being an OVERRIDE.

do_install () {
...

      # Disable network manager on machines that commonly do NFS booting
      case "${MACHINE}" in
              "qemuarm" | "qemux86" | "qemux86-64" | "qemumips" | "qemuppc" )
Quoted 7 lines
Quoted 3 lines

This causes do_install hash to depend on MACHINE variable for all MACHINEs, so making whole recipe MACHINE_ARCH would be more effective then rebuilding TARGET_ARCH package after every MACHINE switch.

That whole bit needs to go into the specific nfs image recipe, not into the recipe. Unless we decide nfs is the one and only way to boot qemu machines.

Clearly the qemu machines boot on non-nfs setups just fine and the comment is just a bit stale here.

For qemu we expect the IP address to be stable and consistent so we know where to find it and we don't expect it to disappear. The problem was that if network manager starts poking around the main ethernet interface, anything can go wrong (e.g. random QA test failures if networkmanager decided to change the interface at the wrong moment). We therefore really do know better than network manager when it comes to ethernet connectivity into our qemu images.

Quoted 6 lines

There are a few options here:

a) Whitelist the MACHINE variable in hashes apart from the qemu machines

b) Change the code to a do_install_append_qemu* which would mean the hashes become stable.

Both are hacks for the nfs use case.

Quoted 7 lines

c) Shove the information into a qemu specific package.

The trouble with c) before everyone decides its the best is how/when do you include that package. It really needs to be present whenever network manager is present. I don't want to end up with someone installing it from feeds and getting different behaviour as it would be a nightmare to debug.

If you put it in a seperate package it's becomes something people can opt-in to. If someone opts-in and it breaks because of that, that person gets to keep both pieces.

Quoted 2 lines

d) We could also decide we don't care about network manager any more and just delete this I guess since we default to connman now.

You can load the networkmanager plugin (http://wiki.debian.org/NetworkManager#Wired_Networks_are_Unmanaged) that makes it ignore entries in /etc/network/interfaces to accomplish the same. Right now both connman and networkmanager ignore /etc/network/interfaces which leads to mass confusion. I discussed this with Josh at ELC but forgot to send an email about this. I think we should split netbase into:

1) a package with /etc/rpc, /etc/hosts, /etc/protocols and /etc/services
2) a package with /etc/network/interfaces
3) a package with the initscript (probably move that into the ifupdown package)

That way we can support the following without having unused config files in the filesystem:

* simple ifupdown style networking using /etc/network/interfaces
* networkmanager honouring devices managed by /etc/network/interfaces
* networkmanager handling everything
* connman handling everything
* no networking in userspace, boot with ip=dhcp

regards,

Koen

#8 lore raw
Quoted 3 lines · Koen Kooi

1) a package with /etc/rpc, /etc/hosts, /etc/protocols and /etc/services
2) a package with /etc/network/interfaces
3) a package with the initscript (probably move that into the ifupdown package)

I like this idea a lot :-D

Signature · 3 lines
Otavio Salvador                             O.S. Systems
E-mail: [email protected]  http://www.ossystems.com.br
Mobile: +55 53 9981-7854              http://projetos.ossystems.com.br
#6 lore raw
In reply to Richard Purdie
Quoted 76 lines · Richard Purdie
Quoted 48 lines · Martin Jansa
Quoted 47 lines · Richard Purdie
Quoted 23 lines · Koen Kooi

Op 27 feb. 2012, om 11:33 heeft Martin Jansa het volgende geschreven:

Quoted 21 lines · On Wed, Feb 22, 2012 at 10:13:09PM +0000, [email protected] wrote:
Quoted 5 lines
Module: openembedded-core.git
Branch: master
Commit: c3d5800d2850a186f91b5a0db642aa5d1c20156b
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=c3d5800d2850a186f91b5a0db642aa5d1c20156b
Quoted 8 lines
Author: Joshua Lock <[email protected]>
Date:   Tue Feb 21 17:46:44 2012 -0800

netbase: remove redundant assignments

There's no need to explicitly set PACKAGE_ARCH = MACHINE_ARCH, base.bbclass takes care of setting this value for us based on the interfaces for those machines being an OVERRIDE.

do_install () {
...

       # Disable network manager on machines that commonly do NFS booting
       case "${MACHINE}" in
               "qemuarm" | "qemux86" | "qemux86-64" | "qemumips" | "qemuppc" )
Quoted 7 lines
Quoted 3 lines

This causes do_install hash to depend on MACHINE variable for all MACHINEs, so making whole recipe MACHINE_ARCH would be more effective then rebuilding TARGET_ARCH package after every MACHINE switch.

That whole bit needs to go into the specific nfs image recipe, not into the recipe. Unless we decide nfs is the one and only way to boot qemu machines.

Clearly the qemu machines boot on non-nfs setups just fine and the comment is just a bit stale here.

For qemu we expect the IP address to be stable and consistent so we know where to find it and we don't expect it to disappear. The problem was that if network manager starts poking around the main ethernet interface, anything can go wrong (e.g. random QA test failures if networkmanager decided to change the interface at the wrong moment). We therefore really do know better than network manager when it comes to ethernet connectivity into our qemu images.

There are a few options here:

a) Whitelist the MACHINE variable in hashes apart from the qemu machines

Quoted 7 lines
Quoted 2 lines

b) Change the code to a do_install_append_qemu* which would mean the hashes become stable.

I'm fine with this but maybe then return PACKAGE_ARCH setting for them as we would be assuming that every machine with such append also have own interfaces file in SRC_URI (this is now true better to see it explicitly set above do_install_append_qemu* statement IMHO).

Agreed.

Quoted 8 lines
Quoted 7 lines

c) Shove the information into a qemu specific package.

The trouble with c) before everyone decides its the best is how/when do you include that package. It really needs to be present whenever network manager is present. I don't want to end up with someone installing it from feeds and getting different behaviour as it would be a nightmare to debug.

Quoted 8 lines

Bit of off-topic, but do we really need EXTRA_IMAGEDEPENDS += "qemu-native qemu-helper-native" in meta/conf/machine/include/qemu.inc?

My guess is that in many cases host running builds isn't the same box where someone is using native qemu to test those images. (e.g. in my case I'm running builds in minimal chroot, while using distribution qemu to test resulting images).

Quoted 6 lines

We have a lot of manuals and user expectation that:

bitbake some-image
runqemu some-image

'just works'. That dependency is the only way we can ensure it :/

Isn't "bitbake meta-ide-support" also expected to be executed before runqemu? At least runqemu-export-rootfs assumes it is and meta-ide-support already depends on qemu-helper-native which in turn RDEPENDS on qemu-native.

Or we can add mesa-native to provide libgl-native :).

Cheers,

Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
#9 lore raw
In reply to Otavio Salvador

Op 27 feb. 2012, om 14:31 heeft Otavio Salvador het volgende geschreven:

Quoted 6 lines · Koen Kooi
Quoted 3 lines

1) a package with /etc/rpc, /etc/hosts, /etc/protocols and /etc/services
2) a package with /etc/network/interfaces
3) a package with the initscript (probably move that into the ifupdown package)

I like this idea a lot :-D

Any suggestions on how to do the split? This is going to be a painfull change by the looks of it, so I'd like a lot of input before I go spin a patchset :)

regards,

Koen