Skip to contentSkip to conversation

Backports for dizzy

PATCH RESEND Applied Martin Jansa 2 participants 9 messages Dec 10, 2015 – Dec 13, 2015

lore
Share & tools
lore
#0 lore raw

cover Backports for dizzy

The following changes since commit 7bb182bdd130266100fc541fd09b82d09c51cd80:

build-appliance-image: Update to dizzy head revision (2015-09-29 14:56:04 +0100)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib jansa/dizzy-backports
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=jansa/dizzy-backports

Chen Qi (1):
image.bbclass: don't let do_rootfs depend on BUILDNAME

Martin Jansa (3):
fontcache: allow to pass extra parameters and environment to fc-cache
texinfo: don't create dependency on INHERIT variable linux-dtb.inc: drop unused DTB_NAME variable from do_install

Mike Crowe (1):
allarch: Force TARGET_*FLAGS variable values

Richard Purdie (2):
layer.conf: Add several allarch dependency exclusions layer.conf: Add missing dependency for allarch package
initramfs-framework

 meta/classes/allarch.bbclass                  |  4 ++++
 meta/classes/fontcache.bbclass                | 19 +++++++++++++++----
 meta/classes/image.bbclass                    |  2 +-
 meta/conf/layer.conf                          | 11 +++++++++++
 meta/recipes-extended/texinfo/texinfo_5.2.bb  |  2 +-
 meta/recipes-kernel/linux/linux-dtb.inc       |  1 -
 scripts/postinst-intercepts/update_font_cache |  4 ++--
 7 files changed, 34 insertions(+), 9 deletions(-)
Signature · 1 line
2.6.3
#1 lore raw

PATCH RESEND 1/7 fontcache: allow to pass extra parameters and environment to fc-cache

* this can be useful for passing extra parameters, pass
-v by default to see what's going on in do_rootfs
* we need to use this for extra parameter we implemented
in fontconfig:
--ignore-mtime always use cache file regardless of font directory mtime because the checksum of fontcache generated in do_rootfs doesn't match with /usr/share/fonts directory as seen on target device causing fontconfig to re-create the cache when fontconfig is used for first time or worse create
new cache in every user's home directory when /usr/ filesystem is read only and cache cannot be updated.

Running FC_DEBUG=16 fc-cache -v on such device shows:
FcCacheTimeValid dir "/usr/share/fonts" cache checksum 1441207803 dir checksum 1441206149
* my guess is that the checksum is different, because pseudo
(which is unloaded when running qemuwrapper) or because some
influence of running the rootfs under qemu.

---
 meta/classes/fontcache.bbclass                | 19 +++++++++++++++----
 scripts/postinst-intercepts/update_font_cache |  4 ++--
 2 files changed, 17 insertions(+), 6 deletions(-)
meta/classes/fontcache.bbclass +15 -4
index d122387..8ebdfc4 100644
@@ -9,12 +9,23 @@ inherit qemu
 FONT_PACKAGES ??= "${PN}"
 FONT_EXTRA_RDEPENDS ?= "fontconfig-utils"
 FONTCONFIG_CACHE_DIR ?= "${localstatedir}/cache/fontconfig"
+FONTCONFIG_CACHE_PARAMS ?= "-v"
+# You can change this to e.g. FC_DEBUG=16 to debug fc-cache issues,
+# something has to be set, because qemuwrapper is using this variable after -E
+# multiple variables aren't allowed because for qemu they are separated
+# by comma and in -n "$D" case they should be separated by space
+FONTCONFIG_CACHE_ENV ?= "FC_DEBUG=1"
 fontcache_common() {
-if [ "x$D" != "x" ] ; then
-	$INTERCEPT_DIR/postinst_intercept update_font_cache ${PKG} mlprefix=${MLPREFIX} bindir=${bindir} \
-		libdir=${libdir} base_libdir=${base_libdir} fontconfigcachedir=${FONTCONFIG_CACHE_DIR}
+if [ -n "$D" ] ; then
+	$INTERCEPT_DIR/postinst_intercept update_font_cache ${PKG} mlprefix=${MLPREFIX} \
+		'bindir="${bindir}"' \
+		'libdir="${libdir}"' \
+		'base_libdir="${base_libdir}"' \
+		'fontconfigcachedir="${FONTCONFIG_CACHE_DIR}"' \
+		'fontconfigcacheparams="${FONTCONFIG_CACHE_PARAMS}"' \
+		'fontconfigcacheenv="${FONTCONFIG_CACHE_ENV}"'
 else
-	fc-cache
+	${FONTCONFIG_CACHE_ENV} fc-cache ${FONTCONFIG_CACHE_PARAMS}
 fi
 }
 
