Skip to contentSkip to conversation

4 Bug fixes!

PATCH In review Saul Wold 3 participants 11 messages Jun 6, 2014 – Jun 17, 2014

lore
Share & tools
lore

Saul Wold

author
#0 lore raw

cover 4 Bug fixes!

This is a set of patches address 4 bug that need to be addressed in master and daisy.

Sau!

Saul Wold (4):
update-rc.d/useradd: Add additional dependecies
busybox: put udhcpc in background
freetype: enable 64 bit file support
fontconfig: enable 64 bit file support

 meta/classes/update-rc.d.bbclass                      | 2 ++
 meta/classes/useradd.bbclass                          | 2 +-
 meta/recipes-core/busybox/busybox.inc                 | 1 +
 meta/recipes-graphics/fontconfig/fontconfig_2.11.1.bb | 2 ++
 meta/recipes-graphics/freetype/freetype_2.5.3.bb      | 2 ++
 5 files changed, 8 insertions(+), 1 deletion(-)
Signature · 1 line
1.8.3.1
author
#1 lore raw

PATCH 1/4 update-rc.d/useradd: Add additional dependecies

These dependcies are needed to ensure that thier packages are created correctly since these classes have runtime dependiences in their packages but they are not actually created yet at rootfs time.

[YOCTO #6072]

---
 meta/classes/update-rc.d.bbclass | 2 ++
 meta/classes/useradd.bbclass     | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)
meta/classes/update-rc.d.bbclass +2 -0
index 56eef4e..ca9486b 100644
@@ -1,6 +1,7 @@
 UPDATERCPN ?= "${PN}"
 
 DEPENDS_append = " update-rc.d-native"
+DEPENDS_append_class-target = " initscripts"
 UPDATERCD = "update-rc.d"
 UPDATERCD_class-cross = ""
 UPDATERCD_class-native = ""
@@ -67,6 +68,7 @@ python __anonymous() {
 }
 
 PACKAGESPLITFUNCS_prepend = "populate_packages_updatercd "
+PACKAGESPLITFUNCS_remove_class-nativesdk = "populate_packages_updatercd "
 
 populate_packages_updatercd[vardeps] += "updatercd_prerm updatercd_postrm updatercd_preinst updatercd_postinst"
 
meta/classes/useradd.bbclass +1 -1
index 3dd7a61..ea15dab 100644
@@ -4,7 +4,7 @@ inherit useradd_base
 # target sysroot, and shadow -native and -sysroot provide the utilities
 # and support files needed to add and modify user and group accounts
 DEPENDS_append = "${USERADDDEPENDS}"
-USERADDDEPENDS = " base-passwd shadow-native shadow-sysroot shadow"
+USERADDDEPENDS = " base-files base-passwd shadow-native shadow-sysroot shadow"
 USERADDDEPENDS_class-cross = ""
 USERADDDEPENDS_class-native = ""
 USERADDDEPENDS_class-nativesdk = ""
Signature · 1 line
1.8.3.1
#2 lore raw

Re: [PATCH 1/4] update-rc.d/useradd: Add additional dependecies

Quoted 3 lines · Saul Wold

These dependcies are needed to ensure that thier packages are created correctly since these classes have runtime dependiences in their packages but they are not actually created yet at rootfs time.

Can you be more specific about why these dependecies/dependcies/dependiences are required? I can't, offhand, think of any reason why update-rc.d requires initscripts for example.

Also, what's going on with the PACKAGESPLITFUNCS_remove_class-nativesdk?

thanks

p.

Quoted 28 lines

[YOCTO #6072]

---
 meta/classes/update-rc.d.bbclass | 2 ++
 meta/classes/useradd.bbclass     | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)
meta/classes/update-rc.d.bbclass +2 -0
index 56eef4e..ca9486b 100644
@@ -1,6 +1,7 @@
 UPDATERCPN ?= "${PN}"
 
 DEPENDS_append = " update-rc.d-native"
+DEPENDS_append_class-target = " initscripts"
 UPDATERCD = "update-rc.d"
 UPDATERCD_class-cross = ""
 UPDATERCD_class-native = ""
@@ -67,6 +68,7 @@ python __anonymous() {
 }
 
 PACKAGESPLITFUNCS_prepend = "populate_packages_updatercd "
+PACKAGESPLITFUNCS_remove_class-nativesdk = "populate_packages_updatercd "
 
 populate_packages_updatercd[vardeps] += "updatercd_prerm updatercd_postrm updatercd_preinst updatercd_postinst"
author
#3 lore raw

Re: [PATCH 1/4] update-rc.d/useradd: Add additional dependecies

Quoted 9 lines · Phil Blundell
Quoted 3 lines · Saul Wold

These dependcies are needed to ensure that thier packages are created correctly since these classes have runtime dependiences in their packages but they are not actually created yet at rootfs time.

