[OE-core] [PATCH] sqlite3: upgrade to 3.2.0

2017-08-15 Thread wenzong.fan
From: Wenzong Fan 

* Uprev from 3.19.3 to 3.2.0 for fixing CVE-2017-10989:

The getNodeSize function in ext/rtree/rtree.c in SQLite through 3.19.3,
as used in GDAL and other products, mishandles undersized RTree blobs
in a crafted database, leading to a heap-based buffer over-read or
possibly unspecified other impact.

https://nvd.nist.gov/vuln/detail/CVE-2017-10989

* LIC_FILES_CHKSUM updated for below changes:

  -** 2001 September 15
  +** 2001-09-15

Signed-off-by: Wenzong Fan 
---
 .../recipes-support/sqlite/{sqlite3_3.19.3.bb => sqlite3_3.20.0.bb} | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
 rename meta/recipes-support/sqlite/{sqlite3_3.19.3.bb => sqlite3_3.20.0.bb} 
(34%)

diff --git a/meta/recipes-support/sqlite/sqlite3_3.19.3.bb 
b/meta/recipes-support/sqlite/sqlite3_3.20.0.bb
similarity index 34%
rename from meta/recipes-support/sqlite/sqlite3_3.19.3.bb
rename to meta/recipes-support/sqlite/sqlite3_3.20.0.bb
index 89d439530f..417c36202d 100644
--- a/meta/recipes-support/sqlite/sqlite3_3.19.3.bb
+++ b/meta/recipes-support/sqlite/sqlite3_3.20.0.bb
@@ -1,10 +1,10 @@
 require sqlite3.inc
 
 LICENSE = "PD"
-LIC_FILES_CHKSUM = 
"file://sqlite3.h;endline=11;md5=65f0a57ca6928710b418c094b3570bb0"
+LIC_FILES_CHKSUM = 
"file://sqlite3.h;endline=11;md5=786d3dc581eff03f4fd9e4a77ed00c66"
 
 SRC_URI = "\
   http://www.sqlite.org/2017/sqlite-autoconf-${SQLITE_PV}.tar.gz \
   "
-SRC_URI[md5sum] = "c93070d5bf136ce271db23d2dfbc2435"
-SRC_URI[sha256sum] = 
"06129c03dced9f87733a8cba408871bd60673b8f93b920ba8d815efab0a06301"
+SRC_URI[md5sum] = "e262a28b73cc330e7e83520c8ce14e4d"
+SRC_URI[sha256sum] = 
"3814c6f629ff93968b2b37a70497cfe98b366bf587a2261a56a5f750af6ae6a0"
-- 
2.13.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 0/6 v2] Fix RPM4 regressions based on Pyro

2017-08-15 Thread akuster808



On 08/15/2017 02:41 PM, Mark Hatle wrote:

Are these meant for Pyro?

- armin

v2:
Fixed the patch header (6/6) to silence patchwork/patchtest failure.  All
other patches remain the same.

v1:

Work is available at:

git://git.openembedded.org/openembedded-core-contrib mgh/rpm_dep_regression

This is work based on Peter Kjellerstedt's fixes for the rpm dependency
generation.  (See poky-contrib pkj/rpm_regressions2 for the original work.)

The major difference is the last commit which disabled the perl requirement
generation.  This resolves the only problem I found in Peter's patches.

Peter's patches 2 and 3 attempt to address this in a few places.  The
last patch serves the same general purpose -- but it's better in my
opinion to fix these perl scripts when we find problems with them then
just ignore them.  (Even though ignoring is the standard behavior!)

 From the comments to the original patch, the only not addressed was adding
an OE self-test for this behavior.  I tried to do this, but I don't see any
existing tests that build a recipe and inspect the results of the built
package.  I'm not sure of any other way to identify if things are working or
not.

To give you an idea of what this does, the provides for libc6, x86-64, prior
to this change were:
eglibc
glibc = 2.26
libc6 = 2.26-r0

After the change, the following were added (other remain):
ld-linux-x86-64.so.2()(64bit)
ld-linux-x86-64.so.2(GLIBC_2.2.5)(64bit)
ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)
ld-linux-x86-64.so.2(GLIBC_2.4)(64bit)
ld-linux-x86-64.so.2(GLIBC_PRIVATE)(64bit)
libanl.so.1()(64bit)
libanl.so.1(GLIBC_2.2.5)(64bit)
libBrokenLocale.so.1()(64bit)
libBrokenLocale.so.1(GLIBC_2.2.5)(64bit)
libcrypt.so.1()(64bit)
libcrypt.so.1(GLIBC_2.2.5)(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.10)(64bit)
libc.so.6(GLIBC_2.11)(64bit)
libc.so.6(GLIBC_2.12)(64bit)
libc.so.6(GLIBC_2.13)(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.15)(64bit)
libc.so.6(GLIBC_2.16)(64bit)
libc.so.6(GLIBC_2.17)(64bit)
libc.so.6(GLIBC_2.18)(64bit)
libc.so.6(GLIBC_2.22)(64bit)
libc.so.6(GLIBC_2.23)(64bit)
libc.so.6(GLIBC_2.24)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.25)(64bit)
libc.so.6(GLIBC_2.2.6)(64bit)
libc.so.6(GLIBC_2.26)(64bit)
libc.so.6(GLIBC_2.3.2)(64bit)
libc.so.6(GLIBC_2.3.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libc.so.6(GLIBC_2.5)(64bit)
libc.so.6(GLIBC_2.6)(64bit)
libc.so.6(GLIBC_2.7)(64bit)
libc.so.6(GLIBC_2.8)(64bit)
libc.so.6(GLIBC_2.9)(64bit)
libc.so.6(GLIBC_PRIVATE)(64bit)
libdl.so.2()(64bit)
libdl.so.2(GLIBC_2.2.5)(64bit)
libdl.so.2(GLIBC_2.3.3)(64bit)
libdl.so.2(GLIBC_2.3.4)(64bit)
libdl.so.2(GLIBC_PRIVATE)(64bit)
libm.so.6()(64bit)
libm.so.6(GLIBC_2.15)(64bit)
libm.so.6(GLIBC_2.18)(64bit)
libm.so.6(GLIBC_2.23)(64bit)
libm.so.6(GLIBC_2.24)(64bit)
libm.so.6(GLIBC_2.2.5)(64bit)
libm.so.6(GLIBC_2.25)(64bit)
libm.so.6(GLIBC_2.26)(64bit)
libm.so.6(GLIBC_2.4)(64bit)
libmvec.so.1()(64bit)
libmvec.so.1(GLIBC_2.22)(64bit)
libnsl.so.1()(64bit)
libnsl.so.1(GLIBC_2.2.5)(64bit)
libnsl.so.1(GLIBC_PRIVATE)(64bit)
libnss_compat.so.2()(64bit)
libnss_compat.so.2(GLIBC_PRIVATE)(64bit)
libnss_dns.so.2()(64bit)
libnss_dns.so.2(GLIBC_PRIVATE)(64bit)
libnss_files.so.2()(64bit)
libnss_files.so.2(GLIBC_PRIVATE)(64bit)
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.11)(64bit)
libpthread.so.0(GLIBC_2.12)(64bit)
libpthread.so.0(GLIBC_2.18)(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libpthread.so.0(GLIBC_2.2.6)(64bit)
libpthread.so.0(GLIBC_2.3.2)(64bit)
libpthread.so.0(GLIBC_2.3.3)(64bit)
libpthread.so.0(GLIBC_2.3.4)(64bit)
libpthread.so.0(GLIBC_2.4)(64bit)
libpthread.so.0(GLIBC_PRIVATE)(64bit)
libresolv.so.2()(64bit)
libresolv.so.2(GLIBC_2.2.5)(64bit)
libresolv.so.2(GLIBC_2.3.2)(64bit)
libresolv.so.2(GLIBC_2.9)(64bit)
libresolv.so.2(GLIBC_PRIVATE)(64bit)
librt.so.1()(64bit)
librt.so.1(GLIBC_2.2.5)(64bit)
librt.so.1(GLIBC_2.3.3)(64bit)
librt.so.1(GLIBC_2.3.4)(64bit)
librt.so.1(GLIBC_2.4)(64bit)
librt.so.1(GLIBC_2.7)(64bit)
libutil.so.1()(64bit)
libutil.so.1(GLIBC_2.2.5)(64bit)
rtld(GNU_HASH)


I have built and tested this for:

core-image-base core-image-minimal core-image-full-cmdline
core-image-kernel-dev core-image-lsb core-image-lsb-dev
core-image-lsb-sdk core-image-testmaster core-image-clutter
core-image-weston core-image-x11 core-image-sato core-image-sato-dev
core-image-sato-sdk core-image-sato-sdk-ptest

Also using qemux86, qemux86-64 and qemuarm64.

The following description is from Peter's original pull request:

Right before the release of Pyro (about a month ago), we noticed a
problem with missing automatically determined runtime file
dependencies after the transition to rpm4 and dnf. Unfortunately it
has taken me quite a while to work out all the details, but here is
the result finally.



Then rpm is updated to make it possible to yet again access the
runtime dependencies we need, and finally package.bbclass is updated
to make use of them.

See the patches, especially the last 

Re: [OE-core] [pyro][PATCH] package_manager: Fix support for NO_RECOMMENDATONS

2017-08-15 Thread akuster808



On 08/06/2017 11:21 PM, Richard Röjfors wrote:

When support for dnf was introduced the check of the
no NO_RECOMMENDATIONS variable got broken.

This fixes the issue by compairing to the string "1"
rather than the number 1.


merged to stagging.
Thanks,
Armin


Signed-off-by: Richard Röjfors 
---
  meta/lib/oe/package_manager.py | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py
index 93d079d73d..28c6b2aec2 100644
--- a/meta/lib/oe/package_manager.py
+++ b/meta/lib/oe/package_manager.py
@@ -585,7 +585,7 @@ class RpmPM(PackageManager):
  
  output = self._invoke_dnf((["--skip-broken"] if attempt_only else []) +

   (["-x", ",".join(exclude_pkgs)] if len(exclude_pkgs) 
> 0 else []) +
- (["--setopt=install_weak_deps=False"] if 
self.d.getVar('NO_RECOMMENDATIONS') == 1 else []) +
+ (["--setopt=install_weak_deps=False"] if 
self.d.getVar('NO_RECOMMENDATIONS') == "1" else []) +
   (["--nogpgcheck"] if self.d.getVar('RPM_SIGN_PACKAGES') != '1' 
else ["--setopt=gpgcheck=True"]) +
   ["install"] +
   pkgs)
--
2.11.0


--
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [poky][pyro][PATCH 0/1] backport IFF_LOWER_UP fix for 4.10+musl

2017-08-15 Thread akuster808



On 08/03/2017 03:37 PM, Alejandro Mery wrote:

From: Alejandro Mery 


merged to stagging,

thanks,
armin

This commit cherry-picks a fix already applied to master and accepted upstream

commit: 868486c238780ce4a11d9ec9a38e40cb6c1cfc01

https://patchwork.openembedded.org/patch/141193/

André Draszik (1):
   linux-libc-headers: fix duplicate IFF_LOWER_UP DORMANT ECHO on musl

  h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch | 46 ++
  .../linux-libc-headers/linux-libc-headers_4.10.bb  |  1 +
  2 files changed, 47 insertions(+)
  create mode 100644 
meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-libc-compat.h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch



--
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH][pyro 1/4] v86d, qemuboot-x86.inc: use KERNEL_MODULE_AUTOLOAD+KERNEL_MODULE_PROBECONF for uvesafb instead of fbsetup init script

2017-08-15 Thread akuster808



On 08/11/2017 05:34 PM, Martin Jansa wrote:

* also add UVESA_MODE variable for easier change of resolution and respect it 
in QB_KERNEL_CMDLINE_APPEND
   as well
* don't use init script just to call modprobe
* I wasn't able to test this all the way with runqemu, because runqemu
   doesn't work on my system, but I've verified that the right params
   appear there and that I can easily change UVESA_MODE from
   conf/local.conf, the modules.d and modprobe.d files look OK:
   OE qemux86@ 
~/build/oe-core/tmp-glibc/deploy/images/qemux86/core-image-sato-qemux86-20170427212613.rootfs
   $ cat etc/modules-load.d/uvesafb.conf
   uvesafb

   OE qemux86@ 
~/build/oe-core/tmp-glibc/deploy/images/qemux86/core-image-sato-qemux86-20170427212613.rootfs
   $ cat etc/modprobe.d/uvesafb.conf
   options uvesafb mode_option=1600x1200-32

   so I'll be able to drop this KERNEL_MODULE_AUTOLOAD +
   KERNEL_MODULE_PROBECONF from my DISTRO conf.


All 4 merged to stagging.

thanks,
Armin


Signed-off-by: Martin Jansa 
---
  meta/conf/machine/include/qemuboot-x86.inc |  7 +-
  meta/recipes-bsp/v86d/v86d/fbsetup |  3 ---
  meta/recipes-bsp/v86d/v86d/uvesafb.conf|  2 --
  meta/recipes-bsp/v86d/v86d_0.1.10.bb   | 36 --
  4 files changed, 6 insertions(+), 42 deletions(-)
  delete mode 100755 meta/recipes-bsp/v86d/v86d/fbsetup
  delete mode 100644 meta/recipes-bsp/v86d/v86d/uvesafb.conf

diff --git a/meta/conf/machine/include/qemuboot-x86.inc 
b/meta/conf/machine/include/qemuboot-x86.inc
index acd03a1ce8..acf9d55c40 100644
--- a/meta/conf/machine/include/qemuboot-x86.inc
+++ b/meta/conf/machine/include/qemuboot-x86.inc
@@ -10,6 +10,11 @@ QB_CPU_KVM_x86-64 = "-cpu core2duo"
  
  QB_AUDIO_DRV = "alsa"

  QB_AUDIO_OPT = "-soundhw ac97,es1370"
-QB_KERNEL_CMDLINE_APPEND = "vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 
uvesafb.task_timeout=-1"
+QB_KERNEL_CMDLINE_APPEND = "vga=0 uvesafb.mode_option=${UVESA_MODE} 
oprofile.timer=1 uvesafb.task_timeout=-1"
  # Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
  QB_OPT_APPEND = "-vga vmware -show-cursor -usb -usbdevice tablet -device 
virtio-rng-pci"
+
+KERNEL_MODULE_AUTOLOAD += "uvesafb"
+KERNEL_MODULE_PROBECONF += "uvesafb"
+UVESA_MODE ?= "640x480-32"
+module_conf_uvesafb = "options uvesafb mode_option=${UVESA_MODE}"
diff --git a/meta/recipes-bsp/v86d/v86d/fbsetup 
b/meta/recipes-bsp/v86d/v86d/fbsetup
deleted file mode 100755
index 2a409cc529..00
--- a/meta/recipes-bsp/v86d/v86d/fbsetup
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-/sbin/modprobe uvesafb
diff --git a/meta/recipes-bsp/v86d/v86d/uvesafb.conf 
b/meta/recipes-bsp/v86d/v86d/uvesafb.conf
deleted file mode 100644
index 43789755d3..00
--- a/meta/recipes-bsp/v86d/v86d/uvesafb.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-# Load uvesafb.ko at boot
-uvesafb
diff --git a/meta/recipes-bsp/v86d/v86d_0.1.10.bb 
b/meta/recipes-bsp/v86d/v86d_0.1.10.bb
index eab466d30d..579a0a27eb 100644
--- a/meta/recipes-bsp/v86d/v86d_0.1.10.bb
+++ b/meta/recipes-bsp/v86d/v86d_0.1.10.bb
@@ -11,8 +11,6 @@ PR = "r2"
  
  SRC_URI = "http://distfiles.gentoo.org/distfiles/${BP}.tar.bz2 \

 file://Update-x86emu-from-X.org.patch \
-   file://fbsetup \
-   file://uvesafb.conf \
 file://ar-from-env.patch \
 file://aarch64-host.patch \
  "
@@ -23,9 +21,6 @@ SRC_URI[sha256sum] = 
"634964ae18ef68c8493add2ce150e3b4502badeb0d9194b4bd81241d25
  PACKAGE_ARCH = "${MACHINE_ARCH}"
  COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
  
-INITSCRIPT_NAME = "fbsetup"

-INITSCRIPT_PARAMS = "start 0 S ."
-
  do_configure () {
./configure --with-x86emu
  }