scripts/postinst-intercepts/update_font_cache +2 -2
index c8c6018..0deab3c 100644
@@ -1,5 +1,5 @@
 #!/bin/sh
 
-PSEUDO_UNLOAD=1 qemuwrapper -L $D -E LD_LIBRARY_PATH=$D/${libdir}:$D/${base_libdir}\
-					$D${bindir}/fc-cache --sysroot=$D
+PSEUDO_UNLOAD=1 qemuwrapper -L $D -E LD_LIBRARY_PATH=$D/${libdir}:$D/${base_libdir} \
+					-E ${fontconfigcacheenv} $D${bindir}/fc-cache --sysroot=$D ${fontconfigcacheparams}
 chown -R root:root $D${fontconfigcachedir}
Signature · 1 line
2.6.3
#2 lore raw

PATCH RESEND 2/7 image.bbclass: don't let do_rootfs depend on BUILDNAME

In reply to Martin Jansa

From: Chen Qi <[email protected]>

BUILDNAME is set by cooker as a string of current time. Letting do_rootfs task depend on this variable gets us no benefit. Besides, letting do_rootfs task depend on this variable will cause us trouble when executing `bitbake -S none core-image-minimal'. With current code, this command gives us error complaining about the different bashhash of do_rootfs task.

---
 meta/classes/image.bbclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/classes/image.bbclass +1 -1
index 1c0fda7..c0f9775 100644
@@ -94,7 +94,7 @@ def rootfs_variables(d):
                  'IMAGE_ROOTFS_MAXSIZE','IMAGE_NAME','IMAGE_LINK_NAME','IMAGE_MANIFEST','DEPLOY_DIR_IMAGE','RM_OLD_IMAGE','IMAGE_FSTYPES','IMAGE_INSTALL_COMPLEMENTARY','IMAGE_LINGUAS','SDK_OS',
                  'SDK_OUTPUT','SDKPATHNATIVE','SDKTARGETSYSROOT','SDK_DIR','SDK_VENDOR','SDKIMAGE_INSTALL_COMPLEMENTARY','SDK_PACKAGE_ARCHS','SDK_OUTPUT','SDKTARGETSYSROOT','MULTILIBRE_ALLOW_REP',
                  'MULTILIB_TEMP_ROOTFS','MULTILIB_VARIANTS','MULTILIBS','ALL_MULTILIB_PACKAGE_ARCHS','MULTILIB_GLOBAL_VARIANTS','BAD_RECOMMENDATIONS','NO_RECOMMENDATIONS','PACKAGE_ARCHS',
-                 'PACKAGE_CLASSES','TARGET_VENDOR','TARGET_VENDOR','TARGET_ARCH','TARGET_OS','OVERRIDES','BBEXTENDVARIANT','FEED_DEPLOYDIR_BASE_URI','INTERCEPT_DIR','BUILDNAME','USE_DEVFS',
+                 'PACKAGE_CLASSES','TARGET_VENDOR','TARGET_VENDOR','TARGET_ARCH','TARGET_OS','OVERRIDES','BBEXTENDVARIANT','FEED_DEPLOYDIR_BASE_URI','INTERCEPT_DIR','USE_DEVFS',
                  'STAGING_KERNEL_DIR','COMPRESSIONTYPES']
     variables.extend(command_variables(d))
     variables.extend(variable_depends(d))
Signature · 1 line
2.6.3
#3 lore raw

PATCH RESEND 3/7 layer.conf: Add several allarch dependency exclusions

In reply to Martin Jansa

From: Richard Purdie <[email protected]>

These are dependencies that our allarch packages have in OE-Core that cause those allarch packages to rebuild every time MACHINE changes.

With these changes, OE-Core allarch packages all have a common sstate signatures and no longer rebuild.

(From OE-Core rev: 63bff90fa4fb4a95e8c79f9f8e5dd90ae1dfc69d)

---
 meta/conf/layer.conf | 10 ++++++++++
 1 file changed, 10 insertions(+)
meta/conf/layer.conf +10 -0
index de96548..047292d 100644
@@ -43,5 +43,15 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
   gcc-cross-${TARGET_ARCH}->musl \
   gcc-cross-${TARGET_ARCH}->uclibc \
   gcc-cross-${TARGET_ARCH}->linux-libc-headers \
+  ppp-dialin->ppp \
+  resolvconf->bash \
+  docbook-xsl-stylesheets->perl \
+  initramfs-framework->busybox \
+  initramfs-framework->systemd \
+  liberation-fonts->fontconfig \
+  gnome-icon-theme->librsvg \
+  font-alias->font-util \
+  weston-init->weston \
+  weston-init->kbd \
 "
 
Signature · 1 line
2.6.3
#4 lore raw

PATCH RESEND 4/7 layer.conf: Add missing dependency for allarch package initramfs-framework

In reply to Martin Jansa

From: Richard Purdie <[email protected]>

Similiarly to the other previous changes, add a missing allarch package dependency for initramfs-framework on udev.

---
 meta/conf/layer.conf | 1 +
 1 file changed, 1 insertion(+)
meta/conf/layer.conf +1 -0
index 047292d..5b47cf4 100644
@@ -48,6 +48,7 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
   docbook-xsl-stylesheets->perl \
   initramfs-framework->busybox \
   initramfs-framework->systemd \
+  initramfs-framework->udev \
   liberation-fonts->fontconfig \
   gnome-icon-theme->librsvg \
   font-alias->font-util \
Signature · 1 line
2.6.3
#5 lore raw

PATCH RESEND 5/7 allarch: Force TARGET_*FLAGS variable values

In reply to Martin Jansa

From: Mike Crowe <[email protected]>

TARGET_CPPFLAGS, TARGET_CFLAGS, TARGET_CPPFLAGS and TARGET_LDFLAGS may differ between MACHINEs. Since they are exported they affect task hashes even if unused which leads to multiple variants of allarch packages existing in sstate and bouncing in the sysroot when switching between MACHINEs.

allarch packages shouldn't be using these variables anyway, so let's ensure they have a fixed value in order to avoid this problem.

(Compare with 05a70ac30b37cab0952f1b9df501993a9dec70da and 14f4d016fef9d660da1e7e91aec4a0e807de59ab.)

---
 meta/classes/allarch.bbclass | 4 ++++
 1 file changed, 4 insertions(+)
meta/classes/allarch.bbclass +4 -0
index 4bc9927..6f63f9d 100644
@@ -27,6 +27,10 @@ python () {
         d.setVar("PACKAGE_EXTRA_ARCHS", "")
         d.setVar("SDK_ARCH", "none")
         d.setVar("SDK_CC_ARCH", "none")
+        d.setVar("TARGET_CPPFLAGS", "none")
+        d.setVar("TARGET_CFLAGS", "none")
+        d.setVar("TARGET_CXXFLAGS", "none")
+        d.setVar("TARGET_LDFLAGS", "none")
 
         # Avoid this being unnecessarily different due to nuances of
         # the target machine that aren't important for "all" arch
Signature · 1 line
2.6.3
#6 lore raw

PATCH RESEND 6/7 texinfo: don't create dependency on INHERIT variable

In reply to Martin Jansa

* we don't want the do_package signature depending on INHERIT variable
* e.g. just adding the own-mirrors causes texinfo to rebuild:

  # bitbake-diffsigs BUILD/sstate-diff/*/*/texinfo/*do_package.sig*
  basehash changed from 015df2fd8e396cc1e15622dbac843301 to 9f1d06c4f238c70a99ccb6d8da348b6a
  Variable INHERIT value changed from
  ' rm_work blacklist blacklist report-error ${PACKAGE_CLASSES} ${USER_CLASSES} ${INHERIT_DISTRO} ${INHERIT_BLACKLIST} sanity'
  to
  ' rm_work own-mirrors blacklist blacklist report-error ${PACKAGE_CLASSES} ${USER_CLASSES} ${INHERIT_DISTRO} ${INHERIT_BLACKLIST} sanity'
---
 meta/recipes-extended/texinfo/texinfo_5.2.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-extended/texinfo/texinfo_5.2.bb +1 -1
index cf9dcfd..3394474 100644
@@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 PROVIDES_append_class-native = " texinfo-replacement-native"
 
 def compress_pkg(d):
-    if "compress_doc" in (d.getVar("INHERIT", True) or "").split():
+    if bb.data.inherits_class('compress_doc', d):
          compress = d.getVar("DOC_COMPRESS", True)
          if compress == "gz":
              return "gzip"
Signature · 1 line
2.6.3
#7 lore raw

PATCH RESEND 7/7 linux-dtb.inc: drop unused DTB_NAME variable from do_install

In reply to Martin Jansa

* this is causing do_install to depend on KERNEL_IMAGE_BASE_NAME which in some cases contains something like BUILD_NUMBER from CI, that caused do_install to be reexecuted every single time, which is very sad to be caused by unused variable.
* jethro and newer don't need this change, because it's also fixed in commit 86b3f29f93e3f87903668ea317c6bd97be4cdf62
Author: Marek Vasut <[email protected]>
Date: Thu May 14 14:31:11 2015 +0200
Subject: kernel: Build DTBs early

---
 meta/recipes-kernel/linux/linux-dtb.inc | 1 -
 1 file changed, 1 deletion(-)
meta/recipes-kernel/linux/linux-dtb.inc +0 -1
index 6b8f1a5..4779be2 100644
@@ -13,7 +13,6 @@ do_install_append() {
 				DTB=`basename ${DTB} | sed 's,\.dts$,.dtb,g'`
 			fi
 			DTB_BASE_NAME=`basename ${DTB} .dtb`
-			DTB_NAME=`echo ${KERNEL_IMAGE_BASE_NAME} | sed "s/${MACHINE}/${DTB_BASE_NAME}/g"`
 			DTB_SYMLINK_NAME=`echo ${KERNEL_IMAGE_SYMLINK_NAME} | sed "s/${MACHINE}/${DTB_BASE_NAME}/g"`
 			DTB_PATH="${B}/arch/${ARCH}/boot/dts/${DTB}"
 			oe_runmake ${DTB}
Signature · 1 line
2.6.3
Applied
#8 lore raw
In reply to Martin Jansa

merged to staging.

thanks
Armin

Quoted 34 lines · Martin Jansa

The following changes since commit 7bb182bdd130266100fc541fd09b82d09c51cd80:

build-appliance-image: Update to dizzy head revision (2015-09-29 14:56:04 +0100)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib jansa/dizzy-backports
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=jansa/dizzy-backports

Chen Qi (1):
image.bbclass: don't let do_rootfs depend on BUILDNAME

Martin Jansa (3):
fontcache: allow to pass extra parameters and environment to fc-cache
texinfo: don't create dependency on INHERIT variable linux-dtb.inc: drop unused DTB_NAME variable from do_install

Mike Crowe (1):
allarch: Force TARGET_*FLAGS variable values

Richard Purdie (2):
layer.conf: Add several allarch dependency exclusions layer.conf: Add missing dependency for allarch package
initramfs-framework

 meta/classes/allarch.bbclass                  |  4 ++++
 meta/classes/fontcache.bbclass                | 19 +++++++++++++++----
 meta/classes/image.bbclass                    |  2 +-
 meta/conf/layer.conf                          | 11 +++++++++++
 meta/recipes-extended/texinfo/texinfo_5.2.bb  |  2 +-
 meta/recipes-kernel/linux/linux-dtb.inc       |  1 -
 scripts/postinst-intercepts/update_font_cache |  4 ++--
 7 files changed, 34 insertions(+), 9 deletions(-)