Can you be more specific about why these dependecies/dependcies/dependiences are required? I can't, offhand, think of any reason why update-rc.d requires initscripts for example.

It's more about having initscripts-funtions package built so that it's available for the dynamic addition to the RDEPENDS later in populate_pacakges_updatercd(). If initscripts is not built and we add initscripts-functions to the RDEPENDS, the final rootfs will fail with an unsatisfied dependency.

Quoted 2 lines

Also, what's going on with the PACKAGESPLITFUNCS_remove_class-nativesdk?

We don't need to run that funtion to create the nativesdk sysroot, so don't run it.

Sau!

Quoted 36 lines

thanks

p.

Quoted 28 lines

[YOCTO #6072]

---
  meta/classes/update-rc.d.bbclass | 2 ++
  meta/classes/useradd.bbclass     | 2 +-
  2 files changed, 3 insertions(+), 1 deletion(-)
meta/classes/update-rc.d.bbclass +2 -0
index 56eef4e..ca9486b 100644
@@ -1,6 +1,7 @@
  UPDATERCPN ?= "${PN}"
 
  DEPENDS_append = " update-rc.d-native"
+DEPENDS_append_class-target = " initscripts"
  UPDATERCD = "update-rc.d"
  UPDATERCD_class-cross = ""
  UPDATERCD_class-native = ""
@@ -67,6 +68,7 @@ python __anonymous() {
  }
 
  PACKAGESPLITFUNCS_prepend = "populate_packages_updatercd "
+PACKAGESPLITFUNCS_remove_class-nativesdk = "populate_packages_updatercd "
 
  populate_packages_updatercd[vardeps] += "updatercd_prerm updatercd_postrm updatercd_preinst updatercd_postinst"
#4 lore raw

Re: [PATCH 1/4] update-rc.d/useradd: Add additional dependecies

Quoted 10 lines · Saul Wold
Quoted 9 lines · Phil Blundell
Quoted 3 lines · Saul Wold

These dependcies are needed to ensure that thier packages are created correctly since these classes have runtime dependiences in their packages but they are not actually created yet at rootfs time.

Can you be more specific about why these dependecies/dependcies/dependiences are required? I can't, offhand, think of any reason why update-rc.d requires initscripts for example.

Quoted 5 lines

It's more about having initscripts-funtions package built so that it's available for the dynamic addition to the RDEPENDS later in populate_pacakges_updatercd(). If initscripts is not built and we add initscripts-functions to the RDEPENDS, the final rootfs will fail with an unsatisfied dependency.

It seems to me that, if a given package ships an initscript which requires /etc/init.d/functions, it ought to be the responsibility of that package to rdepend on initscripts itself. I'm not sure it's entirely desirable for update-rc.d to drag that dependency in.

Quoted 4 lines
Quoted 2 lines

Also, what's going on with the PACKAGESPLITFUNCS_remove_class-nativesdk?

We don't need to run that funtion to create the nativesdk sysroot, so don't run it.

Fair enough, but this seems like an unrelated change (and one which isn't covered by the patch summary or description). Shouldn't that be in a separate commit?

p.

#5 lore raw

Re: [PATCH 1/4] update-rc.d/useradd: Add additional dependecies

Quoted 18 lines · On Tuesday 10 June 2014 15:53:19 Phil Blundell wrote:
Quoted 11 lines · Saul Wold
Quoted 9 lines · Phil Blundell
Quoted 4 lines · Saul Wold

These dependcies are needed to ensure that thier packages are created correctly since these classes have runtime dependiences in their packages
but they are not actually created yet at rootfs time.

Can you be more specific about why these dependecies/dependcies/dependiences are required? I can't, offhand, think of any reason why update-rc.d requires initscripts for example.

Quoted 5 lines

It's more about having initscripts-funtions package built so that it's available for the dynamic addition to the RDEPENDS later in populate_pacakges_updatercd(). If initscripts is not built and we add initscripts-functions to the RDEPENDS, the final rootfs will fail with an unsatisfied dependency.

Quoted 4 lines

It seems to me that, if a given package ships an initscript which requires /etc/init.d/functions, it ought to be the responsibility of that package to rdepend on initscripts itself. I'm not sure it's entirely desirable for update-rc.d to drag that dependency in.

It should be, however:

a) There are a bunch of recipes that don't currently do that, and you'll only find out there's a problem at do_rootfs time (or worse, if we went a step further and didn't even dynamically add the RDEPENDS, at runtime when the service fails to start).

b) Saul's patch adds a build-time dependency, not a runtime one, and the initscripts recipe only packages files so the impact is fairly trivial even if it's not going to be built through other dependencies anyway.

Quoted 8 lines
Quoted 4 lines
Quoted 1 line

Also, what's going on with the PACKAGESPLITFUNCS_remove_class-nativesdk?