@@ -37,35 +32,4 @@ do_compile () {
  do_install () {
install -d ${D}${base_sbindir}
install v86d ${D}${base_sbindir}/
-
-# Only install fbsetup script if 'sysvinit' is in DISTRO_FEATURES
-if 
${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)}; then
-install -d ${D}${sysconfdir}/init.d/
-install -m 0755 ${WORKDIR}/fbsetup ${D}${sysconfdir}/init.d/fbsetup
-fi
-
-# Install systemd related configuration file
-if 
${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
-install -d ${D}${sysconfdir}/modules-load.d
-install -m 0644 ${WORKDIR}/uvesafb.conf 
${D}${sysconfdir}/modules-load.d
-fi
-}
-
-# As the recipe doesn't inherit systemd.bbclass, we need to set this variable
-# manually to avoid unnecessary postinst/preinst generated.
-python __anonymous() {
-if not bb.utils.contains('DISTRO_FEATURES', 'sysvinit', True, False, d):
-d.setVar("INHIBIT_UPDATERCD_BBCLASS", "1")
-}
-
-inherit update-rc.d
-
-PACKAGE_WRITE_DEPS_append = " 
${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd-systemctl-native','',d)}"
-pkg_postinst_${PN} () {
-   if ${@bb.utils.contains('DISTRO_FEATURES','systemd 

[OE-core] [PATCH V2] image.bbclass: drop initramfs bundle related code

2017-08-15 Thread liu . ming50
From: Ming Liu 

The original purpose of this code snippet was to repackage initramfs
bundled kernel images before do_image_complete, to be able to be
included by rootfs, but it's not going to achieve that since the
initramfs bundled kernel images are not even installed to ${D}/boot
after commit a49569e3a7534779bbe3f01a0647fd076c95798d:
[ kernel.bbclass: do not copy bundled initramfs to /boot ]

So there is not a initramfs bundled kernel package at all, we should
drop the code, because it is leading kernel do_initramfs_bundle
unnecessarily rerun and it's very time consuming and hence is impacting
the performance a lot.

Signed-off-by: Ming Liu 
---
 meta/classes/image.bbclass | 13 -
 1 file changed, 13 deletions(-)

diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index 3562487..3639aa4 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -171,10 +171,6 @@ python () {
 d.setVar('IMAGE_FEATURES', ' '.join(sorted(list(remain_features
 
 check_image_features(d)
-initramfs_image = d.getVar('INITRAMFS_IMAGE') or ""
-if initramfs_image != "":
-d.appendVarFlag('do_build', 'depends', " %s:do_bundle_initramfs" %  
d.getVar('PN'))
-d.appendVarFlag('do_bundle_initramfs', 'depends', " 
%s:do_image_complete" % initramfs_image)
 }
 
 IMAGE_CLASSES += "image_types"
@@ -613,15 +609,6 @@ do_package_write_ipk[noexec] = "1"
 do_package_write_deb[noexec] = "1"
 do_package_write_rpm[noexec] = "1"
 
-# Allow the kernel to be repacked with the initramfs and boot image file as a 
single file
-do_bundle_initramfs[depends] += "virtual/kernel:do_bundle_initramfs"
-do_bundle_initramfs[nostamp] = "1"
-do_bundle_initramfs[noexec] = "1"
-do_bundle_initramfs () {
-   :
-}
-addtask bundle_initramfs after do_image_complete
-
 # Prepare the root links to point to the /usr counterparts.
 create_merged_usr_symlinks() {
 root="$1"
-- 
2.7.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH V2] image.bbclass: drop initramfs bundle related code

2017-08-15 Thread liu . ming50
From: Ming Liu 

Hi, OE maintainers:

Please help me review this patch or please feel free to comment on it
if you think it's risky or something.

The patch has been being tested in our project for a long time, I
think it fixes a performance issue and is safe to be merged, but I
would appreciate to hear any options from you.

Ming Liu (1):
  image.bbclass: drop initramfs bundle related code

 meta/classes/image.bbclass | 13 -
 1 file changed, 13 deletions(-)

-- 
2.7.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCHv2 1/3] recipetool: create: being able to set branch when revision is provided

2017-08-15 Thread Chang Rebecca Swee Fun
This change is to improve the buildability of the recipe created by
recipetool and devtool.

When recipetool create is run on a git URL and a revision specified
that is not on master, and "branch=" isn't already in the URL, then
we should get the correct branch and append the branch to the URL.

If the revision was found on multiple branches and 'master' is not
in the list, we will display error to inform user to provide a
correct branch and exit.

[YOCTO #11389]

Signed-off-by: Chang Rebecca Swee Fun 
---
 scripts/lib/recipetool/create.py | 48 
 1 file changed, 48 insertions(+)

diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py
index c47ad78..d2e6fc0 100644
--- a/scripts/lib/recipetool/create.py
+++ b/scripts/lib/recipetool/create.py
@@ -422,6 +422,7 @@ def create_recipe(args):
 source = args.source
 srcsubdir = ''
 srcrev = '${AUTOREV}'
+srcbranch = ''
 
 if os.path.isfile(source):
 source = 'file://%s' % os.path.abspath(source)
@@ -440,6 +441,19 @@ def create_recipe(args):
 srcrev = res.group(1)
 srcuri = rev_re.sub('', srcuri)
 
+# Check whether users provides any branch info in fetchuri.
+# If true, we will skip all branch checking process to honor all 
user's input.
+scheme, network, path, user, passwd, params = 
bb.fetch2.decodeurl(fetchuri)
+srcbranch = params.get('branch')
+nobranch = params.get('nobranch')
+if not srcbranch and not nobranch and srcrev != '${AUTOREV}':
+# Append nobranch=1 in the following conditions:
+# 1. User did not set 'branch=' in srcuri, and
+# 2. User did not set 'nobranch=1' in srcuri, and
+# 3. Source revision is not '${AUTOREV}'
+params['nobranch'] = '1'
+fetchuri = bb.fetch2.encodeurl((scheme, network, path, user, 
passwd, params))
+
 tmpparent = tinfoil.config_data.getVar('BASE_WORKDIR')
 bb.utils.mkdirhier(tmpparent)
 tempsrc = tempfile.mkdtemp(prefix='recipetool-', dir=tmpparent)
@@ -475,6 +489,40 @@ def create_recipe(args):
 logger.error('URL %s resulted in an empty source tree' % fetchuri)
 sys.exit(1)
 
+# We need this checking mechanism to improve the recipe created by 
recipetool and devtool
+# is able to parse and build by bitbake.
+# If there is no input for branch name, then check for branch name 
with SRCREV provided.
+if not srcbranch and not nobranch and srcrev and (srcrev != 
'${AUTOREV}'):
+try:
+cmd = 'git branch -r --contains'
+check_branch, check_branch_err = bb.process.run('%s %s' % 
(cmd, srcrev), cwd=srctree)
+except bb.process.ExecutionError as err:
+logger.error(str(err))
+sys.exit(1)
+get_branch = [x.strip() for x in check_branch.splitlines()]
+# Remove HEAD reference point and drop remote prefix
+get_branch = [x.split('/', 1)[1] for x in get_branch if not 
x.startswith('origin/HEAD')]
+if 'master' in get_branch:
+# If it is master, we do not need to append 'branch=master' as 
this is default.
+# Even with the case where get_branch has multiple objects, if 
'master' is one
+# of them, we should default take from 'master'
+srcbranch = ''
+elif len(get_branch) == 1:
+# If 'master' isn't in get_branch and get_branch contains only 
ONE object, then store result into 'srcbranch'
+srcbranch = get_branch[0]
+else:
+# If get_branch contains more than one objects, then display 
error and exit.
+mbrch = '\n  ' + '\n  '.join(get_branch)
+logger.error('Revision %s was found on multiple branches: 
%s\nPlease provide the correct branch in the source URL with ;branch= 
(and ensure you use quotes around the URL to avoid the shell interpreting the 
";")' % (srcrev, mbrch))
+sys.exit(1)
+
+# Since we might have a value in srcbranch, we need to
+# recontruct the srcuri to include 'branch' in params.
+if srcbranch:
+scheme, network, path, user, passwd, params = 
bb.fetch2.decodeurl(srcuri)
+params['branch'] = srcbranch
+srcuri = bb.fetch2.encodeurl((scheme, network, path, user, passwd, 
params))
+
 if os.path.exists(os.path.join(srctree, '.gitmodules')) and 
srcuri.startswith('git://'):
 srcuri = 'gitsm://' + srcuri[6:]
 logger.info('Fetching submodules...')
-- 
2.7.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCHv2 3/3] recipetool: create: replacing PV in SRCURI

2017-08-15 Thread Chang Rebecca Swee Fun
From: Stanley Phoong 

During recipe creation, it seems that the automation for replacing
${PV} at the SRCURI for tag, (e.g mbed-tls-${PV}) is causing some
issue due to PV assuming it's a git source. A fix is implemented in
this patch to resolve this issue.

Signed-off-by: Stanley Phoong 
---
 scripts/lib/recipetool/create.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py
index c16b61c..988739a 100644
--- a/scripts/lib/recipetool/create.py
+++ b/scripts/lib/recipetool/create.py
@@ -424,6 +424,7 @@ def create_recipe(args):
 srcrev = '${AUTOREV}'
 srcbranch = ''
 storeTagName = ''
+pv_srcpv = False
 
 if os.path.isfile(source):
 source = 'file://%s' % os.path.abspath(source)
@@ -671,6 +672,7 @@ def create_recipe(args):
 lines_before.append('')
 lines_before.append('# Modify these as desired')
 lines_before.append('PV = "%s+git${SRCPV}"' % (realpv or '1.0'))
+pv_srcpv = True
 if not args.autorev and srcrev == '${AUTOREV}':
 if os.path.exists(os.path.join(srctree, '.git')):
 (stdout, _) = bb.process.run('git rev-parse HEAD', cwd=srctree)
@@ -797,7 +799,7 @@ def create_recipe(args):
 skipblank = True
 continue
 elif line.startswith('SRC_URI = '):
-if realpv:
+if realpv and not pv_srcpv:
 line = line.replace(realpv, '${PV}')
 elif line.startswith('PV = '):
 if realpv:
-- 
2.7.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCHv2 0/3] recipetool: bug fixes and enhancement

2017-08-15 Thread Chang Rebecca Swee Fun
Change log on v2:
- Updated PATCH 2/3 to use git rev-parse instead of rev-list

Cover letter on v1:
This series of patches are bug fix implementation for 11389 and 11393.
These changes are crutial in terms of improving recipe creation in
recipetool. The recipe should at least buildable and able to find
SRCREV on specifc branch/ tag if it is not master.

This patch series is dependent on 2 patches on mailing list:-
recipetool: create: fix incorrect URL variable usage
http://lists.openembedded.org/pipermail/openembedded-core/2017-August/140789.html

and

recipetool: create: disable PREMIRRORS and MIRRORS by default
http://lists.openembedded.org/pipermail/openembedded-core/2017-August/140618.html

Thanks and best regards,
Rebecca

Chang Rebecca Swee Fun (1):
  recipetool: create: being able to set branch when revision is provided

Stanley Phoong (2):
  recipetool: create: handle git URLs specifying only a tag
  recipetool: create: replacing PV in SRCURI

 scripts/lib/recipetool/create.py | 73 +++-
 1 file changed, 72 insertions(+), 1 deletion(-)

-- 
2.7.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCHv2 2/3] recipetool: create: handle git URLs specifying only a tag

2017-08-15 Thread Chang Rebecca Swee Fun
From: Stanley Phoong 

If a git URL is passed to recipetool create with a tag=, recipetool
should handle it assuming that the tag is valid.

[YOCTO #11393]

Signed-off-by: Stanley Phoong 
---
 scripts/lib/recipetool/create.py | 23 ++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py
index d2e6fc0..c16b61c 100644
--- a/scripts/lib/recipetool/create.py
+++ b/scripts/lib/recipetool/create.py
@@ -423,6 +423,7 @@ def create_recipe(args):
 srcsubdir = ''
 srcrev = '${AUTOREV}'
 srcbranch = ''
+storeTagName = ''
 
 if os.path.isfile(source):
 source = 'file://%s' % os.path.abspath(source)
@@ -446,13 +447,21 @@ def create_recipe(args):
 scheme, network, path, user, passwd, params = 
bb.fetch2.decodeurl(fetchuri)
 srcbranch = params.get('branch')
 nobranch = params.get('nobranch')
+tag = params.get('tag')
 if not srcbranch and not nobranch and srcrev != '${AUTOREV}':
 # Append nobranch=1 in the following conditions:
 # 1. User did not set 'branch=' in srcuri, and
 # 2. User did not set 'nobranch=1' in srcuri, and
 # 3. Source revision is not '${AUTOREV}'
 params['nobranch'] = '1'
-fetchuri = bb.fetch2.encodeurl((scheme, network, path, user, 
passwd, params))
+if tag:
+# Keep a copy of tag and append nobranch=1 then remove tag from 
URL.
+# Bitbake fetcher unable to fetch when {AUTOREV} and tag is set at 
the same time.
+# We will re-introduce tag argument after bitbake fetcher process 
is complete.
+storeTagName = params['tag']
+params['nobranch'] = '1'
+del params['tag']
+fetchuri = bb.fetch2.encodeurl((scheme, network, path, user, passwd, 
params))
 
 tmpparent = tinfoil.config_data.getVar('BASE_WORKDIR')
 bb.utils.mkdirhier(tmpparent)
@@ -523,6 +532,18 @@ def create_recipe(args):
 params['branch'] = srcbranch
 srcuri = bb.fetch2.encodeurl((scheme, network, path, user, passwd, 
params))
 
+if storeTagName:
+# Re-introduced tag variable from storeTagName
+# Check srcrev using tag and check validity of the tag
+cmd = ('git rev-parse --verify %s' % (storeTagName))
+try:
+check_tag, check_tag_err = bb.process.run('%s' % cmd, 
cwd=srctree)
+srcrev = check_tag.split()[0]
+except bb.process.ExecutionError as err:
+logger.error(str(err))
+logger.error("Possibly wrong tag name is provided")
+sys.exit(1)
+
 if os.path.exists(os.path.join(srctree, '.gitmodules')) and 
srcuri.startswith('git://'):
 srcuri = 'gitsm://' + srcuri[6:]
 logger.info('Fetching submodules...')
-- 
2.7.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH] db: Add --tag parameter to libtool invocation

2017-08-15 Thread Khem Raj
Fixes errors like
libtool: compile: unable to infer tagged configuration
libtool: compile: specify a tag with `--tag'

Signed-off-by: Khem Raj 
---
 ...dd-explicit-tag-options-to-libtool-invoca.patch | 42 ++
 meta/recipes-support/db/db_5.3.28.bb   | 23 
 2 files changed, 59 insertions(+), 6 deletions(-)
 create mode 100644 
meta/recipes-support/db/db/0001-configure-Add-explicit-tag-options-to-libtool-invoca.patch

diff --git 
a/meta/recipes-support/db/db/0001-configure-Add-explicit-tag-options-to-libtool-invoca.patch
 
b/meta/recipes-support/db/db/0001-configure-Add-explicit-tag-options-to-libtool-invoca.patch
new file mode 100644
index 00..cb28db1343
--- /dev/null
+++ 
b/meta/recipes-support/db/db/0001-configure-Add-explicit-tag-options-to-libtool-invoca.patch
@@ -0,0 +1,42 @@
+From 32e5943a3c4637d39e4d65b544dcb99e280210e3 Mon Sep 17 00:00:00 2001
+From: Khem Raj 
+Date: Sun, 23 Jul 2017 10:54:26 -0700
+Subject: [PATCH] configure: Add explicit tag options to libtool invocation
+
+This helps cross compile when tag inference via heuristics
+fail because CC variable is having -fPIE -pie and libtool
+smartly removes it when building libraries
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj 
+---
+ dist/configure.ac | 12 ++--
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/dist/configure.ac b/dist/configure.ac
+index 689f3b8..9c14bdb 100644
+--- a/dist/configure.ac
 b/dist/configure.ac
+@@ -366,12 +366,12 @@ LIBTOOL="./libtool"
+ 
+ INSTALLER="\$(LIBTOOL) --mode=install cp -p"
+ 
+-MAKEFILE_CC="\$(LIBTOOL) --mode=compile ${MAKEFILE_CC}"
+-MAKEFILE_SOLINK="\$(LIBTOOL) --mode=link ${MAKEFILE_CCLINK} -avoid-version"
+-MAKEFILE_CCLINK="\$(LIBTOOL) --mode=link ${MAKEFILE_CCLINK}"
+-MAKEFILE_CXX="\$(LIBTOOL) --mode=compile ${MAKEFILE_CXX}"
+-MAKEFILE_XSOLINK="\$(LIBTOOL) --mode=link ${MAKEFILE_CXXLINK} -avoid-version"
+-MAKEFILE_CXXLINK="\$(LIBTOOL) --mode=link ${MAKEFILE_CXXLINK}"
++MAKEFILE_CC="\$(LIBTOOL) --tag=CC --mode=compile ${MAKEFILE_CC}"
++MAKEFILE_SOLINK="\$(LIBTOOL) --tag=CC --mode=link ${MAKEFILE_CCLINK} 
-avoid-version"
++MAKEFILE_CCLINK="\$(LIBTOOL) --tag=CC --mode=link ${MAKEFILE_CCLINK}"
++MAKEFILE_CXX="\$(LIBTOOL) --tag=CXX --mode=compile ${MAKEFILE_CXX}"
++MAKEFILE_XSOLINK="\$(LIBTOOL) --tag=CXX --mode=link ${MAKEFILE_CXXLINK} 
-avoid-version"
++MAKEFILE_CXXLINK="\$(LIBTOOL) --tag=CXX --mode=link ${MAKEFILE_CXXLINK}"
+ 
+ 
+ case "$host_os" in
+-- 
+2.13.3
+
diff --git a/meta/recipes-support/db/db_5.3.28.bb 
b/meta/recipes-support/db/db_5.3.28.bb
index 7b158e9e2c..ab0d68fce5 100644
--- a/meta/recipes-support/db/db_5.3.28.bb
+++ b/meta/recipes-support/db/db_5.3.28.bb
@@ -22,6 +22,7 @@ SRC_URI = 
"http://download.oracle.com/berkeley-db/db-${PV}.tar.gz;
 SRC_URI += "file://arm-thumb-mutex_db5.patch \
 file://fix-parallel-build.patch \
 
file://0001-atomic-Rename-local-__atomic_compare_exchange-to-avo.patch \
+
file://0001-configure-Add-explicit-tag-options-to-libtool-invoca.patch \
"
 # We are not interested in official latest 6.x versions;
 # let's track what debian is using.
@@ -76,22 +77,32 @@ MUTEX = ""
 MUTEX_arm = "${ARM_MUTEX}"
 MUTEX_armeb = "${ARM_MUTEX}"
 EXTRA_OECONF += "${MUTEX} STRIP=true"
-EXTRA_OEMAKE_append_class-target = " 
LIBTOOL=${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool"
+EXTRA_OEMAKE_append = " LIBTOOL=${HOST_SYS}-libtool"
 
+EXTRA_AUTORECONF += "--exclude=autoheader  -I ${S}/dist/aclocal 
-I${S}/dist/aclocal_java"
 AUTOTOOLS_SCRIPT_PATH = "${S}/dist"
 
 # Cancel the site stuff - it's set for db3 and destroys the
 # configure.
 CONFIG_SITE = ""
-do_configure() {
-cd ${B}
-   gnu-configize --force ${AUTOTOOLS_SCRIPT_PATH}
-   oe_runconf
+
+oe_runconf_prepend() {
+   . ${S}/dist/RELEASE
+   # Edit version information we couldn't pre-compute.
+   sed -i -e "s/__EDIT_DB_VERSION_FAMILY__/$DB_VERSION_FAMILY/g" \
+   -e "s/__EDIT_DB_VERSION_RELEASE__/$DB_VERSION_RELEASE/g" \
+   -e "s/__EDIT_DB_VERSION_MAJOR__/$DB_VERSION_MAJOR/g" \
+   -e "s/__EDIT_DB_VERSION_MINOR__/$DB_VERSION_MINOR/g" \
+   -e "s/__EDIT_DB_VERSION_PATCH__/$DB_VERSION_PATCH/g" \
+   -e "s/__EDIT_DB_VERSION_STRING__/$DB_VERSION_STRING/g" \
+   -e "s/__EDIT_DB_VERSION_FULL_STRING__/$DB_VERSION_FULL_STRING/g" \
+   -e "s/__EDIT_DB_VERSION_UNIQUE_NAME__/$DB_VERSION_UNIQUE_NAME/g" \
+   -e "s/__EDIT_DB_VERSION__/$DB_VERSION/g" ${S}/dist/configure
 }
 
 do_compile_prepend() {
 # Stop libtool adding RPATHs
-sed -i -e 's|hardcode_into_libs=yes|hardcode_into_libs=no|' ${B}/libtool
+sed -i -e 's|hardcode_into_libs=yes|hardcode_into_libs=no|' 
${B}/${HOST_SYS}-libtool
 }
 
 do_install_append() {
-- 
2.14.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org

Re: [OE-core] [PATCH 1/1] nss: 3.30.2 -> 3.31.1

2017-08-15 Thread Khem Raj
On Tue, Aug 15, 2017 at 6:26 PM,   wrote:
> From: Kai Kang 
>
> Upgrade nss from 3.30.2 to latest stable version 3.31.1.
>
> Signed-off-by: Kai Kang 
> ---
>  meta/recipes-support/nss/{nss_3.30.2.bb => nss_3.31.1.bb} | 10 ++
>  1 file changed, 6 insertions(+), 4 deletions(-)
>  rename meta/recipes-support/nss/{nss_3.30.2.bb => nss_3.31.1.bb} (96%)
>
> diff --git a/meta/recipes-support/nss/nss_3.30.2.bb 
> b/meta/recipes-support/nss/nss_3.31.1.bb
> similarity index 96%
> rename from meta/recipes-support/nss/nss_3.30.2.bb
> rename to meta/recipes-support/nss/nss_3.31.1.bb
> index 6683e5c..955862f 100644
> --- a/meta/recipes-support/nss/nss_3.30.2.bb
> +++ b/meta/recipes-support/nss/nss_3.31.1.bb
> @@ -14,7 +14,9 @@ LIC_FILES_CHKSUM = 
> "file://nss/COPYING;md5=3b1e88e1b9c0b5a4b2881d46cce06a18 \
>  
> file://nss/lib/freebl/mpi/doc/LICENSE;md5=491f158d09d948466afce85d6f1fe18f \
>  
> file://nss/lib/freebl/mpi/doc/LICENSE-MPL;md5=5d425c8f3157dbf212db2ec53d9e5132"
>
> -SRC_URI = 
> "http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_30_2_RTM/src/${BP}.tar.gz
>  \
> +VERSION_DIR = "${@d.getVar('BP').upper().replace('-', '_').replace('.', '_') 
> + '_RTM'}"
> +
> +SRC_URI = 
> "http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/${VERSION_DIR}/src/${BP}.tar.gz
>  \
> file://nss.pc.in \
> file://signlibs.sh \
> file://0001-nss-fix-support-cross-compiling.patch \
> @@ -24,10 +26,10 @@ SRC_URI = 
> "http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_30
> file://disable-Wvarargs-with-clang.patch \
> file://pqg.c-ULL_addend.patch \
> file://Fix-compilation-for-X32.patch \
> -   file://0001-Fix-warnings-found-with-gcc7.patch \

Did you forget to delete the patch file ? it should be deleted if not
needed anymore.

> "
> -SRC_URI[md5sum] = "42c22dd8ec6254f846259f1d8dd2eb76"
> -SRC_URI[sha256sum] = 
> "0d4a77ff26bcee79fa8afe0125e0df6ae9e798b6b36782fa29e28febf7cfce24"
> +
> +SRC_URI[md5sum] = "ebb44f1394250d2cf6ec3c2e3d71fa20"
> +SRC_URI[sha256sum] = 
> "933439214dc03ee60e86d1419c19e1568998b0776dde987f41fa70ced6cd08dc"
>
>  UPSTREAM_CHECK_URI = 
> "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Releases;
>  UPSTREAM_CHECK_REGEX = "NSS_(?P.+)_release_notes"
> --
> 2.10.1
>
> --
> ___
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 0/1] nss: 3.30.2 -> 3.31.1

2017-08-15 Thread kai.kang
From: Kai Kang 

The following changes since commit 034bff2ca431b49b7ca9b1e7b7c214ef94b0eb34:

  bitbake: cooker: Ignore common bitbake files for the parse cache invalidation 
(2017-08-13 09:28:14 +0100)

are available in the git repository at:

  git://git.pokylinux.org/poky-contrib kangkai/nss
  http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=kangkai/nss

Kai Kang (1):
  nss: 3.30.2 -> 3.31.1

 meta/recipes-support/nss/{nss_3.30.2.bb => nss_3.31.1.bb} | 10 ++
 1 file changed, 6 insertions(+), 4 deletions(-)
 rename meta/recipes-support/nss/{nss_3.30.2.bb => nss_3.31.1.bb} (96%)

-- 
2.10.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 1/1] nss: 3.30.2 -> 3.31.1

2017-08-15 Thread kai.kang
From: Kai Kang 

Upgrade nss from 3.30.2 to latest stable version 3.31.1.

Signed-off-by: Kai Kang 
---
 meta/recipes-support/nss/{nss_3.30.2.bb => nss_3.31.1.bb} | 10 ++
 1 file changed, 6 insertions(+), 4 deletions(-)
 rename meta/recipes-support/nss/{nss_3.30.2.bb => nss_3.31.1.bb} (96%)

diff --git a/meta/recipes-support/nss/nss_3.30.2.bb 
b/meta/recipes-support/nss/nss_3.31.1.bb
similarity index 96%
rename from meta/recipes-support/nss/nss_3.30.2.bb
rename to meta/recipes-support/nss/nss_3.31.1.bb
index 6683e5c..955862f 100644
--- a/meta/recipes-support/nss/nss_3.30.2.bb
+++ b/meta/recipes-support/nss/nss_3.31.1.bb
@@ -14,7 +14,9 @@ LIC_FILES_CHKSUM = 
"file://nss/COPYING;md5=3b1e88e1b9c0b5a4b2881d46cce06a18 \
 
file://nss/lib/freebl/mpi/doc/LICENSE;md5=491f158d09d948466afce85d6f1fe18f \
 
file://nss/lib/freebl/mpi/doc/LICENSE-MPL;md5=5d425c8f3157dbf212db2ec53d9e5132"
 
-SRC_URI = 
"http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_30_2_RTM/src/${BP}.tar.gz
 \
+VERSION_DIR = "${@d.getVar('BP').upper().replace('-', '_').replace('.', '_') + 
'_RTM'}"
+
+SRC_URI = 
"http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/${VERSION_DIR}/src/${BP}.tar.gz
 \
file://nss.pc.in \
file://signlibs.sh \
file://0001-nss-fix-support-cross-compiling.patch \
@@ -24,10 +26,10 @@ SRC_URI = 
"http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_30
file://disable-Wvarargs-with-clang.patch \
file://pqg.c-ULL_addend.patch \
file://Fix-compilation-for-X32.patch \
-   file://0001-Fix-warnings-found-with-gcc7.patch \
"
-SRC_URI[md5sum] = "42c22dd8ec6254f846259f1d8dd2eb76"
-SRC_URI[sha256sum] = 
"0d4a77ff26bcee79fa8afe0125e0df6ae9e798b6b36782fa29e28febf7cfce24"
+
+SRC_URI[md5sum] = "ebb44f1394250d2cf6ec3c2e3d71fa20"
+SRC_URI[sha256sum] = 
"933439214dc03ee60e86d1419c19e1568998b0776dde987f41fa70ced6cd08dc"
 
 UPSTREAM_CHECK_URI = 
"https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Releases;
 UPSTREAM_CHECK_REGEX = "NSS_(?P.+)_release_notes"
-- 
2.10.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH] Perl: No reference conversion for Porting/Glossary

2017-08-15 Thread cinly . ooi
From: Ooi Cinly 

do_configure() will no longer convert references to
/usr/include into /path/to/recipes-sysroot/usr/include
for the file "Porting/Glossary".

[YOCTO #11243]

Signed-off-by: Ooi Cinly 
---
 meta/recipes-devtools/perl/perl_5.24.1.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/recipes-devtools/perl/perl_5.24.1.bb 
b/meta/recipes-devtools/perl/perl_5.24.1.bb
index 95d9694..1e1d4f5 100644
--- a/meta/recipes-devtools/perl/perl_5.24.1.bb
+++ b/meta/recipes-devtools/perl/perl_5.24.1.bb
@@ -171,7 +171,7 @@ do_configure() {
;;
esac
 # These are strewn all over the source tree
-for foo in `grep -I --exclude="*.patch" --exclude="*.diff" 
--exclude="*.pod" --exclude="README*" -m1 "/usr/include/.*\.h" ${S}/* -r -l` 
${S}/utils/h2xs.PL ; do
+for foo in `grep -I --exclude="*.patch" --exclude="*.diff" 
--exclude="*.pod" --exclude="README*" --exclude="Glossary" -m1 
"/usr/include/.*\.h" ${S}/* -r -l` ${S}/utils/h2xs.PL ; do
 echo Fixing: $foo
 sed -e 's|\([ "^'\''I]\+\)/usr/include/|\1${STAGING_INCDIR}/|g' -i 
$foo
 done
-- 
2.7.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH] libtool: remove /absolute/path/to/host references

2017-08-15 Thread cinly . ooi
From: Ooi Cinly 

Removed all instances of -fdebug-prefix-map in LTCFLAGS
declaration because they contain references to host system
and are not needed.

/absolute/path/to/host/dd was replaced with 'dd' in
lt_truncate_bin declaration.

Please take note that the location of regex is important
for DEBUG_PREFIX_MAP. Removal of DEBUG_PREFIX_MAP has to be
done before other regex command modify its option value.

Both are modified because they affect binary reproducibility.

[YOCTO #11656]

Signed-off-by: Ooi Cinly 
---
 meta/recipes-devtools/libtool/libtool_2.4.6.bb | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/meta/recipes-devtools/libtool/libtool_2.4.6.bb 
b/meta/recipes-devtools/libtool/libtool_2.4.6.bb
index 06abb05..b02620b 100644
--- a/meta/recipes-devtools/libtool/libtool_2.4.6.bb
+++ b/meta/recipes-devtools/libtool/libtool_2.4.6.bb
@@ -15,6 +15,7 @@ ACLOCALEXTRAPATH_class-target = ""
 
 do_install_append () {
 sed -e 's@--sysroot=${STAGING_DIR_HOST}@@g' \
+-e "s@${DEBUG_PREFIX_MAP}@@g" \
 -e 's@${STAGING_DIR_HOST}@@g' \
 -e 's@${STAGING_DIR_NATIVE}@@g' \
 -e 's@^\(sys_lib_search_path_spec="\).*@\1${libdir} 
${base_libdir}"@' \
@@ -22,5 +23,6 @@ do_install_append () {
 -e 's@^\(compiler_lib_search_path="\).*@\1${libdir} 
${base_libdir}"@' \
 -e 's@^\(predep_objects="\).*@\1"@' \
 -e 's@^\(postdep_objects="\).*@\1"@' \
+-e "s@${HOSTTOOLS_DIR}/@@g" \
 -i ${D}${bindir}/libtool
 }
-- 
2.7.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH] gpg_sign: perform rpm signing serially

2017-08-15 Thread Mark Hatle
It would probably be better if this was configurable with a 'safe' default.

Moving from parallel to single will greatly affect the overall performance on
larger build machines (lots of memory and cores) that can handle the load vs a
typical development machine.

--Mark

On 8/15/17 4:40 PM, leonardo.sandoval.gonza...@linux.intel.com wrote:
> From: Leonardo Sandoval 
> 
> gpg signing in file batches (which was default to 100) is a memory expensive
> computation, causing trouble in some host machines (even on production AB
> as seen on the bugzilla ID). Also, in terms of performance, there is no real
> gain when rpm signing is done in batches. Considering the latter issues, 
> perform the
> rpm signing serially.
> 
> Log showing errors observed recently at AB workers:
> 
> | gpg: signing failed: Cannot allocate memory
> | gpg: signing failed: Cannot allocate memory
> | error: gpg exec failed (2)
> | 
> /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/core2-64-poky-linux/base-passwd/3.5.29-r0/deploy-rpms/core2_64/base-passwd-dev-3.5.29-r0.core2_64.rpm:
> 
> [YOCTO #11914]
> 
> Signed-off-by: Leonardo Sandoval 
> ---
>  meta/lib/oe/gpg_sign.py | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/meta/lib/oe/gpg_sign.py b/meta/lib/oe/gpg_sign.py
> index f4d8b10e4b..5c7985a856 100644
> --- a/meta/lib/oe/gpg_sign.py
> +++ b/meta/lib/oe/gpg_sign.py
> @@ -45,9 +45,9 @@ class LocalSigner(object):
>  if fsk_password:
>  cmd += "--define '_file_signing_key_password %s' " % 
> fsk_password
>  
> -# Sign in chunks of 100 packages
> -for i in range(0, len(files), 100):
> -status, output = oe.utils.getstatusoutput(cmd + ' 
> '.join(files[i:i+100]))
> +# Sign packages
> +for f in files:
> +status, output = oe.utils.getstatusoutput(cmd + ' ' + f)
>  if status:
>  raise bb.build.FuncFailed("Failed to sign RPM packages: %s" 
> % output)
>  
> 

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH] liburi-perl: Upgrade to 1.72

2017-08-15 Thread Aníbal Limón
Signed-off-by: Aníbal Limón 
---
 .../perl/{liburi-perl_1.71.bb => liburi-perl_1.72.bb} | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-devtools/perl/{liburi-perl_1.71.bb => liburi-perl_1.72.bb} 
(85%)

diff --git a/meta/recipes-devtools/perl/liburi-perl_1.71.bb 
b/meta/recipes-devtools/perl/liburi-perl_1.72.bb
similarity index 85%
rename from meta/recipes-devtools/perl/liburi-perl_1.71.bb
rename to meta/recipes-devtools/perl/liburi-perl_1.72.bb
index a800198b331..a399c10b5ca 100644
--- a/meta/recipes-devtools/perl/liburi-perl_1.71.bb
+++ b/meta/recipes-devtools/perl/liburi-perl_1.72.bb
@@ -13,8 +13,8 @@ DEPENDS += "perl"
 
 SRC_URI = "http://www.cpan.org/authors/id/E/ET/ETHER/URI-${PV}.tar.gz;
 
-SRC_URI[md5sum] = "247c3da29a794f72730e01aa5a715daf"
-SRC_URI[sha256sum] = 
"9c8eca0d7f39e74bbc14706293e653b699238eeb1a7690cc9c136fb8c2644115"
+SRC_URI[md5sum] = "cd56d81ed429efaa97e7f3ff08851b48"
+SRC_URI[sha256sum] = 
"35f14431d4b300de4be1163b0b5332de2d7fbda4f05ff1ed198a8e9330d40a32"
 
 S = "${WORKDIR}/URI-${PV}"
 
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH] packagegroup-python3: add packagegroup

2017-08-15 Thread Jose Lamego


On 08/15/2017 04:56 PM, Christopher Larson wrote:
> On Tue, Aug 15, 2017 at 2:05 PM, Jose Lamego 
> wrote:
>
>> Many of the most usual python3 modules are missing when
>> trying to import them to python3 in images built with
>> python3-core installed.
>>
>> This change creates the python3 packagegroup, containing
>> the most usual python3 packages to be installed for images
>> featuring complete python functionality by using the
>> FEATURES_PACKAGES variable to define python3 as a new feature
>> and then adding it to the image to build.
>>
>> [YOCTO #10667]
>>
>> Signed-off-by: Jose Lamego 
>
> Out of curiosity, why not just install ‘python3-modules’?
I had the same thought when reviewing the request for this change (at
[1]); adding python3 to EXTRA_IMAGE_INSTALL do also provide most of the
usual python modules. However, I created the packagegroup as a way to
have a more or less complete python installation available as an image
feature, and I expect to gather enough feedback from the community
before rejecting/accepting it (so, comments are welcomed :) )

[1] https://bugzilla.yoctoproject.org/show_bug.cgi?id=10667

-- 
Jose Lamego | OTC Embedded Platform & Tools | GDC

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH] llvm: Swith to ARM ISA on armv5 and armv4t

2017-08-15 Thread Khem Raj
When Thumb1 is used as default ISA, there are linker
issues, therefore always use ARM ISA

Fixes
relocation truncated to fit: R_ARM_THM_CALL against symbol 
`__gnu_thumb1_case_uhi' defined in .text section

Signed-off-by: Khem Raj 
---
 meta/recipes-devtools/llvm/llvm_git.bb | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/meta/recipes-devtools/llvm/llvm_git.bb 
b/meta/recipes-devtools/llvm/llvm_git.bb
index eb2049248e..bf4aeff164 100644
--- a/meta/recipes-devtools/llvm/llvm_git.bb
+++ b/meta/recipes-devtools/llvm/llvm_git.bb
@@ -51,6 +51,9 @@ LLVM_TARGETS ?= "${@get_llvm_target_arch(bb, d)}"
 LLVM_TARGETS_prepend_x86 = "AMDGPU;"
 LLVM_TARGETS_prepend_x86-64 = "AMDGPU;"
 
+ARM_INSTRUCTION_SET_armv5 = "arm"
+ARM_INSTRUCTION_SET_armv4t = "arm"
+
 EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \
   -DLLVM_ENABLE_EXPENSIVE_CHECKS=OFF \
   -DLLVM_ENABLE_PIC=ON \
-- 
2.14.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH] gmp: improve reproducibility

2017-08-15 Thread Juro Bystricky
Remove references to the host build system from generated/packaged
header file gmp.h. The file ends up in two different packages (libgmp-dev,
libgmp-dbg). Rather then modifying the file twice in two different
destinations after the installation, we modify the file gmp.h only once,
but before the installation.

[YOCTO #11922]

Signed-off-by: Juro Bystricky 
---
 meta/recipes-support/gmp/gmp_6.1.2.bb | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/meta/recipes-support/gmp/gmp_6.1.2.bb 
b/meta/recipes-support/gmp/gmp_6.1.2.bb
index 5e65075..b008710 100644
--- a/meta/recipes-support/gmp/gmp_6.1.2.bb
+++ b/meta/recipes-support/gmp/gmp_6.1.2.bb
@@ -25,8 +25,11 @@ EXTRA_OECONF_mipsarchr6_append = " --disable-assembly"
 PACKAGES =+ "libgmpxx"
 FILES_libgmpxx = "${libdir}/libgmpxx${SOLIBS}"
 
-do_install_append_class-target() {
-sed -i "s|--sysroot=${STAGING_DIR_HOST}||g" ${D}${includedir}/gmp.h
+do_install_prepend_class-target() {
+sed -i \
+-e "s|--sysroot=${STAGING_DIR_HOST}||g" \
+-e "s|${DEBUG_PREFIX_MAP}||g" \
+ ${B}/gmp.h
 }
 
 SSTATE_SCAN_FILES += "gmp.h"
-- 
2.7.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH] packagegroup-python3: add packagegroup

2017-08-15 Thread Christopher Larson
On Tue, Aug 15, 2017 at 2:05 PM, Jose Lamego 
wrote:

> Many of the most usual python3 modules are missing when
> trying to import them to python3 in images built with
> python3-core installed.
>
> This change creates the python3 packagegroup, containing
> the most usual python3 packages to be installed for images
> featuring complete python functionality by using the
> FEATURES_PACKAGES variable to define python3 as a new feature
> and then adding it to the image to build.
>
> [YOCTO #10667]
>
> Signed-off-by: Jose Lamego 


Out of curiosity, why not just install ‘python3-modules’?
-- 
Christopher Larson
kergoth at gmail dot com
Founder - BitBake, OpenEmbedded, OpenZaurus
Senior Software Engineer, Mentor Graphics
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 0/6 v2] Fix RPM4 regressions based on Pyro

2017-08-15 Thread Mark Hatle
v2:
Fixed the patch header (6/6) to silence patchwork/patchtest failure.  All
other patches remain the same.

v1:

Work is available at:

git://git.openembedded.org/openembedded-core-contrib mgh/rpm_dep_regression

This is work based on Peter Kjellerstedt's fixes for the rpm dependency
generation.  (See poky-contrib pkj/rpm_regressions2 for the original work.)

The major difference is the last commit which disabled the perl requirement
generation.  This resolves the only problem I found in Peter's patches.

Peter's patches 2 and 3 attempt to address this in a few places.  The 
last patch serves the same general purpose -- but it's better in my 
opinion to fix these perl scripts when we find problems with them then 
just ignore them.  (Even though ignoring is the standard behavior!)

>From the comments to the original patch, the only not addressed was adding
an OE self-test for this behavior.  I tried to do this, but I don't see any
existing tests that build a recipe and inspect the results of the built
package.  I'm not sure of any other way to identify if things are working or
not.

To give you an idea of what this does, the provides for libc6, x86-64, prior
to this change were:
eglibc
glibc = 2.26
libc6 = 2.26-r0

After the change, the following were added (other remain):
ld-linux-x86-64.so.2()(64bit)
ld-linux-x86-64.so.2(GLIBC_2.2.5)(64bit)
ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)
ld-linux-x86-64.so.2(GLIBC_2.4)(64bit)
ld-linux-x86-64.so.2(GLIBC_PRIVATE)(64bit)
libanl.so.1()(64bit)
libanl.so.1(GLIBC_2.2.5)(64bit)
libBrokenLocale.so.1()(64bit)
libBrokenLocale.so.1(GLIBC_2.2.5)(64bit)
libcrypt.so.1()(64bit)
libcrypt.so.1(GLIBC_2.2.5)(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.10)(64bit)
libc.so.6(GLIBC_2.11)(64bit)
libc.so.6(GLIBC_2.12)(64bit)
libc.so.6(GLIBC_2.13)(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.15)(64bit)
libc.so.6(GLIBC_2.16)(64bit)
libc.so.6(GLIBC_2.17)(64bit)
libc.so.6(GLIBC_2.18)(64bit)
libc.so.6(GLIBC_2.22)(64bit)
libc.so.6(GLIBC_2.23)(64bit)
libc.so.6(GLIBC_2.24)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.25)(64bit)
libc.so.6(GLIBC_2.2.6)(64bit)
libc.so.6(GLIBC_2.26)(64bit)
libc.so.6(GLIBC_2.3.2)(64bit)
libc.so.6(GLIBC_2.3.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libc.so.6(GLIBC_2.5)(64bit)
libc.so.6(GLIBC_2.6)(64bit)
libc.so.6(GLIBC_2.7)(64bit)
libc.so.6(GLIBC_2.8)(64bit)
libc.so.6(GLIBC_2.9)(64bit)
libc.so.6(GLIBC_PRIVATE)(64bit)
libdl.so.2()(64bit)
libdl.so.2(GLIBC_2.2.5)(64bit)
libdl.so.2(GLIBC_2.3.3)(64bit)
libdl.so.2(GLIBC_2.3.4)(64bit)
libdl.so.2(GLIBC_PRIVATE)(64bit)
libm.so.6()(64bit)
libm.so.6(GLIBC_2.15)(64bit)
libm.so.6(GLIBC_2.18)(64bit)
libm.so.6(GLIBC_2.23)(64bit)
libm.so.6(GLIBC_2.24)(64bit)
libm.so.6(GLIBC_2.2.5)(64bit)
libm.so.6(GLIBC_2.25)(64bit)
libm.so.6(GLIBC_2.26)(64bit)
libm.so.6(GLIBC_2.4)(64bit)
libmvec.so.1()(64bit)
libmvec.so.1(GLIBC_2.22)(64bit)
libnsl.so.1()(64bit)
libnsl.so.1(GLIBC_2.2.5)(64bit)
libnsl.so.1(GLIBC_PRIVATE)(64bit)
libnss_compat.so.2()(64bit)
libnss_compat.so.2(GLIBC_PRIVATE)(64bit)
libnss_dns.so.2()(64bit)
libnss_dns.so.2(GLIBC_PRIVATE)(64bit)
libnss_files.so.2()(64bit)
libnss_files.so.2(GLIBC_PRIVATE)(64bit)
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.11)(64bit)
libpthread.so.0(GLIBC_2.12)(64bit)
libpthread.so.0(GLIBC_2.18)(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libpthread.so.0(GLIBC_2.2.6)(64bit)
libpthread.so.0(GLIBC_2.3.2)(64bit)
libpthread.so.0(GLIBC_2.3.3)(64bit)
libpthread.so.0(GLIBC_2.3.4)(64bit)
libpthread.so.0(GLIBC_2.4)(64bit)
libpthread.so.0(GLIBC_PRIVATE)(64bit)
libresolv.so.2()(64bit)
libresolv.so.2(GLIBC_2.2.5)(64bit)
libresolv.so.2(GLIBC_2.3.2)(64bit)
libresolv.so.2(GLIBC_2.9)(64bit)
libresolv.so.2(GLIBC_PRIVATE)(64bit)
librt.so.1()(64bit)
librt.so.1(GLIBC_2.2.5)(64bit)
librt.so.1(GLIBC_2.3.3)(64bit)
librt.so.1(GLIBC_2.3.4)(64bit)
librt.so.1(GLIBC_2.4)(64bit)
librt.so.1(GLIBC_2.7)(64bit)
libutil.so.1()(64bit)
libutil.so.1(GLIBC_2.2.5)(64bit)
rtld(GNU_HASH)


I have built and tested this for:

core-image-base core-image-minimal core-image-full-cmdline 
core-image-kernel-dev core-image-lsb core-image-lsb-dev 
core-image-lsb-sdk core-image-testmaster core-image-clutter 
core-image-weston core-image-x11 core-image-sato core-image-sato-dev 
core-image-sato-sdk core-image-sato-sdk-ptest

Also using qemux86, qemux86-64 and qemuarm64.

The following description is from Peter's original pull request:

Right before the release of Pyro (about a month ago), we noticed a
problem with missing automatically determined runtime file
dependencies after the transition to rpm4 and dnf. Unfortunately it
has taken me quite a while to work out all the details, but here is
the result finally.



Then rpm is updated to make it possible to yet again access the
runtime dependencies we need, and finally package.bbclass is updated
to make use of them.

See the patches, especially the last one, for more in depth
information on what went wrong during the transition 

[OE-core] [PATCH 4/6 v2] package_rpm.bbclass: Filter out unwanted file deps for nativesdk packages

2017-08-15 Thread Mark Hatle
From: Peter Kjellerstedt 

Filter out any file dependencies on absolute paths and any
dependencies on Perl modules for nativesdk packages. It is assumed
that they will be provided by the native host if needed, and they mess
up the dependency handling if they are present.

Signed-off-by: Peter Kjellerstedt 
Signed-off-by: Mark Hatle 
---
 meta/classes/package_rpm.bbclass | 25 +++--
 1 file changed, 23 insertions(+), 2 deletions(-)

diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
index 5562074..1deaf83 100644
--- a/meta/classes/package_rpm.bbclass
+++ b/meta/classes/package_rpm.bbclass
@@ -7,10 +7,28 @@ RPMBUILD="rpmbuild"
 
 PKGWRITEDIRRPM = "${WORKDIR}/deploy-rpms"
 
-# Maintaining the perfile dependencies has singificant overhead when writing 
the 
+# Maintaining the perfile dependencies has singificant overhead when writing 
the
 # packages. When set, this value merges them for efficiency.
 MERGEPERFILEDEPS = "1"
 
+# Filter dependencies based on a provided function.
+def filter_deps(var, f):
+import collections
+
+depends_dict = bb.utils.explode_dep_versions2(var)
+newdeps_dict = collections.OrderedDict()
+for dep in depends_dict:
+if f(dep):
+newdeps_dict[dep] = depends_dict[dep]
+return bb.utils.join_deps(newdeps_dict, commasep=False)
+
+# Filter out absolute paths (typically /bin/sh and /usr/bin/env) and any perl
+# dependencies for nativesdk packages.
+def filter_nativesdk_deps(srcname, var):
+if var and srcname.startswith("nativesdk-"):
+var = filter_deps(var, lambda dep: not dep.startswith('/') and dep != 
'perl' and not dep.startswith('perl('))
+return var
+
 # Construct per file dependencies file
 def write_rpm_perfiledata(srcname, d):
 workdir = d.getVar('WORKDIR')
@@ -26,7 +44,8 @@ def write_rpm_perfiledata(srcname, d):
 dependsflist = (d.getVar(dependsflist_key) or "")
 for dfile in dependsflist.split():
 key = "FILE" + varname + "_" + dfile + "_" + pkg
-depends_dict = bb.utils.explode_dep_versions(d.getVar(key) or 
"")
+deps = filter_nativesdk_deps(srcname, d.getVar(key) or "")
+depends_dict = bb.utils.explode_dep_versions(deps)
 file = dfile.replace("@underscore@", "_")
 file = file.replace("@closebrace@", "]")
 file = file.replace("@openbrace@", "[")
@@ -359,6 +378,8 @@ python write_specfile () {
 splitrdepends = splitrdepends + " " + get_perfile('RDEPENDS', pkg, 
d)
 splitrprovides = splitrprovides + " " + get_perfile('RPROVIDES', 
pkg, d)
 
+splitrdepends = filter_nativesdk_deps(srcname, splitrdepends)
+
 # Gather special src/first package data
 if srcname == splitname:
 srcrdepends= splitrdepends
-- 
1.8.3.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 6/6 v2] rpm: Disable perl dependency generation

2017-08-15 Thread Mark Hatle
When rpmdeps files a perl script, it attempts to determine what it provides
and what it requires.  Often the requires are incorrect, within the context
of Wind River Linux.  This results in an error that DNF is unable to install
a package due to one or more unresolved dependencies.

In RPM5 we had disabled this behavior, the alternative is to require that all
perl scripts be 'complete', in that they only require things they absolutely
need and that OE provides.  If we ever enforce that, this commit can be
reverted.  Until they fall back to prior behavior (which also matches ipkg
and deb style packages.)

Signed-off-by: Mark Hatle 
---
 .../rpm/files/0001-perl-disable-auto-reqs.patch| 32 ++
 meta/recipes-devtools/rpm/rpm_git.bb   |  1 +
 2 files changed, 33 insertions(+)
 create mode 100644 
meta/recipes-devtools/rpm/files/0001-perl-disable-auto-reqs.patch

diff --git a/meta/recipes-devtools/rpm/files/0001-perl-disable-auto-reqs.patch 
b/meta/recipes-devtools/rpm/files/0001-perl-disable-auto-reqs.patch
new file mode 100644
index 000..a6c5869
--- /dev/null
+++ b/meta/recipes-devtools/rpm/files/0001-perl-disable-auto-reqs.patch
@@ -0,0 +1,32 @@
+perl: disable auto requires
+
+When generating automatic requirements, it's possible for perl scripts to
+declare 'optional' dependencies.  These seem to often be incorrect and will
+cause installation failures in OE.  Instead of fixing the perl scripts, it
+was decided it is better to simply disable the automatic dependency
+generation.  This matches the behavior from the previous RPM5 implementation.
+
+Upstream-Status: Inappropriate [OE specific configuration]
+
+Signed-off-by: Mark Hatle 
+
+Index: git/fileattrs/perl.attr
+===
+--- git.orig/fileattrs/perl.attr
 git/fileattrs/perl.attr
+@@ -1,3 +1,3 @@
+-%__perl_requires  %{_rpmconfigdir}/perl.req
++#__perl_requires  %{_rpmconfigdir}/perl.req
+ %__perl_magic ^.*[Pp]erl .*$
+ %__perl_flags exeonly
+Index: git/fileattrs/perllib.attr
+===
+--- git.orig/fileattrs/perllib.attr
 git/fileattrs/perllib.attr
+@@ -1,5 +1,5 @@
+ %__perllib_provides   %{_rpmconfigdir}/perl.prov
+-%__perllib_requires   %{_rpmconfigdir}/perl.req
++#__perllib_requires   %{_rpmconfigdir}/perl.req
+ %__perllib_magic  ^Perl[[:digit:]] module source.*
+ %__perllib_path   \\.pm$
+ %__perllib_flags  magic_and_path
diff --git a/meta/recipes-devtools/rpm/rpm_git.bb 
b/meta/recipes-devtools/rpm/rpm_git.bb
index 513b569..d3d042f 100644
--- a/meta/recipes-devtools/rpm/rpm_git.bb
+++ b/meta/recipes-devtools/rpm/rpm_git.bb
@@ -42,6 +42,7 @@ SRC_URI = "git://github.com/rpm-software-management/rpm \
file://0002-Run-binary-package-creation-via-thread-pools.patch \

file://0003-rpmstrpool.c-make-operations-over-string-pools-threa.patch \

file://0004-build-pack.c-remove-static-local-variables-from-buil.patch \
+   file://0001-perl-disable-auto-reqs.patch \
"
 
 PV = "4.13.90+git${SRCPV}"
-- 
1.8.3.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 5/6 v2] package.bbclass: Restore functionality to detect RPM dependencies

2017-08-15 Thread Mark Hatle
From: Peter Kjellerstedt 

During the transition to dnf and rpm4, the functionality to
automatically make RPM determine dependencies was lost.

Before the transition, an OE specific tool called rpmdeps-oecore had
been added to the rpm suit. It was based on the rpmdeps tool that is
part of rpm. For each file specified on its command line, it would
output the provides and requires that RPM could determine.

During the transition to rpm4, rpmdeps-oecore was replaced with the
standard rpmdeps. However, what no one noticed was that unless rpmdeps
is given options, e.g., -P or -R, to tell it what it should output, it
will not output anything. Thus, it would do all the work to determine
the requirements, but would keep silent about it. And since no output
from rpmdeps is expected unless there are requirements, there were no
warnings indicating that everything was not working as expected.

Porting the old rpmdeps-oecore to work with rpm4 is not really
possible since it relied on being able to access internals of RPM that
are no longer available. However, it turned out that rpmdeps had a
debug option, --rpmfcdebug, that would output exactly the information
that we need, albeit in a different format and to stderr. To make this
usable, rpmdeps has now received a new option, --alldeps, which sends
the information we need to stdout.

Signed-off-by: Peter Kjellerstedt 
Signed-off-by: Mark Hatle 
---
 meta/classes/package.bbclass |  5 ++--
 meta/lib/oe/package.py   | 60 +++-
 2 files changed, 44 insertions(+), 21 deletions(-)

diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index d2fa617..2fe30da 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1453,7 +1453,7 @@ if [ x"$D" = "x" ]; then
 fi
 }
 
-RPMDEPS = "${STAGING_LIBDIR_NATIVE}/rpm/rpmdeps --rcfile 
${STAGING_LIBDIR_NATIVE}/rpm/rpmrc  --macros 
${STAGING_LIBDIR_NATIVE}/rpm/macros --define '_rpmconfigdir 
${STAGING_LIBDIR_NATIVE}/rpm/'"
+RPMDEPS = "${STAGING_LIBDIR_NATIVE}/rpm/rpmdeps --alldeps"
 
 # Collect perfile run-time dependency metadata
 # Output:
@@ -1470,7 +1470,6 @@ python package_do_filedeps() {
 pkgdest = d.getVar('PKGDEST')
 packages = d.getVar('PACKAGES')
 rpmdeps = d.getVar('RPMDEPS')
-magic = d.expand("${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc")
 
 def chunks(files, n):
 return [files[i:i+n] for i in range(0, len(files), n)]
@@ -1482,7 +1481,7 @@ python package_do_filedeps() {
 if pkg.endswith('-dbg') or pkg.endswith('-doc') or 
pkg.find('-locale-') != -1 or pkg.find('-localedata-') != -1 or 
pkg.find('-gconv-') != -1 or pkg.find('-charmap-') != -1 or 
pkg.startswith('kernel-module-') or pkg.endswith('-src'):
 continue
 for files in chunks(pkgfiles[pkg], 100):
-pkglist.append((pkg, files, rpmdeps, pkgdest, magic))
+pkglist.append((pkg, files, rpmdeps, pkgdest))
 
 processed = oe.utils.multiprocess_exec( pkglist, oe.package.filedeprunner)
 
diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py
index 43748b2..a79c668 100644
--- a/meta/lib/oe/package.py
+++ b/meta/lib/oe/package.py
@@ -162,44 +162,68 @@ def file_translate(file):
 def filedeprunner(arg):
 import re, subprocess, shlex
 
-(pkg, pkgfiles, rpmdeps, pkgdest, magic) = arg
+(pkg, pkgfiles, rpmdeps, pkgdest) = arg
 provides = {}
 requires = {}
 
-r = re.compile(r'[<>=]+ +[^ ]*')
+file_re = re.compile(r'\s+\d+\s(.*)')
+dep_re = re.compile(r'\s+(\S)\s+(.*)')
+r = re.compile(r'[<>=]+\s+\S*')
 
 def process_deps(pipe, pkg, pkgdest, provides, requires):
+file = None
 for line in pipe:
-f = line.decode("utf-8").split(" ", 1)[0].strip()
-line = line.decode("utf-8").split(" ", 1)[1].strip()
+line = line.decode("utf-8")
 
-if line.startswith("Requires:"):
+m = file_re.match(line)
+if m:
+file = m.group(1)
+file = file.replace(pkgdest + "/" + pkg, "")
+file = file_translate(file)
+continue
+
+m = dep_re.match(line)
+if not m or not file:
+continue
+
+type, dep = m.groups()
+
+if type == 'R':
 i = requires
-elif line.startswith("Provides:"):
+elif type == 'P':
 i = provides
 else:
-continue
+   continue
 
-file = f.replace(pkgdest + "/" + pkg, "")
-file = file_translate(file)
-value = line.split(":", 1)[1].strip()
-value = r.sub(r'(\g<0>)', value)
+if dep.startswith("python("):
+continue
 
-if value.startswith("rpmlib("):
+# Ignore all perl(VMS::...) and perl(Mac::...) dependencies. These
+ 

[OE-core] [PATCH 1/6 v2] rpm: Add dependencies on bash, perl and python3-core

2017-08-15 Thread Mark Hatle
From: Peter Kjellerstedt 

Also modify a Python script (pythondistdeps.py) to use Python 3.

Signed-off-by: Peter Kjellerstedt 
Signed-off-by: Mark Hatle 
---
 meta/recipes-devtools/rpm/rpm_git.bb | 5 +
 1 file changed, 5 insertions(+)

diff --git a/meta/recipes-devtools/rpm/rpm_git.bb 
b/meta/recipes-devtools/rpm/rpm_git.bb
index d9ff2c7..513b569 100644
--- a/meta/recipes-devtools/rpm/rpm_git.bb
+++ b/meta/recipes-devtools/rpm/rpm_git.bb
@@ -106,6 +106,9 @@ do_install_append_class-target() {
 
 do_install_append () {
sed -i -e 's:${HOSTTOOLS_DIR}/::g' ${D}/${libdir}/rpm/macros
+
+   sed -i -e 's|/usr/bin/python|${USRBINPATH}/env ${PYTHON_PN}|' \
+   ${D}${libdir}/rpm/pythondistdeps.py
 }
 
 FILES_${PN} += "${libdir}/rpm-plugins/*.so \
@@ -120,3 +123,5 @@ FILES_python3-rpm = "${PYTHON_SITEPACKAGES_DIR}/rpm/*"
 
 # rpm 5.x was packaging the rpm build tools separately
 RPROVIDES_${PN} += "rpm-build"
+
+RDEPENDS_${PN} = "bash perl python3-core"
-- 
1.8.3.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 3/6 v2] texinfo: Avoid a problem with a dependency on perl(Locale::gettext_xs)

2017-08-15 Thread Mark Hatle
From: Peter Kjellerstedt 

We do not build the Locale::gettext_xs Perl module and the code will
test for it and happily use Locale::gettext_pp instead if it is not
found. However, this still causes a file dependency on
perl(Locale::gettext_xs) to be generated, which must be satisfied by
adding an explicit provide for it.

Signed-off-by: Peter Kjellerstedt 
Signed-off-by: Mark Hatle 
---
 meta/recipes-extended/texinfo/texinfo_6.3.bb | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/meta/recipes-extended/texinfo/texinfo_6.3.bb 
b/meta/recipes-extended/texinfo/texinfo_6.3.bb
index d82731e..f58df92 100644
--- a/meta/recipes-extended/texinfo/texinfo_6.3.bb
+++ b/meta/recipes-extended/texinfo/texinfo_6.3.bb
@@ -79,4 +79,10 @@ FILES_${PN}-doc = "${infodir}/texinfo* \
${datadir}/${tex_texinfo} \
${mandir}/man1 ${mandir}/man5"
 
+# Lie about providing the Locale::gettext_xs module. It is not actually built,
+# but the code will test for it and if not found use Locale::gettext_pp 
instead.
+# However, this causes a file dependency on perl(Locale::gettext_xs) to be
+# generated, which must be satisfied.
+RPROVIDES_${PN} += "perl(Locale::gettext_xs)"
+
 BBCLASSEXTEND = "native nativesdk"
-- 
1.8.3.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 2/6 v2] git: Do not install git cvsserver and git svn by default

2017-08-15 Thread Mark Hatle
From: Peter Kjellerstedt 

These git commands require Perl modules that do not exist in OE-Core.
Add PACKAGECONFIGs to enable them. Be aware though that if you enable
them you must also provide the missing dependencies.

Signed-off-by: Peter Kjellerstedt 
Signed-off-by: Mark Hatle 
---
 meta/recipes-devtools/git/git.inc | 21 +
 1 file changed, 21 insertions(+)

diff --git a/meta/recipes-devtools/git/git.inc 
b/meta/recipes-devtools/git/git.inc
index 4390b8d..9b4c128 100644
--- a/meta/recipes-devtools/git/git.inc
+++ b/meta/recipes-devtools/git/git.inc
@@ -13,6 +13,10 @@ S = "${WORKDIR}/git-${PV}"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=7c0d7ef03a7eb04ce795b0f60e68e7e1"
 
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[cvsserver] = ""
+PACKAGECONFIG[svn] = ""
+
 EXTRA_OECONF = "--with-perl=${STAGING_BINDIR_NATIVE}/perl-native/perl \
--without-tcltk \
 "
@@ -54,6 +58,23 @@ perl_native_fixup () {
mkdir -p ${D}${libdir}
mv ${D}${exec_prefix}/lib/perl-native/perl ${D}${libdir}
rmdir -p ${D}${exec_prefix}/lib/perl-native || true
+
+   if [ ! "${@bb.utils.filter('PACKAGECONFIG', 'cvsserver', d)}" ]; then
+   # Only install the git cvsserver command if explicitly requested
+   # as it requires the DBI Perl module, which does not exist in
+   # OE-Core.
+   rm ${D}${libexecdir}/git-core/git-cvsserver \
+  ${D}${bindir}/git-cvsserver
+   fi
+
+   if [ ! "${@bb.utils.filter('PACKAGECONFIG', 'svn', d)}" ]; then
+   # Only install the git svn command and all Git::SVN Perl modules
+   # if explicitly requested as they require the SVN::Core Perl
+   # module, which does not exist in OE-Core.
+   rm -r ${D}${libexecdir}/git-core/git-svn \
+ ${D}${libdir}/perl/site_perl/*/Git/SVN*
+   sed -i -e '/SVN/d' 
${D}${libdir}/perl/site_perl/*/auto/Git/.packlist
+   fi
 }
 
 REL_GIT_EXEC_PATH = "${@os.path.relpath(libexecdir, bindir)}/git-core"
-- 
1.8.3.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH] gpg_sign: perform rpm signing serially

2017-08-15 Thread leonardo . sandoval . gonzalez
From: Leonardo Sandoval 

gpg signing in file batches (which was default to 100) is a memory expensive
computation, causing trouble in some host machines (even on production AB
as seen on the bugzilla ID). Also, in terms of performance, there is no real
gain when rpm signing is done in batches. Considering the latter issues, 
perform the
rpm signing serially.

Log showing errors observed recently at AB workers:

| gpg: signing failed: Cannot allocate memory
| gpg: signing failed: Cannot allocate memory
| error: gpg exec failed (2)
| 
/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-oe-selftest/build/build/tmp/work/core2-64-poky-linux/base-passwd/3.5.29-r0/deploy-rpms/core2_64/base-passwd-dev-3.5.29-r0.core2_64.rpm:

[YOCTO #11914]

Signed-off-by: Leonardo Sandoval 
---
 meta/lib/oe/gpg_sign.py | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/meta/lib/oe/gpg_sign.py b/meta/lib/oe/gpg_sign.py
index f4d8b10e4b..5c7985a856 100644
--- a/meta/lib/oe/gpg_sign.py
+++ b/meta/lib/oe/gpg_sign.py
@@ -45,9 +45,9 @@ class LocalSigner(object):
 if fsk_password:
 cmd += "--define '_file_signing_key_password %s' " % 
fsk_password
 
-# Sign in chunks of 100 packages
-for i in range(0, len(files), 100):
-status, output = oe.utils.getstatusoutput(cmd + ' 
'.join(files[i:i+100]))
+# Sign packages
+for f in files:
+status, output = oe.utils.getstatusoutput(cmd + ' ' + f)
 if status:
 raise bb.build.FuncFailed("Failed to sign RPM packages: %s" % 
output)
 
-- 
2.12.3

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 0/6] Fix RPM4 regressions based on Pyro

2017-08-15 Thread Mark Hatle
On 8/15/17 4:19 PM, Mark Hatle wrote:
> Work is available at:
> 
> git://git.openembedded.org/openembedded-core-contrib mgh/rpm_dep_regression
> 
> This is work based on Peter Kjellerstedt's fixes for the rpm dependency
> generation.  (See poky-contrib pkj/rpm_regressions2 for the original work.)
> 
> The major difference is the last commit which disabled the perl requirement
> generation.  This resolves the only problem I found in Peter's patches.

Sorry, I forgot to mention, Peter's patches 2 and 3 attempt to address this in a
few places.  The last patch serves the same general purpose -- but it's better
in my opinion to fix these perl scripts when we find problems with them then
just ignore them.  (Even though ignoring is the standard behavior!)

--Mark

> From the comments to the original patch, the only not addressed was adding
> an OE self-test for this behavior.  I tried to do this, but I don't see any
> existing tests that build a recipe and inspect the results of the built
> package.  I'm not sure of any other way to identify if things are working or
> not.
> 
> To give you an idea of what this does, the provides for libc6, x86-64, prior
> to this change were:
> eglibc
> glibc = 2.26
> libc6 = 2.26-r0
> 
> After the change, the following were added (other remain):
> ld-linux-x86-64.so.2()(64bit)
> ld-linux-x86-64.so.2(GLIBC_2.2.5)(64bit)
> ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)
> ld-linux-x86-64.so.2(GLIBC_2.4)(64bit)
> ld-linux-x86-64.so.2(GLIBC_PRIVATE)(64bit)
> libanl.so.1()(64bit)
> libanl.so.1(GLIBC_2.2.5)(64bit)
> libBrokenLocale.so.1()(64bit)
> libBrokenLocale.so.1(GLIBC_2.2.5)(64bit)
> libcrypt.so.1()(64bit)
> libcrypt.so.1(GLIBC_2.2.5)(64bit)
> libc.so.6()(64bit)
> libc.so.6(GLIBC_2.10)(64bit)
> libc.so.6(GLIBC_2.11)(64bit)
> libc.so.6(GLIBC_2.12)(64bit)
> libc.so.6(GLIBC_2.13)(64bit)
> libc.so.6(GLIBC_2.14)(64bit)
> libc.so.6(GLIBC_2.15)(64bit)
> libc.so.6(GLIBC_2.16)(64bit)
> libc.so.6(GLIBC_2.17)(64bit)
> libc.so.6(GLIBC_2.18)(64bit)
> libc.so.6(GLIBC_2.22)(64bit)
> libc.so.6(GLIBC_2.23)(64bit)
> libc.so.6(GLIBC_2.24)(64bit)
> libc.so.6(GLIBC_2.2.5)(64bit)
> libc.so.6(GLIBC_2.25)(64bit)
> libc.so.6(GLIBC_2.2.6)(64bit)
> libc.so.6(GLIBC_2.26)(64bit)
> libc.so.6(GLIBC_2.3.2)(64bit)
> libc.so.6(GLIBC_2.3.3)(64bit)
> libc.so.6(GLIBC_2.3.4)(64bit)
> libc.so.6(GLIBC_2.3)(64bit)
> libc.so.6(GLIBC_2.4)(64bit)
> libc.so.6(GLIBC_2.5)(64bit)
> libc.so.6(GLIBC_2.6)(64bit)
> libc.so.6(GLIBC_2.7)(64bit)
> libc.so.6(GLIBC_2.8)(64bit)
> libc.so.6(GLIBC_2.9)(64bit)
> libc.so.6(GLIBC_PRIVATE)(64bit)
> libdl.so.2()(64bit)
> libdl.so.2(GLIBC_2.2.5)(64bit)
> libdl.so.2(GLIBC_2.3.3)(64bit)
> libdl.so.2(GLIBC_2.3.4)(64bit)
> libdl.so.2(GLIBC_PRIVATE)(64bit)
> libm.so.6()(64bit)
> libm.so.6(GLIBC_2.15)(64bit)
> libm.so.6(GLIBC_2.18)(64bit)
> libm.so.6(GLIBC_2.23)(64bit)
> libm.so.6(GLIBC_2.24)(64bit)
> libm.so.6(GLIBC_2.2.5)(64bit)
> libm.so.6(GLIBC_2.25)(64bit)
> libm.so.6(GLIBC_2.26)(64bit)
> libm.so.6(GLIBC_2.4)(64bit)
> libmvec.so.1()(64bit)
> libmvec.so.1(GLIBC_2.22)(64bit)
> libnsl.so.1()(64bit)
> libnsl.so.1(GLIBC_2.2.5)(64bit)
> libnsl.so.1(GLIBC_PRIVATE)(64bit)
> libnss_compat.so.2()(64bit)
> libnss_compat.so.2(GLIBC_PRIVATE)(64bit)
> libnss_dns.so.2()(64bit)
> libnss_dns.so.2(GLIBC_PRIVATE)(64bit)
> libnss_files.so.2()(64bit)
> libnss_files.so.2(GLIBC_PRIVATE)(64bit)
> libpthread.so.0()(64bit)
> libpthread.so.0(GLIBC_2.11)(64bit)
> libpthread.so.0(GLIBC_2.12)(64bit)
> libpthread.so.0(GLIBC_2.18)(64bit)
> libpthread.so.0(GLIBC_2.2.5)(64bit)
> libpthread.so.0(GLIBC_2.2.6)(64bit)
> libpthread.so.0(GLIBC_2.3.2)(64bit)
> libpthread.so.0(GLIBC_2.3.3)(64bit)
> libpthread.so.0(GLIBC_2.3.4)(64bit)
> libpthread.so.0(GLIBC_2.4)(64bit)
> libpthread.so.0(GLIBC_PRIVATE)(64bit)
> libresolv.so.2()(64bit)
> libresolv.so.2(GLIBC_2.2.5)(64bit)
> libresolv.so.2(GLIBC_2.3.2)(64bit)
> libresolv.so.2(GLIBC_2.9)(64bit)
> libresolv.so.2(GLIBC_PRIVATE)(64bit)
> librt.so.1()(64bit)
> librt.so.1(GLIBC_2.2.5)(64bit)
> librt.so.1(GLIBC_2.3.3)(64bit)
> librt.so.1(GLIBC_2.3.4)(64bit)
> librt.so.1(GLIBC_2.4)(64bit)
> librt.so.1(GLIBC_2.7)(64bit)
> libutil.so.1()(64bit)
> libutil.so.1(GLIBC_2.2.5)(64bit)
> rtld(GNU_HASH)
> 
> 
> I have built and tested this for:
> 
> core-image-base core-image-minimal core-image-full-cmdline 
> core-image-kernel-dev core-image-lsb core-image-lsb-dev 
> core-image-lsb-sdk core-image-testmaster core-image-clutter 
> core-image-weston core-image-x11 core-image-sato core-image-sato-dev 
> core-image-sato-sdk core-image-sato-sdk-ptest
> 
> Also using qemux86, qemux86-64 and qemuarm64.
> 
> The following description is from Peter's original pull request:
> 
> Right before the release of Pyro (about a month ago), we noticed a
> problem with missing automatically determined runtime file
> dependencies after the transition to rpm4 and dnf. Unfortunately it
> has taken me quite a while to work out all the details, but here is
> the result finally.
> 
> 
> 
> Then rpm is updated to make it possible to yet 

[OE-core] ✗ patchtest: failure for Fix RPM4 regressions based on Pyro

2017-08-15 Thread Patchwork
== Series Details ==

Series: Fix RPM4 regressions based on Pyro
Revision: 1
URL   : https://patchwork.openembedded.org/series/8245/
State : failure

== Summary ==


Thank you for submitting this patch series to OpenEmbedded Core. This is
an automated response. Several tests have been executed on the proposed
series by patchtest resulting in the following failures:



* Issue Added patch file is missing Upstream-Status in the header 
[test_upstream_status_presence] 
  Suggested fixAdd Upstream-Status:  to the header of 
meta/recipes-devtools/rpm/files/0001-perl-disable-auto-reqs.patch (possible 
values: Pending, Submitted, Accepted, Backport, Denied, Inappropriate)



If you believe any of these test results are incorrect, please reply to the
mailing list (openembedded-core@lists.openembedded.org) raising your concerns.
Otherwise we would appreciate you correcting the issues and submitting a new
version of the patchset if applicable. Please ensure you add/increment the
version number when sending the new version (i.e. [PATCH] -> [PATCH v2] ->
[PATCH v3] -> ...).

---
Test framework: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest
Test suite: http://git.yoctoproject.org/cgit/cgit.cgi/patchtest-oe

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 6/6] rpm: Disable perl dependency generation

2017-08-15 Thread Mark Hatle
When rpmdeps files a perl script, it attempts to determine what it provides
and what it requires.  Often the requires are incorrect, within the context
of Wind River Linux.  This results in an error that DNF is unable to install
a package due to one or more unresolved dependencies.

In RPM5 we had disabled this behavior, the alternative is to require that all
perl scripts be 'complete', in that they only require things they absolutely
need and that OE provides.  If we ever enforce that, this commit can be
reverted.  Until they fall back to prior behavior (which also matches ipkg
and deb style packages.)

Signed-off-by: Mark Hatle 
---
 .../rpm/files/0001-perl-disable-auto-reqs.patch| 30 ++
 meta/recipes-devtools/rpm/rpm_git.bb   |  1 +
 2 files changed, 31 insertions(+)
 create mode 100644 
meta/recipes-devtools/rpm/files/0001-perl-disable-auto-reqs.patch

diff --git a/meta/recipes-devtools/rpm/files/0001-perl-disable-auto-reqs.patch 
b/meta/recipes-devtools/rpm/files/0001-perl-disable-auto-reqs.patch
new file mode 100644
index 000..0e1a579
--- /dev/null
+++ b/meta/recipes-devtools/rpm/files/0001-perl-disable-auto-reqs.patch
@@ -0,0 +1,30 @@
+perl: disable auto requires
+
+When generating automatic requirements, it's possible for perl scripts to
+declare 'optional' dependencies.  These seem to often be incorrect and will
+cause installation failures in OE.  Instead of fixing the perl scripts, it
+was decided it is better to simply disable the automatic dependency
+generation.  This matches the behavior from the previous RPM5 implementation.
+
+Signed-off-by: Mark Hatle 
+
+Index: git/fileattrs/perl.attr
+===
+--- git.orig/fileattrs/perl.attr
 git/fileattrs/perl.attr
+@@ -1,3 +1,3 @@
+-%__perl_requires  %{_rpmconfigdir}/perl.req
++#__perl_requires  %{_rpmconfigdir}/perl.req
+ %__perl_magic ^.*[Pp]erl .*$
+ %__perl_flags exeonly
+Index: git/fileattrs/perllib.attr
+===
+--- git.orig/fileattrs/perllib.attr
 git/fileattrs/perllib.attr
+@@ -1,5 +1,5 @@
+ %__perllib_provides   %{_rpmconfigdir}/perl.prov
+-%__perllib_requires   %{_rpmconfigdir}/perl.req
++#__perllib_requires   %{_rpmconfigdir}/perl.req
+ %__perllib_magic  ^Perl[[:digit:]] module source.*
+ %__perllib_path   \\.pm$
+ %__perllib_flags  magic_and_path
diff --git a/meta/recipes-devtools/rpm/rpm_git.bb 
b/meta/recipes-devtools/rpm/rpm_git.bb
index 513b569..d3d042f 100644
--- a/meta/recipes-devtools/rpm/rpm_git.bb
+++ b/meta/recipes-devtools/rpm/rpm_git.bb
@@ -42,6 +42,7 @@ SRC_URI = "git://github.com/rpm-software-management/rpm \
file://0002-Run-binary-package-creation-via-thread-pools.patch \

file://0003-rpmstrpool.c-make-operations-over-string-pools-threa.patch \

file://0004-build-pack.c-remove-static-local-variables-from-buil.patch \
+   file://0001-perl-disable-auto-reqs.patch \
"
 
 PV = "4.13.90+git${SRCPV}"
-- 
1.8.3.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 5/6] package.bbclass: Restore functionality to detect RPM dependencies

2017-08-15 Thread Mark Hatle
From: Peter Kjellerstedt 

During the transition to dnf and rpm4, the functionality to
automatically make RPM determine dependencies was lost.

Before the transition, an OE specific tool called rpmdeps-oecore had
been added to the rpm suit. It was based on the rpmdeps tool that is
part of rpm. For each file specified on its command line, it would
output the provides and requires that RPM could determine.

During the transition to rpm4, rpmdeps-oecore was replaced with the
standard rpmdeps. However, what no one noticed was that unless rpmdeps
is given options, e.g., -P or -R, to tell it what it should output, it
will not output anything. Thus, it would do all the work to determine
the requirements, but would keep silent about it. And since no output
from rpmdeps is expected unless there are requirements, there were no
warnings indicating that everything was not working as expected.

Porting the old rpmdeps-oecore to work with rpm4 is not really
possible since it relied on being able to access internals of RPM that
are no longer available. However, it turned out that rpmdeps had a
debug option, --rpmfcdebug, that would output exactly the information
that we need, albeit in a different format and to stderr. To make this
usable, rpmdeps has now received a new option, --alldeps, which sends
the information we need to stdout.

Signed-off-by: Peter Kjellerstedt 
Signed-off-by: Mark Hatle 
---
 meta/classes/package.bbclass |  5 ++--
 meta/lib/oe/package.py   | 60 +++-
 2 files changed, 44 insertions(+), 21 deletions(-)

diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index d2fa617..2fe30da 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1453,7 +1453,7 @@ if [ x"$D" = "x" ]; then
 fi
 }
 
-RPMDEPS = "${STAGING_LIBDIR_NATIVE}/rpm/rpmdeps --rcfile 
${STAGING_LIBDIR_NATIVE}/rpm/rpmrc  --macros 
${STAGING_LIBDIR_NATIVE}/rpm/macros --define '_rpmconfigdir 
${STAGING_LIBDIR_NATIVE}/rpm/'"
+RPMDEPS = "${STAGING_LIBDIR_NATIVE}/rpm/rpmdeps --alldeps"
 
 # Collect perfile run-time dependency metadata
 # Output:
@@ -1470,7 +1470,6 @@ python package_do_filedeps() {
 pkgdest = d.getVar('PKGDEST')
 packages = d.getVar('PACKAGES')
 rpmdeps = d.getVar('RPMDEPS')
-magic = d.expand("${STAGING_DIR_NATIVE}${datadir_native}/misc/magic.mgc")
 
 def chunks(files, n):
 return [files[i:i+n] for i in range(0, len(files), n)]
@@ -1482,7 +1481,7 @@ python package_do_filedeps() {
 if pkg.endswith('-dbg') or pkg.endswith('-doc') or 
pkg.find('-locale-') != -1 or pkg.find('-localedata-') != -1 or 
pkg.find('-gconv-') != -1 or pkg.find('-charmap-') != -1 or 
pkg.startswith('kernel-module-') or pkg.endswith('-src'):
 continue
 for files in chunks(pkgfiles[pkg], 100):
-pkglist.append((pkg, files, rpmdeps, pkgdest, magic))
+pkglist.append((pkg, files, rpmdeps, pkgdest))
 
 processed = oe.utils.multiprocess_exec( pkglist, oe.package.filedeprunner)
 
diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py
index 43748b2..a79c668 100644
--- a/meta/lib/oe/package.py
+++ b/meta/lib/oe/package.py
@@ -162,44 +162,68 @@ def file_translate(file):
 def filedeprunner(arg):
 import re, subprocess, shlex
 
-(pkg, pkgfiles, rpmdeps, pkgdest, magic) = arg
+(pkg, pkgfiles, rpmdeps, pkgdest) = arg
 provides = {}
 requires = {}
 
-r = re.compile(r'[<>=]+ +[^ ]*')
+file_re = re.compile(r'\s+\d+\s(.*)')
+dep_re = re.compile(r'\s+(\S)\s+(.*)')
+r = re.compile(r'[<>=]+\s+\S*')
 
 def process_deps(pipe, pkg, pkgdest, provides, requires):
+file = None
 for line in pipe:
-f = line.decode("utf-8").split(" ", 1)[0].strip()
-line = line.decode("utf-8").split(" ", 1)[1].strip()
+line = line.decode("utf-8")
 
-if line.startswith("Requires:"):
+m = file_re.match(line)
+if m:
+file = m.group(1)
+file = file.replace(pkgdest + "/" + pkg, "")
+file = file_translate(file)
+continue
+
+m = dep_re.match(line)
+if not m or not file:
+continue
+
+type, dep = m.groups()
+
+if type == 'R':
 i = requires
-elif line.startswith("Provides:"):
+elif type == 'P':
 i = provides
 else:
-continue
+   continue
 
-file = f.replace(pkgdest + "/" + pkg, "")
-file = file_translate(file)
-value = line.split(":", 1)[1].strip()
-value = r.sub(r'(\g<0>)', value)
+if dep.startswith("python("):
+continue
 
-if value.startswith("rpmlib("):
+# Ignore all perl(VMS::...) and perl(Mac::...) dependencies. These
+ 

[OE-core] [PATCH 2/6] git: Do not install git cvsserver and git svn by default

2017-08-15 Thread Mark Hatle
From: Peter Kjellerstedt 

These git commands require Perl modules that do not exist in OE-Core.
Add PACKAGECONFIGs to enable them. Be aware though that if you enable
them you must also provide the missing dependencies.

Signed-off-by: Peter Kjellerstedt 
Signed-off-by: Mark Hatle 
---
 meta/recipes-devtools/git/git.inc | 21 +
 1 file changed, 21 insertions(+)

diff --git a/meta/recipes-devtools/git/git.inc 
b/meta/recipes-devtools/git/git.inc
index 4390b8d..9b4c128 100644
--- a/meta/recipes-devtools/git/git.inc
+++ b/meta/recipes-devtools/git/git.inc
@@ -13,6 +13,10 @@ S = "${WORKDIR}/git-${PV}"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=7c0d7ef03a7eb04ce795b0f60e68e7e1"
 
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[cvsserver] = ""
+PACKAGECONFIG[svn] = ""
+
 EXTRA_OECONF = "--with-perl=${STAGING_BINDIR_NATIVE}/perl-native/perl \
--without-tcltk \
 "
@@ -54,6 +58,23 @@ perl_native_fixup () {
mkdir -p ${D}${libdir}
mv ${D}${exec_prefix}/lib/perl-native/perl ${D}${libdir}
rmdir -p ${D}${exec_prefix}/lib/perl-native || true
+
+   if [ ! "${@bb.utils.filter('PACKAGECONFIG', 'cvsserver', d)}" ]; then
+   # Only install the git cvsserver command if explicitly requested
+   # as it requires the DBI Perl module, which does not exist in
+   # OE-Core.
+   rm ${D}${libexecdir}/git-core/git-cvsserver \
+  ${D}${bindir}/git-cvsserver
+   fi
+
+   if [ ! "${@bb.utils.filter('PACKAGECONFIG', 'svn', d)}" ]; then
+   # Only install the git svn command and all Git::SVN Perl modules
+   # if explicitly requested as they require the SVN::Core Perl
+   # module, which does not exist in OE-Core.
+   rm -r ${D}${libexecdir}/git-core/git-svn \
+ ${D}${libdir}/perl/site_perl/*/Git/SVN*
+   sed -i -e '/SVN/d' 
${D}${libdir}/perl/site_perl/*/auto/Git/.packlist
+   fi
 }
 
 REL_GIT_EXEC_PATH = "${@os.path.relpath(libexecdir, bindir)}/git-core"
-- 
1.8.3.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 3/6] texinfo: Avoid a problem with a dependency on perl(Locale::gettext_xs)

2017-08-15 Thread Mark Hatle
From: Peter Kjellerstedt 

We do not build the Locale::gettext_xs Perl module and the code will
test for it and happily use Locale::gettext_pp instead if it is not
found. However, this still causes a file dependency on
perl(Locale::gettext_xs) to be generated, which must be satisfied by
adding an explicit provide for it.

Signed-off-by: Peter Kjellerstedt 
Signed-off-by: Mark Hatle 
---
 meta/recipes-extended/texinfo/texinfo_6.3.bb | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/meta/recipes-extended/texinfo/texinfo_6.3.bb 
b/meta/recipes-extended/texinfo/texinfo_6.3.bb
index d82731e..f58df92 100644
--- a/meta/recipes-extended/texinfo/texinfo_6.3.bb
+++ b/meta/recipes-extended/texinfo/texinfo_6.3.bb
@@ -79,4 +79,10 @@ FILES_${PN}-doc = "${infodir}/texinfo* \
${datadir}/${tex_texinfo} \
${mandir}/man1 ${mandir}/man5"
 
+# Lie about providing the Locale::gettext_xs module. It is not actually built,
+# but the code will test for it and if not found use Locale::gettext_pp 
instead.
+# However, this causes a file dependency on perl(Locale::gettext_xs) to be
+# generated, which must be satisfied.
+RPROVIDES_${PN} += "perl(Locale::gettext_xs)"
+
 BBCLASSEXTEND = "native nativesdk"
-- 
1.8.3.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 1/6] rpm: Add dependencies on bash, perl and python3-core

2017-08-15 Thread Mark Hatle
From: Peter Kjellerstedt 

Also modify a Python script (pythondistdeps.py) to use Python 3.

Signed-off-by: Peter Kjellerstedt 
Signed-off-by: Mark Hatle 
---
 meta/recipes-devtools/rpm/rpm_git.bb | 5 +
 1 file changed, 5 insertions(+)

diff --git a/meta/recipes-devtools/rpm/rpm_git.bb 
b/meta/recipes-devtools/rpm/rpm_git.bb
index d9ff2c7..513b569 100644
--- a/meta/recipes-devtools/rpm/rpm_git.bb
+++ b/meta/recipes-devtools/rpm/rpm_git.bb
@@ -106,6 +106,9 @@ do_install_append_class-target() {
 
 do_install_append () {
sed -i -e 's:${HOSTTOOLS_DIR}/::g' ${D}/${libdir}/rpm/macros
+
+   sed -i -e 's|/usr/bin/python|${USRBINPATH}/env ${PYTHON_PN}|' \
+   ${D}${libdir}/rpm/pythondistdeps.py
 }
 
 FILES_${PN} += "${libdir}/rpm-plugins/*.so \
@@ -120,3 +123,5 @@ FILES_python3-rpm = "${PYTHON_SITEPACKAGES_DIR}/rpm/*"
 
 # rpm 5.x was packaging the rpm build tools separately
 RPROVIDES_${PN} += "rpm-build"
+
+RDEPENDS_${PN} = "bash perl python3-core"
-- 
1.8.3.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 4/6] package_rpm.bbclass: Filter out unwanted file deps for nativesdk packages

2017-08-15 Thread Mark Hatle
From: Peter Kjellerstedt 

Filter out any file dependencies on absolute paths and any
dependencies on Perl modules for nativesdk packages. It is assumed
that they will be provided by the native host if needed, and they mess
up the dependency handling if they are present.

Signed-off-by: Peter Kjellerstedt 
Signed-off-by: Mark Hatle 
---
 meta/classes/package_rpm.bbclass | 25 +++--
 1 file changed, 23 insertions(+), 2 deletions(-)

diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
index 5562074..1deaf83 100644
--- a/meta/classes/package_rpm.bbclass
+++ b/meta/classes/package_rpm.bbclass
@@ -7,10 +7,28 @@ RPMBUILD="rpmbuild"
 
 PKGWRITEDIRRPM = "${WORKDIR}/deploy-rpms"
 
-# Maintaining the perfile dependencies has singificant overhead when writing 
the 
+# Maintaining the perfile dependencies has singificant overhead when writing 
the
 # packages. When set, this value merges them for efficiency.
 MERGEPERFILEDEPS = "1"
 
+# Filter dependencies based on a provided function.
+def filter_deps(var, f):
+import collections
+
+depends_dict = bb.utils.explode_dep_versions2(var)
+newdeps_dict = collections.OrderedDict()
+for dep in depends_dict:
+if f(dep):
+newdeps_dict[dep] = depends_dict[dep]
+return bb.utils.join_deps(newdeps_dict, commasep=False)
+
+# Filter out absolute paths (typically /bin/sh and /usr/bin/env) and any perl
+# dependencies for nativesdk packages.
+def filter_nativesdk_deps(srcname, var):
+if var and srcname.startswith("nativesdk-"):
+var = filter_deps(var, lambda dep: not dep.startswith('/') and dep != 
'perl' and not dep.startswith('perl('))
+return var
+
 # Construct per file dependencies file
 def write_rpm_perfiledata(srcname, d):
 workdir = d.getVar('WORKDIR')
@@ -26,7 +44,8 @@ def write_rpm_perfiledata(srcname, d):
 dependsflist = (d.getVar(dependsflist_key) or "")
 for dfile in dependsflist.split():
 key = "FILE" + varname + "_" + dfile + "_" + pkg
-depends_dict = bb.utils.explode_dep_versions(d.getVar(key) or 
"")
+deps = filter_nativesdk_deps(srcname, d.getVar(key) or "")
+depends_dict = bb.utils.explode_dep_versions(deps)
 file = dfile.replace("@underscore@", "_")
 file = file.replace("@closebrace@", "]")
 file = file.replace("@openbrace@", "[")
@@ -359,6 +378,8 @@ python write_specfile () {
 splitrdepends = splitrdepends + " " + get_perfile('RDEPENDS', pkg, 
d)
 splitrprovides = splitrprovides + " " + get_perfile('RPROVIDES', 
pkg, d)
 
+splitrdepends = filter_nativesdk_deps(srcname, splitrdepends)
+
 # Gather special src/first package data
 if srcname == splitname:
 srcrdepends= splitrdepends
-- 
1.8.3.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 0/6] Fix RPM4 regressions based on Pyro

2017-08-15 Thread Mark Hatle
Work is available at:

git://git.openembedded.org/openembedded-core-contrib mgh/rpm_dep_regression

This is work based on Peter Kjellerstedt's fixes for the rpm dependency
generation.  (See poky-contrib pkj/rpm_regressions2 for the original work.)

The major difference is the last commit which disabled the perl requirement
generation.  This resolves the only problem I found in Peter's patches.

>From the comments to the original patch, the only not addressed was adding
an OE self-test for this behavior.  I tried to do this, but I don't see any
existing tests that build a recipe and inspect the results of the built
package.  I'm not sure of any other way to identify if things are working or
not.

To give you an idea of what this does, the provides for libc6, x86-64, prior
to this change were:
eglibc
glibc = 2.26
libc6 = 2.26-r0

After the change, the following were added (other remain):
ld-linux-x86-64.so.2()(64bit)
ld-linux-x86-64.so.2(GLIBC_2.2.5)(64bit)
ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)
ld-linux-x86-64.so.2(GLIBC_2.4)(64bit)
ld-linux-x86-64.so.2(GLIBC_PRIVATE)(64bit)
libanl.so.1()(64bit)
libanl.so.1(GLIBC_2.2.5)(64bit)
libBrokenLocale.so.1()(64bit)
libBrokenLocale.so.1(GLIBC_2.2.5)(64bit)
libcrypt.so.1()(64bit)
libcrypt.so.1(GLIBC_2.2.5)(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.10)(64bit)
libc.so.6(GLIBC_2.11)(64bit)
libc.so.6(GLIBC_2.12)(64bit)
libc.so.6(GLIBC_2.13)(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.15)(64bit)
libc.so.6(GLIBC_2.16)(64bit)
libc.so.6(GLIBC_2.17)(64bit)
libc.so.6(GLIBC_2.18)(64bit)
libc.so.6(GLIBC_2.22)(64bit)
libc.so.6(GLIBC_2.23)(64bit)
libc.so.6(GLIBC_2.24)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.25)(64bit)
libc.so.6(GLIBC_2.2.6)(64bit)
libc.so.6(GLIBC_2.26)(64bit)
libc.so.6(GLIBC_2.3.2)(64bit)
libc.so.6(GLIBC_2.3.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libc.so.6(GLIBC_2.5)(64bit)
libc.so.6(GLIBC_2.6)(64bit)
libc.so.6(GLIBC_2.7)(64bit)
libc.so.6(GLIBC_2.8)(64bit)
libc.so.6(GLIBC_2.9)(64bit)
libc.so.6(GLIBC_PRIVATE)(64bit)
libdl.so.2()(64bit)
libdl.so.2(GLIBC_2.2.5)(64bit)
libdl.so.2(GLIBC_2.3.3)(64bit)
libdl.so.2(GLIBC_2.3.4)(64bit)
libdl.so.2(GLIBC_PRIVATE)(64bit)
libm.so.6()(64bit)
libm.so.6(GLIBC_2.15)(64bit)
libm.so.6(GLIBC_2.18)(64bit)
libm.so.6(GLIBC_2.23)(64bit)
libm.so.6(GLIBC_2.24)(64bit)
libm.so.6(GLIBC_2.2.5)(64bit)
libm.so.6(GLIBC_2.25)(64bit)
libm.so.6(GLIBC_2.26)(64bit)
libm.so.6(GLIBC_2.4)(64bit)
libmvec.so.1()(64bit)
libmvec.so.1(GLIBC_2.22)(64bit)
libnsl.so.1()(64bit)
libnsl.so.1(GLIBC_2.2.5)(64bit)
libnsl.so.1(GLIBC_PRIVATE)(64bit)
libnss_compat.so.2()(64bit)
libnss_compat.so.2(GLIBC_PRIVATE)(64bit)
libnss_dns.so.2()(64bit)
libnss_dns.so.2(GLIBC_PRIVATE)(64bit)
libnss_files.so.2()(64bit)
libnss_files.so.2(GLIBC_PRIVATE)(64bit)
libpthread.so.0()(64bit)
libpthread.so.0(GLIBC_2.11)(64bit)
libpthread.so.0(GLIBC_2.12)(64bit)
libpthread.so.0(GLIBC_2.18)(64bit)
libpthread.so.0(GLIBC_2.2.5)(64bit)
libpthread.so.0(GLIBC_2.2.6)(64bit)
libpthread.so.0(GLIBC_2.3.2)(64bit)
libpthread.so.0(GLIBC_2.3.3)(64bit)
libpthread.so.0(GLIBC_2.3.4)(64bit)
libpthread.so.0(GLIBC_2.4)(64bit)
libpthread.so.0(GLIBC_PRIVATE)(64bit)
libresolv.so.2()(64bit)
libresolv.so.2(GLIBC_2.2.5)(64bit)
libresolv.so.2(GLIBC_2.3.2)(64bit)
libresolv.so.2(GLIBC_2.9)(64bit)
libresolv.so.2(GLIBC_PRIVATE)(64bit)
librt.so.1()(64bit)
librt.so.1(GLIBC_2.2.5)(64bit)
librt.so.1(GLIBC_2.3.3)(64bit)
librt.so.1(GLIBC_2.3.4)(64bit)
librt.so.1(GLIBC_2.4)(64bit)
librt.so.1(GLIBC_2.7)(64bit)
libutil.so.1()(64bit)
libutil.so.1(GLIBC_2.2.5)(64bit)
rtld(GNU_HASH)


I have built and tested this for:

core-image-base core-image-minimal core-image-full-cmdline 
core-image-kernel-dev core-image-lsb core-image-lsb-dev 
core-image-lsb-sdk core-image-testmaster core-image-clutter 
core-image-weston core-image-x11 core-image-sato core-image-sato-dev 
core-image-sato-sdk core-image-sato-sdk-ptest

Also using qemux86, qemux86-64 and qemuarm64.

The following description is from Peter's original pull request:

Right before the release of Pyro (about a month ago), we noticed a
problem with missing automatically determined runtime file
dependencies after the transition to rpm4 and dnf. Unfortunately it
has taken me quite a while to work out all the details, but here is
the result finally.



Then rpm is updated to make it possible to yet again access the
runtime dependencies we need, and finally package.bbclass is updated
to make use of them.

See the patches, especially the last one, for more in depth
information on what went wrong during the transition to rpm4 and dnf,
and how to solve it.


Mark Hatle (1):
  rpm: Disable perl dependency generation

Peter Kjellerstedt (5):
  rpm: Add dependencies on bash, perl and python3-core
  git: Do not install git cvsserver and git svn by default
  texinfo: Avoid a problem with a dependency on perl(Locale::gettext_xs)
  package_rpm.bbclass: Filter out unwanted file deps for nativesdk
packages
  

[OE-core] [PATCH] packagegroup-python3: add packagegroup

2017-08-15 Thread Jose Lamego
Many of the most usual python3 modules are missing when
trying to import them to python3 in images built with
python3-core installed.

This change creates the python3 packagegroup, containing
the most usual python3 packages to be installed for images
featuring complete python functionality by using the
FEATURES_PACKAGES variable to define python3 as a new feature
and then adding it to the image to build.

[YOCTO #10667]

Signed-off-by: Jose Lamego 
---
 .../packagegroups/packagegroup-python3.bb  | 85 ++
 1 file changed, 85 insertions(+)
 create mode 100644 meta/recipes-devtools/packagegroups/packagegroup-python3.bb

diff --git a/meta/recipes-devtools/packagegroups/packagegroup-python3.bb 
b/meta/recipes-devtools/packagegroups/packagegroup-python3.bb
new file mode 100644
index 000..ab83460
--- /dev/null
+++ b/meta/recipes-devtools/packagegroups/packagegroup-python3.bb
@@ -0,0 +1,85 @@
+SUMMARY = "Provides a basic set of python3 packages"
+
+DEPENDS = "python3-native"
+
+PR = "1"
+
+inherit packagegroup
+
+RPROVIDES_${PN} = "python3"
+
+RDEPENDS_${PN} = "\
+libpython3 \
+libpython3-staticdev \
+python3-pyvenv \
+python3-dbg \
+python3-2to3 \
+python3-argparse \
+python3-asyncio \
+python3-audio \
+python3-codecs \
+python3-compile \
+python3-compression \
+python3-core \
+python3-crypt \
+python3-ctypes \
+python3-curses \
+python3-datetime \
+python3-db \
+python3-debugger \
+python3-dev \
+python3-difflib \
+python3-distutils \
+python3-doctest \
+python3-email \
+python3-enum \
+python3-fcntl \
+python3-gdbm \
+python3-html \
+python3-idle \
+python3-image \
+python3-importlib \
+python3-io \
+python3-json \
+python3-lang \
+python3-logging \
+python3-mailbox \
+python3-math \
+python3-mime \
+python3-mmap \
+python3-multiprocessing \
+python3-netclient \
+python3-netserver \
+python3-numbers \
+python3-pickle \
+python3-pkgutil \
+python3-pprint \
+python3-profile \
+python3-pydoc \
+python3-re \
+python3-readline \
+python3-reprlib \
+python3-resource \
+python3-selectors \
+python3-shell \
+python3-signal \
+python3-smtpd \
+python3-sqlite3 \
+python3-sqlite3-tests \
+python3-stringold \
+python3-subprocess \
+python3-syslog \
+python3-terminal \
+python3-tests \
+python3-textutils \
+python3-threading \
+python3-tkinter \
+python3-typing \
+python3-unittest \
+python3-unixadmin \
+python3-xml \
+python3-xmlrpc \
+python3-modules \
+python3-misc \
+python3-man \
+"
-- 
2.7.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] State of bitbake world, Failed tasks 2017-08-15

2017-08-15 Thread Martin Jansa
Most of these issues are probably caused by openssl upgrade in oe-core.

http://www.openembedded.org/wiki/Bitbake_World_Status

== Number of issues - stats ==
{| class='wikitable'
!|Date   !!colspan='3'|Failed tasks 
!!|Signatures   
!!colspan='14'|QA !!Comment
|-
||  ||qemuarm   ||qemux86   ||qemux86_64||all
||already-stripped  ||libdir||textrel   ||build-deps
||file-rdeps||version-going-backwards   ||host-user-contaminated
||installed-vs-shipped  ||unknown-configure-option  ||symlink-to-sysroot
||invalid-pkgconfig ||pkgname   ||ldflags   ||compile-host-path 
||
|-

||2017-08-15||41||35||45||0 ||0 ||0 
||2 ||0 ||0 ||0 ||0 
||0 ||0 ||0 ||0 ||0 
||0 ||0 ||
|}

== Failed tasks 2017-08-15 ==

INFO: jenkins-job.sh-1.8.25 Complete log available at
http://logs.nslu2-linux.org/buildlogs/oe/world/rocko/log.report.20170815_105243.log

=== common (30) ===
* 
meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb:do_compile
* 
meta-openembedded/meta-networking/recipes-connectivity/lftp/lftp_4.7.7.bb:do_compile
* 
meta-openembedded/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb:do_compile
* meta-openembedded/meta-networking/recipes-irc/znc/znc_git.bb:do_compile
* 
meta-openembedded/meta-networking/recipes-protocols/nopoll/nopoll_0.4.2.b297.bb:do_compile
* 
meta-openembedded/meta-networking/recipes-support/fetchmail/fetchmail_6.3.26.bb:do_compile
* 
meta-openembedded/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb:do_compile
* 
meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.4.2.bb:do_compile
* 
meta-openembedded/meta-networking/recipes-support/uftp/uftp_4.9.3.bb:do_compile
* 
meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb:do_compile
* 
meta-openembedded/meta-oe/recipes-devtools/librcf/librcf_2.2.0.0.bb:do_compile
* 
meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb:do_compile
* 
meta-openembedded/meta-oe/recipes-extended/cfengine/cfengine_3.9.0.bb:do_compile
* 
meta-openembedded/meta-oe/recipes-extended/mailx/mailx_12.5-5.bb:do_compile
* 
meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.2.bb:do_compile
* 
meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb:do_compile
* meta-openembedded/meta-oe/recipes-support/asio/asio_1.10.6.bb:do_compile
* 
meta-openembedded/meta-oe/recipes-support/ipmitool/ipmitool_1.8.18.bb:do_compile
* 
meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.24.3.bb:do_compile
* 
meta-openembedded/meta-oe/recipes-support/liboauth/liboauth_1.0.3.bb:do_compile
* 
meta-openembedded/meta-oe/recipes-support/libp11/libp11_0.4.0.bb:do_compile
* meta-openembedded/meta-oe/recipes-support/links/links_2.7.bb:do_compile
* 
meta-openembedded/meta-oe/recipes-support/links/links-x11_2.7.bb:do_compile
* 
meta-openembedded/meta-oe/recipes-support/pkcs11-helper/pkcs11-helper_1.11.bb:do_compile
* 
meta-openembedded/meta-oe/recipes-support/postgresql/postgresql_9.4.11.bb:do_configure
* 
meta-openembedded/meta-oe/recipes-support/synergy/synergy_git.bb:do_compile
* 
meta-openembedded/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-rsa-perl_0.28.bb:do_compile
* 
meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto_0.25.1.bb:do_compile
* 
virtual:native:meta-openembedded/meta-oe/recipes-support/gsoap/gsoap_2.8.12.bb:do_compile
* 
virtual:native:meta-openembedded/meta-python/recipes-devtools/python/python-m2crypto_0.25.1.bb:do_compile

=== common-x86 (2) ===
* 
meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_4.8.3.bb:do_compile
* 
meta-openembedded/meta-oe/recipes-support/mongodb/mongodb_git.bb:do_compile

=== qemuarm (11) ===
* 
meta-openembedded/meta-multimedia/recipes-dvb/oscam/oscam_svn.bb:do_compile
* 
meta-openembedded/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb:do_compile
* 
meta-openembedded/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.1.4.bb:do_compile
* 
meta-openembedded/meta-oe/recipes-connectivity/thrift/thrift_0.9.3.bb:do_compile
* meta-openembedded/meta-oe/recipes-connectivity/umip/umip_1.0.bb:do_compile
* 
meta-openembedded/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb:do_compile
* 
meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb:do_compile
* 
meta-openembedded/meta-oe/recipes-support/mysql/mariadb_5.5.55.bb:do_compile
* 
meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.16.0.bb:do_compile
* 

Re: [OE-core] [PATCH v5] kernel: Add support for multiple kernel packages

2017-08-15 Thread Wold, Saul
On Mon, 2017-08-14 at 16:29 -0500, Haris Okanovic wrote:
> 
> On 08/08/2017 05:33 PM, Wold, Saul wrote:
> > 
> > On Tue, 2017-08-08 at 10:30 -0500, Haris Okanovic wrote:
> > > 
> > > Some distros may want to provide alternate kernel "flavors" via
> > > feeds
> > > or
> > > within bootable images. For example, readily available builds
> > > which
> > > provide certain diagnostic features can enable developers and
> > > testers
> > > to
> > > more quickly resolve issues by avoiding lengthy kernel builds.
> > > 
> > > This change allows for building multiple flavors of the kernel
> > > and
> > > module packages by templatizing kernel package names via a new
> > > KERNEL_PACKAGE_NAME variable in kernel.bbclass. It defaults to
> > > the
> > > old
> > > name of "kernel", but can be overridden by certain recipes
> > > providing
> > > alternate kernel flavors.
> > > 
> > > To maintain compatibility, recipes providing alternate kernel
> > > flavors
> > > cannot be the "preferred provider" for virtual/kernel. This is
> > > because
> > > OE puts the preferred provider's build and source at
> > > "tmp-glibc/work-shared/$MACHINE/kernel-build-artifacts/" and
> > > "tmp-glibc/work-shared/$MACHINE/kernel-source/" instead of
> > > "tmp-glibc/work/*/$PN/" like other recipes. Therefore, recipes
> > > using
> > > the
> > > default KERNEL_PACKAGE_NAME="kernel" follows the old semantics --
> > > build
> > > in the old location and may be preferred provider -- while
> > > recipes
> > > using
> > > all other KERNEL_PACKAGE_NAME's build from the normal WORKDIR and
> > > don't
> > > provide "virtual/kernel".
> > > 
> > > Testing:
> > >   1. Prepended `KERNEL_PACKAGE_NAME = "tiny-linux"` to
> > >  linux-yocto-tiny_4.9.bb so that it may build alongside
> > >  the main kernel.
> > >   2. `bitbake linux-yocto linux-yocto-tiny` to build both kernel
> > > flavors.
> > >   3. Verified image and modules IPKs exist for both:
> > >  tmp-glibc/deploy/ipk/qemux86/kernel-* for linux-yocto
> > >  tmp-glibc/deploy/ipk/qemux86/tiny-linux* for linux-yocto-
> > > tiny
> > >   4. Verified linux-yocto is the "preferred provider", and was
> > > built
> > > in
> > >  shared directory: tmp-glibc/work-shared/qemux86/kernel-*
> > >   5. Appended `CORE_IMAGE_BASE_INSTALL += "tiny-linux"` to
> > >  core-image-base.bb to include both kernel flavors.
> > >   6. `bitbake core-image-base` to build an image.
> > >   7. Verified image contains two bzImage's under /boot/, with
> > >  "yocto-standard" selected to boot via symlink.
> > > 
> > Thank you for continuing to work on this.  I did a simple test of
> > building a single kernel and lttng-modules without your change and
> > then
> > added this patch and tried lttng-modules with no additional changes
> > to
> > my local.conf, just regular single kernel workflow.
> > 
> > I got the following issue:
> > 
> > ERROR: lttng-modules-2.9.3-r0 do_package: Error executing a python
> > function in exec_python_func() autogenerated:
> > 
> > The stack trace of python calls that resulted in this
> > exception/failure
> > was:
> > File: 'exec_python_func() autogenerated', lineno: 2, function:
> > 
> >   0001:
> >   *** 0002:split_kernel_module_packages(d)
> >   0003:
> > File: '/srv/sdb/releases/master/meta/classes/kernel-module-
> > split.bbclass', lineno: 139, function: split_kernel_module_packages
> >   0135:module_regex = '^(.*)\.k?o$'
> >   0136:
> >   0137:module_pattern_prefix =
> > d.getVar('KERNEL_MODULE_PACKAGE_PREFIX')
> >   0138:module_pattern_suffix =
> > d.getVar('KERNEL_MODULE_PACKAGE_SUFFIX')
> >   *** 0139:module_pattern = module_pattern_prefix +
> > kernel_package_name + '-module-%s' + module_pattern_suffix
> >   0140:
> >   0141:postinst = d.getVar('pkg_postinst_modules')
> >   0142:postrm = d.getVar('pkg_postrm_modules')
> >   0143:
> > Exception: TypeError: Can't convert 'NoneType' object to str
> > implicitly
> > 
> > ERROR: lttng-modules-2.9.3-r0 do_package: Function failed:
> > split_kernel_module_packages
> > ERROR: Logfile of failure stored in:
> > /srv/sdb/releases/master/builds/corei7/tmp/work/genericx86_64-poky-
> > linux/lttng-modules/2.9.3-r0/temp/log.do_package.80115
> > NOTE: recipe lttng-modules-2.9.3-r0: task do_package: Failed
> > 
> > I believe the problem is that I tried to build lttng-modules
> > standalone
> > and so the kernel.bbclass does not get involved to set the
> > KERNEL_PACKAGE_NAME default.
> > 
> 
> Correct. I mistakenly though everything relating to kernel builds 
> sources kernel.bbclass.
> 
> I added a default KERNEL_PACKAGE_NAME to kernel-module-
> split.bbclass, 
> for the module-only case. However, I'm not sure if there's a better 
> place for it. Thoughts? (PATCH v6 incoming)
> 
I think the better idea might be to put in a check if it's not set then
use the default value of kernel, rather than adding another default
setting of KERNEL_PACKAGE_NAME, since that variable will be 

[OE-core] [PATCH 2/2] build-appliance-image: include proxy on pip3 installation

2017-08-15 Thread leonardo . sandoval . gonzalez
From: Leonardo Sandoval 

Otherwise, we get timeouts, leading to errors:

pip._vendor.requests.exceptions.ConnectTimeout: 
HTTPSConnectionPool(host='pypi.python.org', port=443): Max retries exceeded 
with url: /pypi/pip/json (Caused by 
ConnectTimeoutError(, 'Connection to pypi.python.org timed out. (connect 
timeout=5)'))
WARNING: 
TOPDIR/tmp/work/qemux86-poky-linux/build-appliance-image/15.0.0-r0/temp/run.do_populate_poky_src.185123:1
 exit 1 from 'pip3 install --user -I -U -v -r 
TOPDIR/tmp/work/qemux86-poky-linux/build-appliance-image/15.0.0-r0/rootfs/home/builder/poky/bitbake/toaster-requirements.txt'
DEBUG: Python function do_image finished

Complete log at [1]

[1] http://errors.yoctoproject.org/Errors/Build/43393/

Signed-off-by: Leonardo Sandoval 
---
 meta/recipes-core/images/build-appliance-image_15.0.0.bb | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/meta/recipes-core/images/build-appliance-image_15.0.0.bb 
b/meta/recipes-core/images/build-appliance-image_15.0.0.bb
index 927a9310ac..e0566f4300 100644
--- a/meta/recipes-core/images/build-appliance-image_15.0.0.bb
+++ b/meta/recipes-core/images/build-appliance-image_15.0.0.bb
@@ -101,7 +101,11 @@ fakeroot do_populate_poky_src () {
export STAGING_INCDIR=${STAGING_INCDIR_NATIVE}
export HOME=${IMAGE_ROOTFS}/home/builder
mkdir -p ${IMAGE_ROOTFS}/home/builder/.cache/pip
-   pip3 install --user -I -U -v -r 
${IMAGE_ROOTFS}/home/builder/poky/bitbake/toaster-requirements.txt
+   pip3_install_params="--user -I -U -v -r 
${IMAGE_ROOTFS}/home/builder/poky/bitbake/toaster-requirements.txt"
+   if [ -n ${http_proxy} ]; then
+  pip3_install_params="${pip3_install_params} --proxy ${http_proxy}"
+   fi
+   pip3 install ${pip3_install_params}
chown -R builder.builder ${IMAGE_ROOTFS}/home/builder/.local
chown -R builder.builder ${IMAGE_ROOTFS}/home/builder/.cache
 }
-- 
2.12.3

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 1/2] packagegroup-self-hosted: include missing (pod2man scp ssh) RPEDENDS packages

2017-08-15 Thread leonardo . sandoval . gonzalez
From: Leonardo Sandoval 

Otherwise, the following bitbake error is observed

root@qemux86-64:~/openembedded-core/build# bitbake -e
NOTE: Starting bitbake server...
ERROR: Unable to start bitbake server
ERROR: Last 10 lines of server log 
/home/root/openembedded-core/build/bitbake-cookerdaemon.log:
  File "/home/root/openembedded-core/bitbake/lib/bb/cooker.py", line 197, 
in __init__
self.initConfigurationData()
  File "/home/root/openembedded-core/bitbake/lib/bb/cooker.py", line 348, 
in initConfigurationData
self.databuilder.parseBaseConfiguration()
  File "/home/root/openembedded-core/bitbake/lib/bb/cookerdata.py", line 
323, in parseBaseConfiguration
raise bb.BBHandledException
bb.BBHandledException
NOTE: Starting bitbake server...
ERROR: The following required tools (as specified by HOSTTOOLS) appear to 
be unavailable in PATH, please install them in order to proceed:
  pod2man scp ssh

Signed-off-by: Leonardo Sandoval 
---
 meta/recipes-core/packagegroups/packagegroup-self-hosted.bb | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb 
b/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
index 0abd5bc90e..ff42866e32 100644
--- a/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
@@ -140,12 +140,15 @@ RDEPENDS_packagegroup-self-hosted-extended = "\
 nfs-utils \
 nfs-utils-client \
 openssl \
+openssh-scp \
 openssh-sftp-server \
+openssh-ssh \
 opkg \
 opkg-utils \
 patch \
 perl \
 perl-dev \
+perl-misc \
 perl-modules \
 perl-pod \
 python \
-- 
2.12.3

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH] systemd: Fix rootfs transaction error when PACKAGECONFIG has polkit

2017-08-15 Thread Jason Wessel
The systemd 234 added some files to the polkit directory and the
directory the files live in must be owned by the polkitd user, else
you will receive the following error when the rootfs is being
assembled:

Error: Transaction check error:
  file /usr/share/polkit-1/rules.d conflicts between attempted installs of 
polkit-0.113-r0.15.core2_64 and systemd-1:234-r0.0.core2_64

The fix similar to other packages such as libvirt where the user must
exist and the directory must be created with the proper attributes.

Signed-off-by: Jason Wessel 
---
 meta/recipes-core/systemd/systemd_234.bb | 9 +
 1 file changed, 9 insertions(+)

diff --git a/meta/recipes-core/systemd/systemd_234.bb 
b/meta/recipes-core/systemd/systemd_234.bb
index ad7fc99b90..4560cf4175 100644
--- a/meta/recipes-core/systemd/systemd_234.bb
+++ b/meta/recipes-core/systemd/systemd_234.bb
@@ -245,6 +245,14 @@ do_install() {
ln -s ../run/systemd/resolve/resolv.conf 
${D}${sysconfdir}/resolv-conf.systemd
fi
install -Dm 0755 ${S}/src/systemctl/systemd-sysv-install.SKELETON 
${D}${systemd_unitdir}/systemd-sysv-install
+
+   # If polkit is setup fixup permissions and ownership
+   if [ "${@bb.utils.contains('PACKAGECONFIG', 'polkit', 'polkit', '', 
d)}" = "polkit" ] ; then
+   if [ -d ${D}${datadir}/polkit-1/rules.d ] ; then
+   chmod 700 ${D}${datadir}/polkit-1/rules.d
+   chown polkitd:root ${D}${datadir}/polkit-1/rules.d
+   fi
+   fi
 }
 
 do_install_ptest () {
@@ -308,6 +316,7 @@ USERADD_PARAM_${PN} += 
"${@bb.utils.contains('PACKAGECONFIG', 'timesyncd', '--sy
 USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'networkd', 
'--system -d / -M --shell /bin/nologin systemd-network;', '', d)}"
 USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'coredump', 
'--system -d / -M --shell /bin/nologin systemd-coredump;', '', d)}"
 USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'resolved', 
'--system -d / -M --shell /bin/nologin systemd-resolve;', '', d)}"
+USERADD_PARAM_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'polkit', 
'--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 
polkitd;', '', d)}"
 GROUPADD_PARAM_${PN} = "-r lock; -r systemd-journal"
 USERADD_PARAM_${PN}-extra-utils += "--system -d / -M --shell /bin/nologin 
systemd-bus-proxy;"
 
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH] insane: add qa check for lowercase recipe name

