[OE-core] [PATCH] sqlite3: upgrade to 3.2.0
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
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
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
On 08/03/2017 03:37 PM, Alejandro Mery wrote: From: Alejandro Merymerged 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
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
From: Ming LiuThe 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
From: Ming LiuHi, 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
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
From: Stanley PhoongDuring 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
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
From: Stanley PhoongIf 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
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
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
From: Kai KangThe 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
From: Kai KangUpgrade 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
From: Ooi Cinlydo_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
From: Ooi CinlyRemoved 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
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
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
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
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
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
On Tue, Aug 15, 2017 at 2:05 PM, Jose Lamegowrote: > 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
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
From: Peter KjellerstedtFilter 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
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
From: Peter KjellerstedtDuring 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
From: Peter KjellerstedtAlso 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)
From: Peter KjellerstedtWe 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
From: Peter KjellerstedtThese 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
From: Leonardo Sandovalgpg 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
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
== 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
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
From: Peter KjellerstedtDuring 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
From: Peter KjellerstedtThese 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)
From: Peter KjellerstedtWe 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
From: Peter KjellerstedtAlso 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
From: Peter KjellerstedtFilter 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
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
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
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
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
From: Leonardo SandovalOtherwise, 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
From: Leonardo SandovalOtherwise, 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
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
On Tue, Aug 15, 2017 at 7:23 AM, Leonardo Sandovalwrote: > 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.
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
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
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
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
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
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
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
[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
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
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
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
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
[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
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
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
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
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
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
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
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
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
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
From: Yue TaoThe _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
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
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
From: Stanley PhoongIf 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
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
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
From: Stanley PhoongDuring 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
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