We don't need to run that funtion to create the nativesdk sysroot, so don't run it.

Fair enough, but this seems like an unrelated change (and one which isn't covered by the patch summary or description). Shouldn't that be in a separate commit?

The patch has been merged now, but FWIW it seems like it probably should have been a separate one.

Cheers,
Paul

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

Re: [PATCH 1/4] update-rc.d/useradd: Add additional dependecies

Quoted 4 lines · Paul Eggleton

a) There are a bunch of recipes that don't currently do that, and you'll only find out there's a problem at do_rootfs time (or worse, if we went a step further and didn't even dynamically add the RDEPENDS, at runtime when the service fails to start).

Ah, true. It doesn't seem that it should be beyond the wit of man to add a QA check for that, though.

p.

#7 lore raw

Re: [PATCH 1/4] update-rc.d/useradd: Add additional dependecies

Quoted 8 lines · On Tuesday 17 June 2014 14:18:41 Phil Blundell wrote:
Quoted 4 lines · Paul Eggleton

a) There are a bunch of recipes that don't currently do that, and you'll only find out there's a problem at do_rootfs time (or worse, if we went a step further and didn't even dynamically add the RDEPENDS, at runtime when the service fails to start).

Ah, true. It doesn't seem that it should be beyond the wit of man to add a QA check for that, though.

I guess there are two ways of handling this:

1) Automatically add the dependency

or

2) Check for the lack of it and fail if it should be added

For better or worse we opted to go with #1. I wouldn't necessarily be totally opposed to changing to #2 if people feel it is cleaner (and it is, a little) but someone would actually have to do that work and then fix the resulting fallout.

Cheers,
Paul

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

PATCH 2/4 busybox: put udhcpc in background

In reply to Saul Wold

If the interface is slow to come up udhcpc will continue in the background

[YOCTO #6339]

---
 meta/recipes-core/busybox/busybox.inc | 1 +
 1 file changed, 1 insertion(+)
meta/recipes-core/busybox/busybox.inc +1 -0
index 0c1969c..f6cb039 100644
@@ -119,6 +119,7 @@ do_prepare_config () {
 	  {if(net==2&&$0 !~ /^#/&&$1){print("# "$1" is not set")}else{print}}' \
 		  ${S}/.config.oe-tmp > ${S}/.config
 	fi
+	sed -i 's/CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n"/CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -b"/' ${S}/.config
 }
 
 # returns all the elements from the src uri that are .cfg files
Signature · 1 line
1.8.3.1
author
#9 lore raw

PATCH 3/4 freetype: enable 64 bit file support

In reply to Saul Wold

When running 32bit code on a large filessytem with 64bit inodes, the fontcache was not being created correctly because an EOVERFLOW was being returned from the fstat when reading the 64 inode on a 32bit system.

The fontcache is created at rootfs time on the host system via qemu.

[YOCTO #6338]

---
 meta/recipes-graphics/freetype/freetype_2.5.3.bb | 2 ++
 1 file changed, 2 insertions(+)
meta/recipes-graphics/freetype/freetype_2.5.3.bb +2 -0
index 0944d83..2c861de 100644
@@ -25,6 +25,8 @@ LIBTOOL = "${S}/builds/unix/${HOST_SYS}-libtool"
 EXTRA_OEMAKE = "'LIBTOOL=${LIBTOOL}'"
 EXTRA_OEMAKE_class-native = ""
 EXTRA_OECONF = "--without-zlib --without-bzip2 CC_BUILD='${BUILD_CC}'"
+TARGET_CPPFLAGS += "-D_FILE_OFFSET_BITS=64"
+
 
 PACKAGECONFIG ??= ""
 PACKAGECONFIG[pixmap] = "--with-png,--without-png,libpng"
Signature · 1 line
1.8.3.1
author
#10 lore raw

PATCH 4/4 fontconfig: enable 64 bit file support

In reply to Saul Wold

When running 32bit code on a large filessytem with 64bit inodes, the fontcache was not being created correctly because an EOVERFLOW was being returned from the fstat when reading the 64 inode on a 32bit system.

The fontcache is created at rootfs time on the host system via qemu.

[YOCTO #6338]

---
 meta/recipes-graphics/fontconfig/fontconfig_2.11.1.bb | 2 ++
 1 file changed, 2 insertions(+)
meta/recipes-graphics/fontconfig/fontconfig_2.11.1.bb +2 -0
index 797b321..4fa58ab 100644
@@ -38,5 +38,7 @@ DEBIAN_NOAUTONAME_fontconfig-utils = "1"
 inherit autotools pkgconfig
 
 EXTRA_OECONF = " --disable-docs --with-default-fonts=${datadir}/fonts"
+TARGET_CPPFLAGS += "-D_FILE_OFFSET_BITS=64"
+
 
 BBCLASSEXTEND = "native"
Signature · 1 line
1.8.3.1