2017-08-15 Thread Andre McCurdy
On Tue, Aug 15, 2017 at 7:23 AM, Leonardo Sandoval
 wrote:
> On Mon, 2017-08-14 at 19:23 -0700, Yeoh Ee Peng wrote:
>> Since we disabled uppercase characters in overrides a few releases ago,
>> uppercase characters in recipe names (and for that matter, distro and
>> machine names) cannot be supported due to their reliance upon overrides
>> including the name.
>>
>> QA check will produce an warning message when it verify that recipe
>> name is not lowercase.
>>
>> [YOCTO# 11592]
>>
>> Signed-off-by: Yeoh Ee Peng 
>> ---
>>  meta/classes/insane.bbclass | 6 --
>>  1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
>> index b7177c9..8e062d1 100644
>> --- a/meta/classes/insane.bbclass
>> +++ b/meta/classes/insane.bbclass
>> @@ -27,7 +27,7 @@ WARN_QA ?= "ldflags useless-rpaths rpaths staticdev libdir 
>> xorg-driver-abi \
>>  installed-vs-shipped compile-host-path install-host-path \
>>  pn-overrides infodir build-deps \
>>  unknown-configure-option symlink-to-sysroot multilib \
>> -invalid-packageconfig host-user-contaminated \
>> +invalid-packageconfig host-user-contaminated pn_lowercase \
>>  "
>
> IMO, what you warn is that variable has uppercase letters, so the test
> should be named 'pn_uppercase'

All the other tests are named using '-' rather than '_', so
pn-uppercase (or uppercase-pn) might be even better.

>>  ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch pkgconfig la \
>>  perms dep-cmp pkgvarcheck perm-config perm-line perm-link \
>> @@ -1274,7 +1274,9 @@ python () {
>>  if pn in overrides:
>>  msg = 'Recipe %s has PN of "%s" which is in OVERRIDES, this can 
>> result in unexpected behaviour.' % (d.getVar("FILE"), pn)
>>  package_qa_handle_error("pn-overrides", msg, d)
>> -
>> +if pn != pn.lower():
>> +package_qa_handle_error("pn_lowercase", 'PN: %s is not lower case, 
>> this can result in unexpected behavior.' % pn, d)
>> +
>
> for performance reasons, perhaps it would be better to create a regex
> matching uppercases and if match succeeded, the raise the error/warning
>
> One more thing. At the beginning of the insane class, on the comments
> area you can include this one on the 'Checks we do' section.
>
>>  issues = []
>>  if (d.getVar('PACKAGES') or "").split():
>>  for dep in (d.getVar('QADEPENDS') or "").split():
>> --
>> 2.7.4
>>
>
>
> --
> ___
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH] openssl10: Fix conflict between openssl and openssl10 man pages.

2017-08-15 Thread Jason Wessel
The package resolver failes to assemble images because some of the man
pages in openssl10 conflict with the openssl package.  In the case
where you want openssl, openssh and the documentation installed in the
same system you will see the failure.

The work around is to rename all the openssl10 man pages and symlinks
to have a prefix of openssl10-.

Signed-off-by: Jason Wessel 
---
 meta/recipes-connectivity/openssl/openssl10.inc | 10 ++
 1 file changed, 10 insertions(+)

diff --git a/meta/recipes-connectivity/openssl/openssl10.inc 
b/meta/recipes-connectivity/openssl/openssl10.inc
index c93d5d8738..54cf4598e1 100644
--- a/meta/recipes-connectivity/openssl/openssl10.inc
+++ b/meta/recipes-connectivity/openssl/openssl10.inc
@@ -199,6 +199,16 @@ do_install () {
ln -sf ${sysconfdir}/ssl/certs ${D}${libdir}/ssl/certs
ln -sf ${sysconfdir}/ssl/private ${D}${libdir}/ssl/private
ln -sf ${sysconfdir}/ssl/openssl.cnf ${D}${libdir}/ssl/openssl.cnf
+
+   # Rename man pages to prefix openssl10-*
+   for f in `find ${D}${mandir} -type f`; do
+   mv $f $(dirname $f)/openssl10-$(basename $f)
+   done
+   for f in `find ${D}${mandir} -type l`; do
+   ln_f=`readlink $f`
+   rm -f $f
+   ln -s openssl10-$ln_f $(dirname $f)/openssl10-$(basename $f)
+   done
 }
 
 do_install_ptest () {
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] two recipes, one replaces files of another

2017-08-15 Thread Alexander Kanavin

On 08/15/2017 05:21 PM, Dvorkin Dmitry wrote:

Thank you, Alexander!

But according to this

https://lists.yoctoproject.org/pipermail/yocto/2013-January/011855.html

PREFERRED_PROVIDER_... can't be used in image recipes, only at top-level 
configuration files.


I can't make it work...



I think you can solve this by defining two machines: brdRevA and 
brdRevB. Then set PREFERRED_PROVIDER in the machine definitions.

And have just one recipe for the image.

You should not make image recipes hardware-specific anyway; any image 
recipe should work on any hardware, and details specific to the hardware 
are abstracted to the machine definition.


Alex
--
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] two recipes, one replaces files of another

2017-08-15 Thread Dvorkin Dmitry

Thank you, Alexander!

But according to this

https://lists.yoctoproject.org/pipermail/yocto/2013-January/011855.html

PREFERRED_PROVIDER_... can't be used in image recipes, only at top-level 
configuration files.


I can't make it work...


On 15.08.2017 13:59, Alexander Kanavin wrote:

On 08/15/2017 01:37 PM, Dvorkin Dmitry wrote:

How to create dependencies correctly?
I try to add
RPROVIDES_${PN} += "recipe-brd" in both recipe-brdRevA/B  and use 
PREFERRED_PROVIDER_recipe-brd = "..."

into imgA/B.bb without success.


PREFERRED_PROVIDER is the right way to go. That's how a kernel variant 
is selected from multiple choices (regular, tiny, real time) for 
example - have a look at how it's done.


Alex


<>-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 2/3] recipetool: create: handle git URLs specifying only a tag

2017-08-15 Thread Christopher Larson
rev-parse is a better bet than rev-list for ref validation, IMO.

On Tue, Aug 15, 2017 at 1:24 AM, Chang Rebecca Swee Fun <
rebecca.swee.fun.ch...@intel.com> wrote:

> From: Stanley Phoong 
>
> If a git URL is passed to recipetool create with a tag=, recipetool
> should handle it assuming that the tag is valid.
>
> [YOCTO #11393]
>
> Signed-off-by: Stanley Phoong 
> ---
>  scripts/lib/recipetool/create.py | 23 ++-
>  1 file changed, 22 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/
> create.py
> index d2e6fc0..52c10e5 100644
> --- a/scripts/lib/recipetool/create.py
> +++ b/scripts/lib/recipetool/create.py
> @@ -423,6 +423,7 @@ def create_recipe(args):
>  srcsubdir = ''
>  srcrev = '${AUTOREV}'
>  srcbranch = ''
> +storeTagName = ''
>
>  if os.path.isfile(source):
>  source = 'file://%s' % os.path.abspath(source)
> @@ -446,13 +447,21 @@ def create_recipe(args):
>  scheme, network, path, user, passwd, params =
> bb.fetch2.decodeurl(fetchuri)
>  srcbranch = params.get('branch')
>  nobranch = params.get('nobranch')
> +tag = params.get('tag')
>  if not srcbranch and not nobranch and srcrev != '${AUTOREV}':
>  # Append nobranch=1 in the following conditions:
>  # 1. User did not set 'branch=' in srcuri, and
>  # 2. User did not set 'nobranch=1' in srcuri, and
>  # 3. Source revision is not '${AUTOREV}'
>  params['nobranch'] = '1'
> -fetchuri = bb.fetch2.encodeurl((scheme, network, path, user,
> passwd, params))
> +if tag:
> +# Keep a copy of tag and append nobranch=1 then remove tag
> from URL.
> +# Bitbake fetcher unable to fetch when {AUTOREV} and tag is
> set at the same time.
> +# We will re-introduce tag argument after bitbake fetcher
> process is complete.
> +storeTagName = params['tag']
> +params['nobranch'] = '1'
> +del params['tag']
> +fetchuri = bb.fetch2.encodeurl((scheme, network, path, user,
> passwd, params))
>
>  tmpparent = tinfoil.config_data.getVar('BASE_WORKDIR')
>  bb.utils.mkdirhier(tmpparent)
> @@ -523,6 +532,18 @@ def create_recipe(args):
>  params['branch'] = srcbranch
>  srcuri = bb.fetch2.encodeurl((scheme, network, path, user,
> passwd, params))
>
> +if storeTagName:
> +# Re-introduced tag variable from storeTagName
> +# Check srcrev using tag and check validity of the tag
> +try:
> +cmd = ('git rev-list -n 1 %s' % (storeTagName))
> +check_tag, check_tag_err = bb.process.run('%s' % cmd,
> cwd=srctree)
> +srcrev = check_tag.split()[0]
> +except bb.process.ExecutionError as err:
> +logger.error(str(err))
> +logger.error("Possibly wrong tag name is provided")
> +sys.exit(1)
> +
>  if os.path.exists(os.path.join(srctree, '.gitmodules')) and
> srcuri.startswith('git://'):
>  srcuri = 'gitsm://' + srcuri[6:]
>  logger.info('Fetching submodules...')
> --
> 2.7.4
>
> --
> ___
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>



-- 
Christopher Larson
kergoth at gmail dot com
Founder - BitBake, OpenEmbedded, OpenZaurus
Senior Software Engineer, Mentor Graphics
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH] insane: add qa check for lowercase recipe name

2017-08-15 Thread Leonardo Sandoval
On Mon, 2017-08-14 at 19:23 -0700, Yeoh Ee Peng wrote:
> Since we disabled uppercase characters in overrides a few releases ago,
> uppercase characters in recipe names (and for that matter, distro and
> machine names) cannot be supported due to their reliance upon overrides
> including the name.
> 
> QA check will produce an warning message when it verify that recipe
> name is not lowercase.
> 
> [YOCTO# 11592]
> 
> Signed-off-by: Yeoh Ee Peng 
> ---
>  meta/classes/insane.bbclass | 6 --
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
> index b7177c9..8e062d1 100644
> --- a/meta/classes/insane.bbclass
> +++ b/meta/classes/insane.bbclass
> @@ -27,7 +27,7 @@ WARN_QA ?= "ldflags useless-rpaths rpaths staticdev libdir 
> xorg-driver-abi \
>  installed-vs-shipped compile-host-path install-host-path \
>  pn-overrides infodir build-deps \
>  unknown-configure-option symlink-to-sysroot multilib \
> -invalid-packageconfig host-user-contaminated \
> +invalid-packageconfig host-user-contaminated pn_lowercase \
>  "

IMO, what you warn is that variable has uppercase letters, so the test
should be named 'pn_uppercase'


>  ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch pkgconfig la \
>  perms dep-cmp pkgvarcheck perm-config perm-line perm-link \
> @@ -1274,7 +1274,9 @@ python () {
>  if pn in overrides:
>  msg = 'Recipe %s has PN of "%s" which is in OVERRIDES, this can 
> result in unexpected behaviour.' % (d.getVar("FILE"), pn)
>  package_qa_handle_error("pn-overrides", msg, d)
> -
> +if pn != pn.lower():
> +package_qa_handle_error("pn_lowercase", 'PN: %s is not lower case, 
> this can result in unexpected behavior.' % pn, d)
> +

for performance reasons, perhaps it would be better to create a regex
matching uppercases and if match succeeded, the raise the error/warning

One more thing. At the beginning of the insane class, on the comments
area you can include this one on the 'Checks we do' section.

>  issues = []
>  if (d.getVar('PACKAGES') or "").split():
>  for dep in (d.getVar('QADEPENDS') or "").split():
> -- 
> 2.7.4
> 


-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH] syslinux: Update HOMEPAGE

2017-08-15 Thread Jonathan Liu
Signed-off-by: Jonathan Liu 
---
 meta/recipes-devtools/syslinux/syslinux_6.03.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/recipes-devtools/syslinux/syslinux_6.03.bb 
b/meta/recipes-devtools/syslinux/syslinux_6.03.bb
index 69bce1f8d7..f8b1094096 100644
--- a/meta/recipes-devtools/syslinux/syslinux_6.03.bb
+++ b/meta/recipes-devtools/syslinux/syslinux_6.03.bb
@@ -1,5 +1,5 @@
 SUMMARY = "Multi-purpose linux bootloader"
-HOMEPAGE = "http://syslinux.zytor.com/;
+HOMEPAGE = "http://www.syslinux.org/;
 LICENSE = "GPLv2+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
 
file://README;beginline=35;endline=41;md5=558f2c71cb1fb9ba511ccd4858e48e8a"
-- 
2.13.2

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH v4 7/8] oeqa: fix temp file handling in dnf package feed test

2017-08-15 Thread Markus Lehtonen
Prevent stale temp files and a possible (if unlikely) race in tempfile
usage.

Signed-off-by: Markus Lehtonen 
---
 meta-selftest/lib/oeqa/runtime/cases/dnf_runtime.py | 9 ++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/meta-selftest/lib/oeqa/runtime/cases/dnf_runtime.py 
b/meta-selftest/lib/oeqa/runtime/cases/dnf_runtime.py
index 123e7259f1..68e56f2c5e 100644
--- a/meta-selftest/lib/oeqa/runtime/cases/dnf_runtime.py
+++ b/meta-selftest/lib/oeqa/runtime/cases/dnf_runtime.py
@@ -6,6 +6,8 @@ class DnfSelftest(DnfTest):
 
 @classmethod
 def setUpClass(cls):
+import tempfile
+cls.temp_dir = tempfile.TemporaryDirectory(prefix="oeqa-remotefeeds-")
 cls.repo_server = HTTPService(os.path.join(cls.tc.td['WORKDIR'], 
'oe-rootfs-repo'),
   cls.tc.target.server_ip)
 cls.repo_server.start()
@@ -13,6 +15,7 @@ class DnfSelftest(DnfTest):
 @classmethod
 def tearDownClass(cls):
 cls.repo_server.stop()
+cls.temp_dir.cleanup()
 
 @OETestDepends(['dnf.DnfBasicTest.test_dnf_help'])
 def test_verify_package_feeds(self):
@@ -25,11 +28,11 @@ class DnfSelftest(DnfTest):
 """
 # When we created an image, we had to supply fake ip and port
 # for the feeds. Now we can patch the real ones into the config file.
-import tempfile
-temp_file = 
tempfile.TemporaryDirectory(prefix="oeqa-remotefeeds-").name
+temp_file = os.path.join(self.temp_dir.name, 'tmp.repo')
 self.tc.target.copyFrom("/etc/yum.repos.d/oe-remote-repo.repo", 
temp_file)
 fixed_config = open(temp_file, "r").read().replace("bogus_ip", 
self.tc.target.server_ip).replace("bogus_port", str(self.repo_server.port))
-open(temp_file, "w").write(fixed_config)
+with open(temp_file, "w") as f:
+f.write(fixed_config)
 self.tc.target.copyTo(temp_file, 
"/etc/yum.repos.d/oe-remote-repo.repo")
 
 import re
-- 
2.12.3

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH v4 8/8] dnf: expand dnf selftest to test signed package feeds

2017-08-15 Thread Markus Lehtonen
[YOCTO #11209]

Signed-off-by: Markus Lehtonen 
---
 meta-selftest/files/signing/key.passphrase  |  1 +
 meta-selftest/lib/oeqa/runtime/cases/dnf_runtime.py |  4 +++-
 meta/lib/oeqa/selftest/cases/runtime_test.py| 12 +++-
 3 files changed, 15 insertions(+), 2 deletions(-)
 create mode 100644 meta-selftest/files/signing/key.passphrase

diff --git a/meta-selftest/files/signing/key.passphrase 
b/meta-selftest/files/signing/key.passphrase
new file mode 100644
index 00..5271a52680
--- /dev/null
+++ b/meta-selftest/files/signing/key.passphrase
@@ -0,0 +1 @@
+test123
diff --git a/meta-selftest/lib/oeqa/runtime/cases/dnf_runtime.py 
b/meta-selftest/lib/oeqa/runtime/cases/dnf_runtime.py
index 68e56f2c5e..6742e8c080 100644
--- a/meta-selftest/lib/oeqa/runtime/cases/dnf_runtime.py
+++ b/meta-selftest/lib/oeqa/runtime/cases/dnf_runtime.py
@@ -36,7 +36,9 @@ class DnfSelftest(DnfTest):
 self.tc.target.copyTo(temp_file, 
"/etc/yum.repos.d/oe-remote-repo.repo")
 
 import re
-output_makecache = self.dnf('makecache')
+# Use '-y' for non-interactive mode: automatically import the feed 
signing key
+output_makecache = self.dnf('-y makecache')
+self.assertTrue(re.match(r".*Failed to synchronize cache", 
output_makecache, re.DOTALL) is None, msg = "dnf makecache failed to 
synchronize repo: %s" %(output_makecache))
 self.assertTrue(re.match(r".*Metadata cache created", 
output_makecache, re.DOTALL) is not None, msg = "dnf makecache failed: %s" 
%(output_makecache))
 
 output_repoinfo = self.dnf('repoinfo')
diff --git a/meta/lib/oeqa/selftest/cases/runtime_test.py 
b/meta/lib/oeqa/selftest/cases/runtime_test.py
index 27cf584ea5..673b1998ac 100644
--- a/meta/lib/oeqa/selftest/cases/runtime_test.py
+++ b/meta/lib/oeqa/selftest/cases/runtime_test.py
@@ -3,6 +3,7 @@ from oeqa.utils.commands import runCmd, bitbake, get_bb_var, 
get_bb_vars, runqem
 from oeqa.core.decorator.oeid import OETestID
 import os
 import re
+import tempfile
 
 class TestExport(OESelftestTestCase):
 
@@ -143,7 +144,16 @@ class TestImage(OESelftestTestCase):
 # in at the start of the on-image test
 features += 'PACKAGE_FEED_URIS = "http://bogus_ip:bogus_port"\n'
 features += 'EXTRA_IMAGE_FEATURES += "package-management"\n'
-features += 'PACKAGE_CLASSES = "package_rpm"'
+features += 'PACKAGE_CLASSES = "package_rpm"\n'
+
+# Enable package feed signing
+self.gpg_home = tempfile.TemporaryDirectory(prefix="oeqa-feed-sign-")
+signing_key_dir = os.path.join(self.testlayer_path, 'files', 'signing')
+runCmd('gpg --batch --homedir %s --import %s' % (self.gpg_home.name, 
os.path.join(signing_key_dir, 'key.secret')))
+features += 'INHERIT += "sign_package_feed"\n'
+features += 'PACKAGE_FEED_GPG_NAME = "testuser"\n'
+features += 'PACKAGE_FEED_GPG_PASSPHRASE_FILE = "%s"\n' % 
os.path.join(signing_key_dir, 'key.passphrase')
+features += 'GPG_PATH = "%s"\n' % self.gpg_home.name
 self.write_config(features)
 
 # Build core-image-sato and testimage
-- 
2.12.3

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH v4 6/8] oeqa: fix dnf tests

2017-08-15 Thread Markus Lehtonen
Rename one dnf runtime test that it will recognized as a python module
and thus also found by the oe test loader. Also, fix value of
TEST_SUITES in dnf selftest so that all test dependencies are satisfied
and the runtime test may be successfully run from there.

Signed-off-by: Markus Lehtonen 
---
 meta-selftest/lib/oeqa/runtime/cases/{dnf-runtime.py => dnf_runtime.py} | 0
 meta/lib/oeqa/selftest/cases/runtime_test.py| 2 +-
 2 files changed, 1 insertion(+), 1 deletion(-)
 rename meta-selftest/lib/oeqa/runtime/cases/{dnf-runtime.py => dnf_runtime.py} 
(100%)

diff --git a/meta-selftest/lib/oeqa/runtime/cases/dnf-runtime.py 
b/meta-selftest/lib/oeqa/runtime/cases/dnf_runtime.py
similarity index 100%
rename from meta-selftest/lib/oeqa/runtime/cases/dnf-runtime.py
rename to meta-selftest/lib/oeqa/runtime/cases/dnf_runtime.py
diff --git a/meta/lib/oeqa/selftest/cases/runtime_test.py 
b/meta/lib/oeqa/selftest/cases/runtime_test.py
index 72f906deea..27cf584ea5 100644
--- a/meta/lib/oeqa/selftest/cases/runtime_test.py
+++ b/meta/lib/oeqa/selftest/cases/runtime_test.py
@@ -138,7 +138,7 @@ class TestImage(OESelftestTestCase):
 self.skipTest('core-image-full-cmdline not buildable for 
poky-tiny')
 
 features = 'INHERIT += "testimage"\n'
-features += 'TEST_SUITES = "ping ssh dnf-runtime"\n'
+features += 'TEST_SUITES = "ping ssh dnf_runtime 
dnf.DnfBasicTest.test_dnf_help"\n'
 # We don't yet know what the server ip and port will be - they will be 
patched
 # in at the start of the on-image test
 features += 'PACKAGE_FEED_URIS = "http://bogus_ip:bogus_port"\n'
-- 
2.12.3

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH v4 5/8] package_manager.py: enable dnf's repo_gpgcheck if feed signing is enabled

2017-08-15 Thread Markus Lehtonen
If package feed signing is enabled enable repo gpg signature check for
rpm repositories added via PACKAGE_FEED_URIS. This has the implication
that all repositories added via this mechanism must be signed with the
same key.

[YOCTO #11209]

Signed-off-by: Markus Lehtonen 
---
 meta/lib/oe/package_manager.py | 10 --
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py
index 942f2dd903..d43d729203 100644
--- a/meta/lib/oe/package_manager.py
+++ b/meta/lib/oe/package_manager.py
@@ -559,6 +559,12 @@ class RpmPM(PackageManager):
 if feed_uris == "":
 return
 
+if self.d.getVar('PACKAGE_FEED_SIGN') == '1':
+gpg_opts = 'repo_gpgcheck=1\n'
+gpg_opts += 
'gpgkey=file://%s/pki/packagefeed-gpg/PACKAGEFEED-GPG-KEY-%s\n' % 
(self.d.getVar('sysconfdir'), self.d.getVar('DISTRO_VERSION'))
+else:
+gpg_opts = ''
+
 bb.utils.mkdirhier(oe.path.join(self.target_rootfs, "etc", 
"yum.repos.d"))
 remote_uris = self.construct_uris(feed_uris.split(), 
feed_base_paths.split())
 for uri in remote_uris:
@@ -569,12 +575,12 @@ class RpmPM(PackageManager):
 repo_id   = "oe-remote-repo"  + 
"-".join(urlparse(repo_uri).path.split("/"))
 repo_name = "OE Remote Repo:" + " 
".join(urlparse(repo_uri).path.split("/"))
 open(oe.path.join(self.target_rootfs, "etc", 
"yum.repos.d", repo_base + ".repo"), 'a').write(
- "[%s]\nname=%s\nbaseurl=%s\n\n" % (repo_id, 
repo_name, repo_uri))
+ "[%s]\nname=%s\nbaseurl=%s\n%s\n" % (repo_id, 
repo_name, repo_uri, gpg_opts))
 else:
 repo_name = "OE Remote Repo:" + " 
".join(urlparse(uri).path.split("/"))
 repo_uri = uri
 open(oe.path.join(self.target_rootfs, "etc", "yum.repos.d", 
repo_base + ".repo"), 'w').write(
- "[%s]\nname=%s\nbaseurl=%s\n" % (repo_base, 
repo_name, repo_uri))
+ "[%s]\nname=%s\nbaseurl=%s\n%s" % (repo_base, 
repo_name, repo_uri, gpg_opts))
 
 def _prepare_pkg_transaction(self):
 os.environ['D'] = self.target_rootfs
-- 
2.12.3

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH v4 3/8] signing-keys: delete unused tasks

2017-08-15 Thread Markus Lehtonen
In particular, do_unpack needs to be deleted as it was causing missing
subpackages. Do_unpack cleans the builddir and if it was run after
do_get_public_keys it cleaned up all keys causing no packages to be
built.

Signed-off-by: Markus Lehtonen 
---
 meta/recipes-core/meta/signing-keys.bb | 8 
 1 file changed, 8 insertions(+)

diff --git a/meta/recipes-core/meta/signing-keys.bb 
b/meta/recipes-core/meta/signing-keys.bb
index aaa01d0c34..ebfb08c433 100644
--- a/meta/recipes-core/meta/signing-keys.bb
+++ b/meta/recipes-core/meta/signing-keys.bb
@@ -71,3 +71,11 @@ do_deploy[cleandirs] = "${DEPLOYDIR}"
 # clear stamp-extra-info since MACHINE is normally put there by deploy.bbclass
 do_deploy[stamp-extra-info] = ""
 addtask deploy after do_get_public_keys
+
+# Delete unnecessary tasks. In particular, "do_unpack" _must_ be deleted 
because
+# it cleans ${B} and will wipe any keys exported by do_get_public_keys.
+deltask do_fetch
+deltask do_unpack
+deltask do_patch
+deltask do_configure
+deltask do_compile
-- 
2.12.3

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH v4 4/8] sign_package_feed.bbclass: install signing key into rootfs

2017-08-15 Thread Markus Lehtonen
If package-management is enabled.

[YOCTO #11209]

Signed-off-by: Markus Lehtonen 
---
 meta/classes/sign_package_feed.bbclass | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/meta/classes/sign_package_feed.bbclass 
b/meta/classes/sign_package_feed.bbclass
index 71df03bab3..f03c4802d0 100644
--- a/meta/classes/sign_package_feed.bbclass
+++ b/meta/classes/sign_package_feed.bbclass
@@ -28,6 +28,9 @@ PACKAGE_FEED_SIGN = '1'
 PACKAGE_FEED_GPG_BACKEND ?= 'local'
 PACKAGE_FEED_GPG_SIGNATURE_TYPE ?= 'ASC'
 
+# Make feed signing key to be present in rootfs
+FEATURE_PACKAGES_package-management_append = " signing-keys-packagefeed"
+
 python () {
 # Check sanity of configuration
 for var in ('PACKAGE_FEED_GPG_NAME', 'PACKAGE_FEED_GPG_PASSPHRASE_FILE'):
-- 
2.12.3

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH v4 1/8] lib/oe/package_manager: re-implement rpm feed signing

2017-08-15 Thread Markus Lehtonen
[YOCTO #11209]

Signed-off-by: Markus Lehtonen 
---
 meta/lib/oe/package_manager.py | 14 +-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py
index 518cf8dbe3..942f2dd903 100644
--- a/meta/lib/oe/package_manager.py
+++ b/meta/lib/oe/package_manager.py
@@ -104,13 +104,25 @@ class Indexer(object, metaclass=ABCMeta):
 class RpmIndexer(Indexer):
 def write_index(self):
 if self.d.getVar('PACKAGE_FEED_SIGN') == '1':
-raise NotImplementedError('Package feed signing not yet implementd 
for rpm')
+signer = get_signer(self.d, 
self.d.getVar('PACKAGE_FEED_GPG_BACKEND'))
+else:
+signer = None
 
 createrepo_c = bb.utils.which(os.environ['PATH'], "createrepo_c")
 result = create_index("%s --update -q %s" % (createrepo_c, 
self.deploy_dir))
 if result:
 bb.fatal(result)
 
+# Sign repomd
+if signer:
+sig_type = self.d.getVar('PACKAGE_FEED_GPG_SIGNATURE_TYPE')
+is_ascii_sig = (sig_type.upper() != "BIN")
+signer.detach_sign(os.path.join(self.deploy_dir, 'repodata', 
'repomd.xml'),
+   self.d.getVar('PACKAGE_FEED_GPG_NAME'),
+   
self.d.getVar('PACKAGE_FEED_GPG_PASSPHRASE_FILE'),
+   armor=is_ascii_sig)
+
+
 class OpkgIndexer(Indexer):
 def write_index(self):
 arch_vars = ["ALL_MULTILIB_PACKAGE_ARCHS",
-- 
2.12.3

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH v4 2/8] dnf: rrecommend gnupg

2017-08-15 Thread Markus Lehtonen
This makes it possible to enable 'repo_gpgcheck' in dnf.conf. That is, do
GPG signature check on repository metadata. Without gnupg dnf fails with
"error: Invalid crypto engine."

[YOCTO #11209]

Signed-off-by: Markus Lehtonen 
---
 meta/recipes-devtools/dnf/dnf_2.6.3.bb | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/meta/recipes-devtools/dnf/dnf_2.6.3.bb 
b/meta/recipes-devtools/dnf/dnf_2.6.3.bb
index ade55ea0a8..51072901e4 100644
--- a/meta/recipes-devtools/dnf/dnf_2.6.3.bb
+++ b/meta/recipes-devtools/dnf/dnf_2.6.3.bb
@@ -26,6 +26,8 @@ EXTRA_OECMAKE = " -DWITH_MAN=0 
-DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -
 
 BBCLASSEXTEND = "native nativesdk"
 RDEPENDS_${PN}_class-target += "python3-core python3-codecs python3-netclient 
python3-email python3-threading python3-distutils librepo python3-shell 
python3-subprocess libcomps libdnf python3-sqlite3 python3-compression 
python3-rpm python3-iniparse python3-json python3-importlib python3-curses 
python3-argparse python3-misc python3-gpg"
+# Recommend gnupg so that GPG signature check on repository metadata is 
possible
+RRECOMMENDS_${PN}_class-target += "gnupg"
 
 # Create a symlink called 'dnf' as 'make install' does not do it, but
 # .spec file in dnf source tree does (and then Fedora and dnf documentation
-- 
2.12.3

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH v4 0/8] Support signed RPM package feeds

2017-08-15 Thread Markus Lehtonen
Fourth iteration of the patchset enabling signed RPM package feeds.
Changes since v3:
- new patch for the 'signing-keys' recipe, fixing a likely failure in the dnf
  package feed selftest
- one comment line added in "dnf: expand dnf selftest to test signed package 
feeds"
  patch

The following changes since commit 5a25ed1071f0d9b7d95edcc2b5b4545f960d5f95:

  image-prelink: Disable for musl images (2017-08-11 08:14:19 +0100)

are available in the git repository at:

  git://git.openembedded.org/openembedded-core-contrib marquiz/fixes-11209
  
http://cgit.openembedded.org/openembedded-core-contrib/log/?h=marquiz/fixes-11209

Markus Lehtonen (8):
  lib/oe/package_manager: re-implement rpm feed signing
  dnf: rrecommend gnupg
  signing-keys: delete unused tasks
  sign_package_feed.bbclass: install signing key into rootfs
  package_manager.py: enable dnf's repo_gpgcheck if feed signing is
enabled
  oeqa: fix dnf tests
  oeqa: fix temp file handling in dnf package feed test
  dnf: expand dnf selftest to test signed package feeds

 meta-selftest/files/signing/key.passphrase |  1 +
 .../cases/{dnf-runtime.py => dnf_runtime.py}   | 13 
 meta/classes/sign_package_feed.bbclass |  3 +++
 meta/lib/oe/package_manager.py | 24 +++---
 meta/lib/oeqa/selftest/cases/runtime_test.py   | 14 +++--
 meta/recipes-core/meta/signing-keys.bb |  8 
 meta/recipes-devtools/dnf/dnf_2.6.3.bb |  2 ++
 7 files changed, 56 insertions(+), 9 deletions(-)
 create mode 100644 meta-selftest/files/signing/key.passphrase
 rename meta-selftest/lib/oeqa/runtime/cases/{dnf-runtime.py => dnf_runtime.py} 
(77%)

-- 
2.12.3

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] two recipes, one replaces files of another

2017-08-15 Thread Alexander Kanavin

On 08/15/2017 01:37 PM, Dvorkin Dmitry wrote:

How to create dependencies correctly?
I try to add
RPROVIDES_${PN} += "recipe-brd" in both recipe-brdRevA/B  and use 
PREFERRED_PROVIDER_recipe-brd = "..."

into imgA/B.bb without success.


PREFERRED_PROVIDER is the right way to go. That's how a kernel variant 
is selected from multiple choices (regular, tiny, real time) for example 
- have a look at how it's done.


Alex
--
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] two recipes, one replaces files of another

2017-08-15 Thread Dvorkin Dmitry

Good time of day, people!

I have two recipes for two cases:
recipe-brdRevA.bb
recipe-brdRevB.bb

both of them has one file:
/etc/myprog/c.conf

and two image definition files:
imgA.bb
imgB.bb

, that requires recipe-brdRevA.bb or recipe-brdRevB.bb indirectly by 
IMAGE_INSTALL += "myprog"


myprog.bb requires files from recipe-brdRevA or recipe-brdRevB, 
depending on image.


It's not a correct idea to add IMAGE_INSTALL += "recipe-brdRev" into 
img.bb explicitely.


How to create dependencies correctly?
I try to add
RPROVIDES_${PN} += "recipe-brd" in both recipe-brdRevA/B  and use 
PREFERRED_PROVIDER_recipe-brd = "..."

into imgA/B.bb without success.

Please, advice me.


<>-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 3/4] glib-2.0: Upgrade 2.52.2 -> 2.52.3

2017-08-15 Thread Jussi Kukkonen
Small release with bug fixes and some flatpak portal related
improvements.

Signed-off-by: Jussi Kukkonen 
---
 meta/recipes-core/glib-2.0/{glib-2.0_2.52.2.bb => glib-2.0_2.52.3.bb} | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-core/glib-2.0/{glib-2.0_2.52.2.bb => glib-2.0_2.52.3.bb} 
(85%)

diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.52.2.bb 
b/meta/recipes-core/glib-2.0/glib-2.0_2.52.3.bb
similarity index 85%
rename from meta/recipes-core/glib-2.0/glib-2.0_2.52.2.bb
rename to meta/recipes-core/glib-2.0/glib-2.0_2.52.3.bb
index 6f01aef..b1fe600 100644
--- a/meta/recipes-core/glib-2.0/glib-2.0_2.52.2.bb
+++ b/meta/recipes-core/glib-2.0/glib-2.0_2.52.3.bb
@@ -19,5 +19,5 @@ SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz 
\
 
 SRC_URI_append_class-native = " file://relocate-modules.patch"
 
-SRC_URI[md5sum] = "ec099bce26ce6a85104ed1d89bb45856"
-SRC_URI[sha256sum] = 
"f00e5d9e2a2948b1da25fcba734a6b7a40f556de8bc9f528a53f6569969ac5d0"
+SRC_URI[md5sum] = "89265d0289a436e99cad54491eb21ef4"
+SRC_URI[sha256sum] = 
"25ee7635a7c0fcd4ec91cbc3ae07c7f8f5ce621d8183511f414ded09e7e4e128"
-- 
2.1.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 0/4] Various point upgrades

2017-08-15 Thread Jussi Kukkonen
Small point upgrades but several of them require some recipe changes.

Thanks,
  Jussi


The following changes since commit 034bff2ca431b49b7ca9b1e7b7c214ef94b0eb34:

  bitbake: cooker: Ignore common bitbake files for the parse cache invalidation 
(2017-08-13 09:28:14 +0100)

are available in the git repository at:

  git://git.yoctoproject.org/poky-contrib jku/updates
  http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=jku/updates

Jussi Kukkonen (4):
  cairo: Upgrade 1.14.8 -> 1.14.10
  fontconfig: Upgrade 2.12.1 -> 2.12.4
  glib-2.0: Upgrade 2.52.2 -> 2.52.3
  gdk-pixbuf: Upgrade 2.36.6 -> 2.36.8

 .../{glib-2.0_2.52.2.bb => glib-2.0_2.52.3.bb} |  4 +-
 .../{gdk-pixbuf_2.36.6.bb => gdk-pixbuf_2.36.8.bb} | 11 ++--
 .../cairo/{cairo_1.14.8.bb => cairo_1.14.10.bb}|  4 +-
 ...icts-with-integer-width-macros-from-TS-18.patch | 72 --
 .../{fontconfig_2.12.1.bb => fontconfig_2.12.4.bb} | 14 +++--
 5 files changed, 19 insertions(+), 86 deletions(-)
 rename meta/recipes-core/glib-2.0/{glib-2.0_2.52.2.bb => glib-2.0_2.52.3.bb} 
(85%)
 rename meta/recipes-gnome/gdk-pixbuf/{gdk-pixbuf_2.36.6.bb => 
gdk-pixbuf_2.36.8.bb} (91%)
 rename meta/recipes-graphics/cairo/{cairo_1.14.8.bb => cairo_1.14.10.bb} (92%)
 delete mode 100644 
meta/recipes-graphics/fontconfig/fontconfig/0001-Avoid-conflicts-with-integer-width-macros-from-TS-18.patch
 rename meta/recipes-graphics/fontconfig/{fontconfig_2.12.1.bb => 
fontconfig_2.12.4.bb} (80%)

-- 
2.1.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 4/4] gdk-pixbuf: Upgrade 2.36.6 -> 2.36.8

2017-08-15 Thread Jussi Kukkonen
Smallish releases with bug fixes and minor improvements.

shared-mime-info is now always used for image type sniffing.
The dependency does not seem to currently be a build-time dependency
but configure.ac does check for it: I took the easy route and just
added shared-mime-info to DEPENDS as well.

Signed-off-by: Jussi Kukkonen 
---
 .../gdk-pixbuf/{gdk-pixbuf_2.36.6.bb => gdk-pixbuf_2.36.8.bb} | 11 ++-
 1 file changed, 6 insertions(+), 5 deletions(-)
 rename meta/recipes-gnome/gdk-pixbuf/{gdk-pixbuf_2.36.6.bb => 
gdk-pixbuf_2.36.8.bb} (91%)

diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.36.6.bb 
b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.36.8.bb
similarity index 91%
rename from meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.36.6.bb
rename to meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.36.8.bb
index fe3e636..3d16ee0 100644
--- a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.36.6.bb
+++ b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.36.8.bb
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = 
"file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
 
 SECTION = "libs"
 
-DEPENDS = "glib-2.0 gdk-pixbuf-native"
+DEPENDS = "glib-2.0 gdk-pixbuf-native shared-mime-info"
 
 MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
 
@@ -21,8 +21,8 @@ SRC_URI = 
"${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \
file://0001-queryloaders-Make-output-more-reproducible.patch \
"
 
-SRC_URI[md5sum] = "5dd53760750670d27c194ff6ace7eb51"
-SRC_URI[sha256sum] = 
"455eb90c09ed1b71f95f3ebfe1c904c206727e0eeb34fc94e5aaf944663a820c"
+SRC_URI[md5sum] = "e0aaa0061eb12667b32b27472230b962"
+SRC_URI[sha256sum] = 
"5d68e5283cdc0bf9bda99c3e6a1d52ad07a03364fa186b6c26cfc86fcd396a19"
 
 inherit autotools pkgconfig gettext pixbufcache ptest-gnome 
upstream-version-is-even gobject-introspection gtk-doc lib_package
 
@@ -39,12 +39,13 @@ PACKAGECONFIG[jpeg] = 
"--with-libjpeg,--without-libjpeg,jpeg"
 PACKAGECONFIG[tiff] = "--with-libtiff,--without-libtiff,tiff"
 PACKAGECONFIG[jpeg2000] = "--with-libjasper,--without-libjasper,jasper"
 
-# Use GIO to sniff image format instead of trying all loaders
-PACKAGECONFIG[gio-sniff] = 
"--enable-gio-sniffing,--disable-gio-sniffing,,shared-mime-info"
 PACKAGECONFIG[x11] = "--with-x11,--without-x11,virtual/libx11"
 
 PACKAGES =+ "${PN}-xlib"
 
+# For GIO image type sniffing
+RDEPENDS_${PN} = "shared-mime-info"
+
 FILES_${PN}-xlib = "${libdir}/*pixbuf_xlib*${SOLIBS}"
 ALLOW_EMPTY_${PN}-xlib = "1"
 
-- 
2.1.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 1/4] cairo: Upgrade 1.14.8 -> 1.14.10

2017-08-15 Thread Jussi Kukkonen
Small bug fix update.

Signed-off-by: Jussi Kukkonen 
---
 meta/recipes-graphics/cairo/{cairo_1.14.8.bb => cairo_1.14.10.bb} | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-graphics/cairo/{cairo_1.14.8.bb => cairo_1.14.10.bb} (92%)

diff --git a/meta/recipes-graphics/cairo/cairo_1.14.8.bb 
b/meta/recipes-graphics/cairo/cairo_1.14.10.bb
similarity index 92%
rename from meta/recipes-graphics/cairo/cairo_1.14.8.bb
rename to meta/recipes-graphics/cairo/cairo_1.14.10.bb
index af6be56..ba38c34 100644
--- a/meta/recipes-graphics/cairo/cairo_1.14.8.bb
+++ b/meta/recipes-graphics/cairo/cairo_1.14.10.bb
@@ -6,8 +6,8 @@ SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.xz 
\
file://cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff \ 
   "
 
-SRC_URI[md5sum] = "4ef0db2eacb271c74f8a3fd87822aa98"
-SRC_URI[sha256sum] = 
"d1f2d98ae9a4111564f6de4e013d639cf77155baf2556582295a0f00a9bc5e20"
+SRC_URI[md5sum] = "146f5f4d0b4439fc3792fd3452b7b12a"
+SRC_URI[sha256sum] = 
"7e87878658f2c9951a14fc64114d4958c0e65ac47530b8ac3078b2ce41b66a09"
 
 PACKAGES =+ "cairo-gobject cairo-script-interpreter cairo-perf-utils"
 
-- 
2.1.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 2/4] fontconfig: Upgrade 2.12.1 -> 2.12.4

2017-08-15 Thread Jussi Kukkonen
Bug fix upgrades.
* Remove one upstreamed patch.
* Update a license location.
* Add gperf-native as dependency as a hash function header is no
  longer shipped and must be generated.
* Add workaround for a related build issue (reported upstream)

Signed-off-by: Jussi Kukkonen 
---
 ...icts-with-integer-width-macros-from-TS-18.patch | 72 --
 .../{fontconfig_2.12.1.bb => fontconfig_2.12.4.bb} | 14 +++--
 2 files changed, 9 insertions(+), 77 deletions(-)
 delete mode 100644 
meta/recipes-graphics/fontconfig/fontconfig/0001-Avoid-conflicts-with-integer-width-macros-from-TS-18.patch
 rename meta/recipes-graphics/fontconfig/{fontconfig_2.12.1.bb => 
fontconfig_2.12.4.bb} (80%)

diff --git 
a/meta/recipes-graphics/fontconfig/fontconfig/0001-Avoid-conflicts-with-integer-width-macros-from-TS-18.patch
 
b/meta/recipes-graphics/fontconfig/fontconfig/0001-Avoid-conflicts-with-integer-width-macros-from-TS-18.patch
deleted file mode 100644
index cad7170..000
--- 
a/meta/recipes-graphics/fontconfig/fontconfig/0001-Avoid-conflicts-with-integer-width-macros-from-TS-18.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 20cddc824c6501c2082cac41b162c34cd5fcc530 Mon Sep 17 00:00:00 2001
-From: Khem Raj 
-Date: Sun, 11 Dec 2016 14:32:00 -0800
-Subject: [PATCH] Avoid conflicts with integer width macros from TS
- 18661-1:2014
-
-glibc 2.25+ has now defined these macros in 
-https://sourceware.org/git/?p=glibc.git;a=commit;h=5b17fd0da62bf923cb61d1bb7b08cf2e1f1f9c1a
-
-Signed-off-by: Khem Raj 

-Upstream-Status: Submitted
-
- fontconfig/fontconfig.h | 2 +-
- src/fcobjs.h| 2 +-
- src/fcobjshash.gperf| 2 +-
- src/fcobjshash.h| 2 +-
- 4 files changed, 4 insertions(+), 4 deletions(-)
-
-Index: fontconfig-2.12.1/fontconfig/fontconfig.h
-===
 fontconfig-2.12.1.orig/fontconfig/fontconfig.h
-+++ fontconfig-2.12.1/fontconfig/fontconfig.h
-@@ -128,7 +128,8 @@ typedef intFcBool;
- #define FC_USER_CACHE_FILE".fonts.cache-" FC_CACHE_VERSION
- 
- /* Adjust outline rasterizer */
--#define FC_CHAR_WIDTH "charwidth" /* Int */
-+#define FC_CHARWIDTH  "charwidth" /* Int */
-+#define FC_CHAR_WIDTH FC_CHARWIDTH
- #define FC_CHAR_HEIGHT"charheight"/* Int */
- #define FC_MATRIX "matrix"/* FcMatrix */
- 
-Index: fontconfig-2.12.1/src/fcobjs.h
-===
 fontconfig-2.12.1.orig/src/fcobjs.h
-+++ fontconfig-2.12.1/src/fcobjs.h
-@@ -51,7 +51,7 @@ FC_OBJECT (DPI,  FcTypeDouble,   NULL)
- FC_OBJECT (RGBA,  FcTypeInteger,  NULL)
- FC_OBJECT (SCALE, FcTypeDouble,   NULL)
- FC_OBJECT (MINSPACE,  FcTypeBool, NULL)
--FC_OBJECT (CHAR_WIDTH,FcTypeInteger,  NULL)
-+FC_OBJECT (CHARWIDTH, FcTypeInteger,  NULL)
- FC_OBJECT (CHAR_HEIGHT,   FcTypeInteger,  NULL)
- FC_OBJECT (MATRIX,FcTypeMatrix,   NULL)
- FC_OBJECT (CHARSET,   FcTypeCharSet,  FcCompareCharSet)
-Index: fontconfig-2.12.1/src/fcobjshash.gperf
-===
 fontconfig-2.12.1.orig/src/fcobjshash.gperf
-+++ fontconfig-2.12.1/src/fcobjshash.gperf
-@@ -44,7 +44,7 @@ int id;
- "rgba",FC_RGBA_OBJECT
- "scale",FC_SCALE_OBJECT
- "minspace",FC_MINSPACE_OBJECT
--"charwidth",FC_CHAR_WIDTH_OBJECT
-+"charwidth",FC_CHARWIDTH_OBJECT
- "charheight",FC_CHAR_HEIGHT_OBJECT
- "matrix",FC_MATRIX_OBJECT
- "charset",FC_CHARSET_OBJECT
-Index: fontconfig-2.12.1/src/fcobjshash.h
-===
 fontconfig-2.12.1.orig/src/fcobjshash.h
-+++ fontconfig-2.12.1/src/fcobjshash.h
-@@ -284,7 +284,7 @@ FcObjectTypeLookup (register const char
-   {(int)(long)&((struct FcObjectTypeNamePool_t 
*)0)->FcObjectTypeNamePool_str43,FC_CHARSET_OBJECT},
-   {-1},
- #line 47 "fcobjshash.gperf"
--  {(int)(long)&((struct FcObjectTypeNamePool_t 
*)0)->FcObjectTypeNamePool_str45,FC_CHAR_WIDTH_OBJECT},
-+  {(int)(long)&((struct FcObjectTypeNamePool_t 
*)0)->FcObjectTypeNamePool_str45,FC_CHARWIDTH_OBJECT},
- #line 48 "fcobjshash.gperf"
-   {(int)(long)&((struct FcObjectTypeNamePool_t 
*)0)->FcObjectTypeNamePool_str46,FC_CHAR_HEIGHT_OBJECT},
- #line 55 "fcobjshash.gperf"
diff --git a/meta/recipes-graphics/fontconfig/fontconfig_2.12.1.bb 
b/meta/recipes-graphics/fontconfig/fontconfig_2.12.4.bb
similarity index 80%
rename from meta/recipes-graphics/fontconfig/fontconfig_2.12.1.bb
rename to meta/recipes-graphics/fontconfig/fontconfig_2.12.4.bb
index 95b066c..a058b35 100644
--- a/meta/recipes-graphics/fontconfig/fontconfig_2.12.1.bb
+++ b/meta/recipes-graphics/fontconfig/fontconfig_2.12.4.bb
@@ -14,18 +14,22 @@ BUGTRACKER = 
"https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig;
 LICENSE = "MIT-style & MIT & PD"
 

[OE-core] [PATCH] libtasn1: CVE-2017-10790

2017-08-15 Thread wenzong.fan
From: Yue Tao 

The _asn1_check_identifier function in GNU Libtasn1 through 4.12 causes
a NULL pointer dereference and crash when reading crafted input that
triggers assignment of a NULL value within an asn1_node structure. It
may lead to a remote denial of service attack.

References:
https://nvd.nist.gov/vuln/detail/CVE-2017-10790
http://git.savannah.gnu.org/gitweb/?p=libtasn1.git;a=commit;
h=d8d805e1f2e6799bb2dff4871a8598dc83088a39

Signed-off-by: Yue Tao 
Signed-off-by: Wenzong Fan 
---
 .../gnutls/libtasn1/CVE-2017-10790.patch   | 63 ++
 meta/recipes-support/gnutls/libtasn1_4.12.bb   |  1 +
 2 files changed, 64 insertions(+)
 create mode 100644 meta/recipes-support/gnutls/libtasn1/CVE-2017-10790.patch

diff --git a/meta/recipes-support/gnutls/libtasn1/CVE-2017-10790.patch 
b/meta/recipes-support/gnutls/libtasn1/CVE-2017-10790.patch
new file mode 100644
index 00..be843808a2
--- /dev/null
+++ b/meta/recipes-support/gnutls/libtasn1/CVE-2017-10790.patch
@@ -0,0 +1,63 @@
+From d8d805e1f2e6799bb2dff4871a8598dc83088a39 Mon Sep 17 00:00:00 2001
+From: Nikos Mavrogiannopoulos 
+Date: Thu, 22 Jun 2017 16:31:37 +0200
+Subject: [PATCH] _asn1_check_identifier: safer access to values read
+
+Signed-off-by: Nikos Mavrogiannopoulos 
+
+http://git.savannah.gnu.org/gitweb/?p=libtasn1.git;a=commit;h=d8d805e1f2e6799bb2dff4871a8598dc83088a39
+Upstream-Status: Backport
+
+CVE: CVE-2017-10790
+
+Signed-off-by: Yue Tao 
+Signed-off-by: Wenzong Fan 
+---
+ lib/parser_aux.c |   17 -
+ 1 file changed, 12 insertions(+), 5 deletions(-)
+
+diff --git a/lib/parser_aux.c b/lib/parser_aux.c
+index 976ab38..786ea64 100644
+--- a/lib/parser_aux.c
 b/lib/parser_aux.c
+@@ -955,7 +955,7 @@ _asn1_check_identifier (asn1_node node)
+ if (p2 == NULL)
+   {
+ if (p->value)
+-  _asn1_strcpy (_asn1_identifierMissing, p->value);
++  _asn1_str_cpy (_asn1_identifierMissing, 
sizeof(_asn1_identifierMissing), (char*)p->value);
+ else
+   _asn1_strcpy (_asn1_identifierMissing, "(null)");
+ return ASN1_IDENTIFIER_NOT_FOUND;
+@@ -968,9 +968,15 @@ _asn1_check_identifier (asn1_node node)
+ if (p2 && (type_field (p2->type) == ASN1_ETYPE_DEFAULT))
+   {
+ _asn1_str_cpy (name2, sizeof (name2), node->name);
+-_asn1_str_cat (name2, sizeof (name2), ".");
+-_asn1_str_cat (name2, sizeof (name2), (char *) p2->value);
+-_asn1_strcpy (_asn1_identifierMissing, p2->value);
++if (p2->value)
++  {
++_asn1_str_cat (name2, sizeof (name2), ".");
++_asn1_str_cat (name2, sizeof (name2), (char *) p2->value);
++_asn1_str_cpy (_asn1_identifierMissing, 
sizeof(_asn1_identifierMissing), (char*)p2->value);
++  }
++else
++  _asn1_strcpy (_asn1_identifierMissing, "(null)");
++
+ p2 = asn1_find_node (node, name2);
+ if (!p2 || (type_field (p2->type) != ASN1_ETYPE_OBJECT_ID) ||
+ !(p2->type & CONST_ASSIGN))
+@@ -990,7 +996,8 @@ _asn1_check_identifier (asn1_node node)
+ _asn1_str_cpy (name2, sizeof (name2), node->name);
+ _asn1_str_cat (name2, sizeof (name2), ".");
+ _asn1_str_cat (name2, sizeof (name2), (char *) p2->value);
+-_asn1_strcpy (_asn1_identifierMissing, p2->value);
++_asn1_str_cpy (_asn1_identifierMissing, 
sizeof(_asn1_identifierMissing), (char*)p2->value);
++
+ p2 = asn1_find_node (node, name2);
+ if (!p2 || (type_field (p2->type) != ASN1_ETYPE_OBJECT_ID)
+ || !(p2->type & CONST_ASSIGN))
+-- 
+1.7.9.5
+
diff --git a/meta/recipes-support/gnutls/libtasn1_4.12.bb 
b/meta/recipes-support/gnutls/libtasn1_4.12.bb
index cec1a9b156..7a7571ad3b 100644
--- a/meta/recipes-support/gnutls/libtasn1_4.12.bb
+++ b/meta/recipes-support/gnutls/libtasn1_4.12.bb
@@ -11,6 +11,7 @@ LIC_FILES_CHKSUM = 
"file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
 SRC_URI = "${GNU_MIRROR}/libtasn1/libtasn1-${PV}.tar.gz \
file://dont-depend-on-help2man.patch \

file://0001-stdint.m4-reintroduce-GNULIB_OVERRIDES_WINT_T-check.patch \
+   file://CVE-2017-10790.patch \
"
 
 DEPENDS = "bison-native"
-- 
2.13.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH] insane: add qa check for lowercase recipe name

2017-08-15 Thread Yeoh Ee Peng
Since we disabled uppercase characters in overrides a few releases ago,
uppercase characters in recipe names (and for that matter, distro and
machine names) cannot be supported due to their reliance upon overrides
including the name.

QA check will produce an warning message when it verify that recipe
name is not lowercase.

[YOCTO# 11592]

Signed-off-by: Yeoh Ee Peng 
---
 meta/classes/insane.bbclass | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index b7177c9..8e062d1 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -27,7 +27,7 @@ WARN_QA ?= "ldflags useless-rpaths rpaths staticdev libdir 
xorg-driver-abi \
 installed-vs-shipped compile-host-path install-host-path \
 pn-overrides infodir build-deps \
 unknown-configure-option symlink-to-sysroot multilib \
-invalid-packageconfig host-user-contaminated \
+invalid-packageconfig host-user-contaminated pn_lowercase \
 "
 ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch pkgconfig la \
 perms dep-cmp pkgvarcheck perm-config perm-line perm-link \
@@ -1274,7 +1274,9 @@ python () {
 if pn in overrides:
 msg = 'Recipe %s has PN of "%s" which is in OVERRIDES, this can result 
in unexpected behaviour.' % (d.getVar("FILE"), pn)
 package_qa_handle_error("pn-overrides", msg, d)
-
+if pn != pn.lower():
+package_qa_handle_error("pn_lowercase", 'PN: %s is not lower case, 
this can result in unexpected behavior.' % pn, d)
+
 issues = []
 if (d.getVar('PACKAGES') or "").split():
 for dep in (d.getVar('QADEPENDS') or "").split():
-- 
2.7.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH] nspr: 4.14 -> 4.16

2017-08-15 Thread Huang Qiyu
Upgrade nspr from 4.14 to 4.16

Signed-off-by: Huang Qiyu 
---
 meta/recipes-support/nspr/{nspr_4.14.bb => nspr_4.16.bb} | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-support/nspr/{nspr_4.14.bb => nspr_4.16.bb} (96%)

diff --git a/meta/recipes-support/nspr/nspr_4.14.bb 
b/meta/recipes-support/nspr/nspr_4.16.bb
similarity index 96%
rename from meta/recipes-support/nspr/nspr_4.14.bb
rename to meta/recipes-support/nspr/nspr_4.16.bb
index b0892a1..a634afb 100644
--- a/meta/recipes-support/nspr/nspr_4.14.bb
+++ b/meta/recipes-support/nspr/nspr_4.16.bb
@@ -22,8 +22,8 @@ CACHED_CONFIGUREVARS_append_libc-musl = " CFLAGS='${CFLAGS} 
-D_PR_POLL_AVAILABLE
 UPSTREAM_CHECK_URI = "http://ftp.mozilla.org/pub/nspr/releases/;
 UPSTREAM_CHECK_REGEX = "v(?P\d+(\.\d+)+)/"
 
-SRC_URI[md5sum] = "743f6b7888a614da9927400874054d8c"
-SRC_URI[sha256sum] = 
"64fc18826257403a9132240aa3c45193d577a84b08e96f7e7770a97c074d17d5"
+SRC_URI[md5sum] = "42fd8963a4b394f62d43ba604f03fab7"
+SRC_URI[sha256sum] = 
"9b3102d97665504aeee73363c11a21c062ad67a2522242368b7f019f96a53cd1"
 
 CVE_PRODUCT = "netscape_portable_runtime"
 
-- 
2.7.4



-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 2/3] recipetool: create: handle git URLs specifying only a tag

2017-08-15 Thread Chang Rebecca Swee Fun
From: Stanley Phoong 

If a git URL is passed to recipetool create with a tag=, recipetool
should handle it assuming that the tag is valid.

[YOCTO #11393]

Signed-off-by: Stanley Phoong 
---
 scripts/lib/recipetool/create.py | 23 ++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py
index d2e6fc0..52c10e5 100644
--- a/scripts/lib/recipetool/create.py
+++ b/scripts/lib/recipetool/create.py
@@ -423,6 +423,7 @@ def create_recipe(args):
 srcsubdir = ''
 srcrev = '${AUTOREV}'
 srcbranch = ''
+storeTagName = ''
 
 if os.path.isfile(source):
 source = 'file://%s' % os.path.abspath(source)
@@ -446,13 +447,21 @@ def create_recipe(args):
 scheme, network, path, user, passwd, params = 
bb.fetch2.decodeurl(fetchuri)
 srcbranch = params.get('branch')
 nobranch = params.get('nobranch')
+tag = params.get('tag')
 if not srcbranch and not nobranch and srcrev != '${AUTOREV}':
 # Append nobranch=1 in the following conditions:
 # 1. User did not set 'branch=' in srcuri, and
 # 2. User did not set 'nobranch=1' in srcuri, and
 # 3. Source revision is not '${AUTOREV}'
 params['nobranch'] = '1'
-fetchuri = bb.fetch2.encodeurl((scheme, network, path, user, 
passwd, params))
+if tag:
+# Keep a copy of tag and append nobranch=1 then remove tag from 
URL.
+# Bitbake fetcher unable to fetch when {AUTOREV} and tag is set at 
the same time.
+# We will re-introduce tag argument after bitbake fetcher process 
is complete.
+storeTagName = params['tag']
+params['nobranch'] = '1'
+del params['tag']
+fetchuri = bb.fetch2.encodeurl((scheme, network, path, user, passwd, 
params))
 
 tmpparent = tinfoil.config_data.getVar('BASE_WORKDIR')
 bb.utils.mkdirhier(tmpparent)
@@ -523,6 +532,18 @@ def create_recipe(args):
 params['branch'] = srcbranch
 srcuri = bb.fetch2.encodeurl((scheme, network, path, user, passwd, 
params))
 
+if storeTagName:
+# Re-introduced tag variable from storeTagName
+# Check srcrev using tag and check validity of the tag
+try:
+cmd = ('git rev-list -n 1 %s' % (storeTagName))
+check_tag, check_tag_err = bb.process.run('%s' % cmd, 
cwd=srctree)
+srcrev = check_tag.split()[0]
+except bb.process.ExecutionError as err:
+logger.error(str(err))
+logger.error("Possibly wrong tag name is provided")
+sys.exit(1)
+
 if os.path.exists(os.path.join(srctree, '.gitmodules')) and 
srcuri.startswith('git://'):
 srcuri = 'gitsm://' + srcuri[6:]
 logger.info('Fetching submodules...')
-- 
2.7.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 1/3] recipetool: create: being able to set branch when revision is provided

2017-08-15 Thread Chang Rebecca Swee Fun
This change is to improve the buildability of the recipe created by
recipetool and devtool.

When recipetool create is run on a git URL and a revision specified
that is not on master, and "branch=" isn't already in the URL, then
we should get the correct branch and append the branch to the URL.

If the revision was found on multiple branches and 'master' is not
in the list, we will display error to inform user to provide a
correct branch and exit.

[YOCTO #11389]

Signed-off-by: Chang Rebecca Swee Fun 
---
 scripts/lib/recipetool/create.py | 48 
 1 file changed, 48 insertions(+)

diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py
index c47ad78..d2e6fc0 100644
--- a/scripts/lib/recipetool/create.py
+++ b/scripts/lib/recipetool/create.py
@@ -422,6 +422,7 @@ def create_recipe(args):
 source = args.source
 srcsubdir = ''
 srcrev = '${AUTOREV}'
+srcbranch = ''
 
 if os.path.isfile(source):
 source = 'file://%s' % os.path.abspath(source)
@@ -440,6 +441,19 @@ def create_recipe(args):
 srcrev = res.group(1)
 srcuri = rev_re.sub('', srcuri)
 
+# Check whether users provides any branch info in fetchuri.
+# If true, we will skip all branch checking process to honor all 
user's input.
+scheme, network, path, user, passwd, params = 
bb.fetch2.decodeurl(fetchuri)
+srcbranch = params.get('branch')
+nobranch = params.get('nobranch')
+if not srcbranch and not nobranch and srcrev != '${AUTOREV}':
+# Append nobranch=1 in the following conditions:
+# 1. User did not set 'branch=' in srcuri, and
+# 2. User did not set 'nobranch=1' in srcuri, and
+# 3. Source revision is not '${AUTOREV}'
+params['nobranch'] = '1'
+fetchuri = bb.fetch2.encodeurl((scheme, network, path, user, 
passwd, params))
+
 tmpparent = tinfoil.config_data.getVar('BASE_WORKDIR')
 bb.utils.mkdirhier(tmpparent)
 tempsrc = tempfile.mkdtemp(prefix='recipetool-', dir=tmpparent)
@@ -475,6 +489,40 @@ def create_recipe(args):
 logger.error('URL %s resulted in an empty source tree' % fetchuri)
 sys.exit(1)
 
+# We need this checking mechanism to improve the recipe created by 
recipetool and devtool
+# is able to parse and build by bitbake.
+# If there is no input for branch name, then check for branch name 
with SRCREV provided.
+if not srcbranch and not nobranch and srcrev and (srcrev != 
'${AUTOREV}'):
+try:
+cmd = 'git branch -r --contains'
+check_branch, check_branch_err = bb.process.run('%s %s' % 
(cmd, srcrev), cwd=srctree)
+except bb.process.ExecutionError as err:
+logger.error(str(err))
+sys.exit(1)
+get_branch = [x.strip() for x in check_branch.splitlines()]
+# Remove HEAD reference point and drop remote prefix
+get_branch = [x.split('/', 1)[1] for x in get_branch if not 
x.startswith('origin/HEAD')]
+if 'master' in get_branch:
+# If it is master, we do not need to append 'branch=master' as 
this is default.
+# Even with the case where get_branch has multiple objects, if 
'master' is one
+# of them, we should default take from 'master'
+srcbranch = ''
+elif len(get_branch) == 1:
+# If 'master' isn't in get_branch and get_branch contains only 
ONE object, then store result into 'srcbranch'
+srcbranch = get_branch[0]
+else:
+# If get_branch contains more than one objects, then display 
error and exit.
+mbrch = '\n  ' + '\n  '.join(get_branch)
+logger.error('Revision %s was found on multiple branches: 
%s\nPlease provide the correct branch in the source URL with ;branch= 
(and ensure you use quotes around the URL to avoid the shell interpreting the 
";")' % (srcrev, mbrch))
+sys.exit(1)
+
+# Since we might have a value in srcbranch, we need to
+# recontruct the srcuri to include 'branch' in params.
+if srcbranch:
+scheme, network, path, user, passwd, params = 
bb.fetch2.decodeurl(srcuri)
+params['branch'] = srcbranch
+srcuri = bb.fetch2.encodeurl((scheme, network, path, user, passwd, 
params))
+
 if os.path.exists(os.path.join(srctree, '.gitmodules')) and 
srcuri.startswith('git://'):
 srcuri = 'gitsm://' + srcuri[6:]
 logger.info('Fetching submodules...')
-- 
2.7.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 0/3] recipetool: bug fixes and enhancement

2017-08-15 Thread Chang Rebecca Swee Fun
Hi,

This series of patches are bug fix implementation for 11389 and 11393.
These changes are crutial in terms of improving recipe creation in
recipetool. The recipe should at least buildable and able to find
SRCREV on specifc branch/ tag if it is not master.

This patch series is dependent on 2 patches on mailing list:-
recipetool: create: fix incorrect URL variable usage
http://lists.openembedded.org/pipermail/openembedded-core/2017-August/140789.html

and

recipetool: create: disable PREMIRRORS and MIRRORS by default
http://lists.openembedded.org/pipermail/openembedded-core/2017-August/140618.html

Thanks and best regards,
Rebecca

Chang Rebecca Swee Fun (1):
  recipetool: create: being able to set branch when revision is provided

Stanley Phoong (2):
  recipetool: create: handle git URLs specifying only a tag
  recipetool: create: replacing PV in SRCURI

 scripts/lib/recipetool/create.py | 73 +++-
 1 file changed, 72 insertions(+), 1 deletion(-)

-- 
2.7.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 3/3] recipetool: create: replacing PV in SRCURI

2017-08-15 Thread Chang Rebecca Swee Fun
From: Stanley Phoong 

During recipe creation, it seems that the automation for replacing
${PV} at the SRCURI for tag, (e.g mbed-tls-${PV}) is causing some
issue due to PV assuming it's a git source. A fix is implemented in
this patch to resolve this issue.

Signed-off-by: Stanley Phoong 
---
 scripts/lib/recipetool/create.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py
index 52c10e5..bab3d5d 100644
--- a/scripts/lib/recipetool/create.py
+++ b/scripts/lib/recipetool/create.py
@@ -424,6 +424,7 @@ def create_recipe(args):
 srcrev = '${AUTOREV}'
 srcbranch = ''
 storeTagName = ''
+pv_srcpv = False
 
 if os.path.isfile(source):
 source = 'file://%s' % os.path.abspath(source)
@@ -671,6 +672,7 @@ def create_recipe(args):
 lines_before.append('')
 lines_before.append('# Modify these as desired')
 lines_before.append('PV = "%s+git${SRCPV}"' % (realpv or '1.0'))
+pv_srcpv = True
 if not args.autorev and srcrev == '${AUTOREV}':
 if os.path.exists(os.path.join(srctree, '.git')):
 (stdout, _) = bb.process.run('git rev-parse HEAD', cwd=srctree)
@@ -797,7 +799,7 @@ def create_recipe(args):
 skipblank = True
 continue
 elif line.startswith('SRC_URI = '):
-if realpv:
+if realpv and not pv_srcpv:
 line = line.replace(realpv, '${PV}')
 elif line.startswith('PV = '):
 if realpv:
-- 
2.7.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH] iproute2: add tipc support

2017-08-15 Thread Yi Zhao
The tipcutils 2.2 in meta-oe removed the tipc-config tool and
recommended to use the new configuration tool named "tipc" in iproute2
package for configuring the tipc, which utilizes the new tipc netlink
kernel API.

Add tipc support and split it out into its own package.

Signed-off-by: Yi Zhao 
---
 meta/recipes-connectivity/iproute2/iproute2.inc | 8 ++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/meta/recipes-connectivity/iproute2/iproute2.inc 
b/meta/recipes-connectivity/iproute2/iproute2.inc
index ce64888a05..57309b7aac 100644
--- a/meta/recipes-connectivity/iproute2/iproute2.inc
+++ b/meta/recipes-connectivity/iproute2/iproute2.inc
@@ -13,7 +13,10 @@ DEPENDS = "flex-native bison-native iptables elfutils"
 
 inherit update-alternatives bash-completion pkgconfig
 
-EXTRA_OEMAKE = "CC='${CC}' KERNEL_INCLUDE=${STAGING_INCDIR} 
DOCDIR=${docdir}/iproute2 SUBDIRS='lib tc ip bridge misc genl' 
SBINDIR='${base_sbindir}' LIBDIR='${libdir}'"
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[tipc] = ",,libmnl,"
+
+EXTRA_OEMAKE = "CC='${CC}' KERNEL_INCLUDE=${STAGING_INCDIR} 
DOCDIR=${docdir}/iproute2 SUBDIRS='lib tc ip bridge misc genl 
${@bb.utils.contains('PACKAGECONFIG', 'tipc', 'tipc', '', d)}' 
SBINDIR='${base_sbindir}' LIBDIR='${libdir}'"
 
 do_configure_append () {
 sh configure ${STAGING_INCDIR}
@@ -32,7 +35,7 @@ do_install () {
 # The .so files in iproute2-tc are modules, not traditional libraries
 INSANE_SKIP_${PN}-tc = "dev-so"
 
-PACKAGES =+ "${PN}-tc ${PN}-lnstat ${PN}-ifstat ${PN}-genl ${PN}-rtacct 
${PN}-nstat ${PN}-ss"
+PACKAGES =+ "${PN}-tc ${PN}-lnstat ${PN}-ifstat ${PN}-genl ${PN}-rtacct 
${PN}-nstat ${PN}-ss ${@bb.utils.contains('PACKAGECONFIG', 'tipc', 
'${PN}-tipc', '', d)}"
 FILES_${PN}-tc = "${base_sbindir}/tc* \
   ${libdir}/tc/*.so"
 FILES_${PN}-lnstat = "${base_sbindir}/lnstat ${base_sbindir}/ctstat 
${base_sbindir}/rtstat"
@@ -41,6 +44,7 @@ FILES_${PN}-genl = "${base_sbindir}/genl"
 FILES_${PN}-rtacct = "${base_sbindir}/rtacct"
 FILES_${PN}-nstat = "${base_sbindir}/nstat"
 FILES_${PN}-ss = "${base_sbindir}/ss"
+FILES_${PN}-tipc = "${base_sbindir}/tipc"
 
 ALTERNATIVE_${PN} = "ip"
 ALTERNATIVE_TARGET[ip] = "${base_sbindir}/ip.${BPN}"
-- 
2.11.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core