Skip to contentSkip to conversation

Consolidated pull

PATCH In review Robert Yang 3 participants 46 messages Dec 28, 2015 – Jan 18, 2016

lore
Share & tools
lore
#0 lore raw

cover Consolidated pull

The following changes since commit 224bcc2ead676600bcd9e290ed23d9b2ed2f481e:

rpcbind: Security Advisory - rpcbind - CVE-2015-7236 (2015-12-08 00:18:12 -0800)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib rbt/jethro-next
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=rbt/jethro-next

Andre McCurdy (2):
directfb.inc: force bfd linker for armv7a
cairo: fix license for cairo-script-interpreter

Fang Jia (1):
toolchain-scripts.bbclass: unset command_not_found_handle

Jean-Francois Dagenais (1):
toolchain-shar-relocate: don't assume last state of env_setup_script
is good

Jens Rehsack (1):
autotools: Allow recipe-individual configure scripts

Khem Raj (1):
libxcb: Add a workaround for gcc5 bug on mips

Li Xin (1):
glibc: Backported a patch to fix glibc's bug(18589)

Mark Hatle (4):
populate_sdk_ext.bbclass: Be more permissive on the name of the
buildtools
prelink: Fix various prelink issues on IA32, ARM, and MIPS.
gcc: Update default Power GCC settings to use secure-plt
glibc: Fix ld.so / prelink interface for
ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA

Martin Jansa (9):
icu: force arm mode
guile, mailx, gcc, opensp, gstreamer1.0-libav, libunwind: disable
thumb where it fails for qemuarm
libunwind: fix build for qemuarm gstreamer1.0-plugins-{base,good}: update PACKAGECONFIGs gstreamer1.0-plugins-bad: fix dependencies for uvch264 PACKAGECONFIG gstreamer1.0-plugins-good: fix PACKAGECONFIG for gudev and add one
for v4l2 and libv4l2
gst-plugins-bad: add PACKAGECONFIGs for voamrwbenc, voaacenc,
resindvd
package_manager.py: define info_dir and status_file when OPKGLIBDIR
isn't the default
texinfo: don't create dependency on INHERIT variable

Paul Eggleton (16):
classes/distrodata: split SRC_URI properly before determining type oeqa/selftest/devtool: fix test if build directory is not inside
COREBASE
oeqa/selftest/layerappend: fix test if build directory is not inside
COREBASE
classes/metadata_scm: fix git errors showing up on non-git
repositories
classes/license: fix intermittent license collection warning classes/populate_sdk_ext: tidy up preparation log file writing classes/populate_sdk_ext: make it clear when SDK installation has
failed
classes/populate_sdk_ext: tweak reporting of workspace exclusion classes/populate_sdk_ext: fail if SDK_ARCH != BUILD_ARCH toolchain-shar-extract.sh: proper fix for additional env setup
scripts
scripts/gen-lockedsig-cache: improve output toolchain-shar-extract.sh: do not allow $ in paths for ext SDK
devtool: upgrade: fix removing other recipes from workspace on reset
devtool: upgrade: fix updating PV and SRCREV
devtool: upgrade: remove erroneous error when not renaming recipe
devtool: upgrade: fetch remote repository before checking out new
revision

Randy Witt (1):
uninative.bbclass: Choose the correct loader based on BUILD_ARCH

Ross Burton (2):
libsdl2: require GLES when building Wayland support
openssl: sanity check that the bignum module is present

Tzu-Jung Lee (1):
devtool: include do_patch in SRCTREECOVEREDTASKS

 meta/classes/autotools.bbclass                     |   43 +--
 meta/classes/distrodata.bbclass                    |    4 +-
 meta/classes/license.bbclass                       |    1 +
 meta/classes/metadata_scm.bbclass                  |   20 +-
 meta/classes/populate_sdk_ext.bbclass              |   15 +-
 meta/classes/toolchain-scripts.bbclass             |    1 +
 meta/classes/uninative.bbclass                     |    2 +-
 meta/files/toolchain-shar-extract.sh               |   15 +-
 meta/lib/oe/copy_buildsystem.py                    |    5 +-
 meta/lib/oe/package_manager.py                     |   19 ++
 meta/lib/oeqa/selftest/devtool.py                  |    2 +-
 meta/lib/oeqa/selftest/layerappend.py              |    9 +-
 .../recipes-connectivity/openssl/openssl_1.0.2d.bb |   10 +
 ...TYPE_CLASS_EXTERN_PROTECTED_DATA-for-prel.patch |   84 +++++
 ...ove-incorrect-STRDIFF-based-optimization-.patch |  323 ++++++++++++++++++++
 meta/recipes-core/glibc/glibc_2.22.bb              |    2 +
 meta/recipes-devtools/gcc/gcc-common.inc           |    5 +
 meta/recipes-devtools/gcc/gcc-configure-common.inc |    1 +
 meta/recipes-devtools/gcc/gcc-cross-initial.inc    |    1 +
 meta/recipes-devtools/gcc/gcc_4.9.bb               |    5 +-
 meta/recipes-devtools/guile/guile_2.0.11.bb        |    4 +
 meta/recipes-devtools/opensp/opensp_1.5.2.bb       |    4 +
 meta/recipes-devtools/prelink/prelink_git.bb       |    4 +-
 meta/recipes-extended/mailx/mailx_12.5-5.bb        |    5 +
 meta/recipes-extended/texinfo/texinfo_6.0.bb       |    2 +-
 meta/recipes-graphics/cairo/cairo.inc              |    3 +
 meta/recipes-graphics/directfb/directfb.inc        |    3 +
 meta/recipes-graphics/libsdl2/libsdl2_2.0.3.bb     |    2 +-
 meta/recipes-graphics/xorg-lib/libxcb.inc          |    4 +-
 .../libxcb/gcc-mips-pr68302-mips-workaround.patch  |   22 ++
 .../gstreamer/gstreamer1.0-libav_1.4.5.bb          |    3 +
 .../gstreamer/gstreamer1.0-plugins-bad.inc         |   15 +-
 .../gstreamer/gstreamer1.0-plugins-base.inc        |    7 +-
 .../gstreamer/gstreamer1.0-plugins-good.inc        |   14 +-
 meta/recipes-support/icu/icu_55.1.bb               |    4 +
 ...Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch |   61 ++++
 meta/recipes-support/libunwind/libunwind_1.1.bb    |    5 +
 scripts/gen-lockedsig-cache                        |   13 +-
 scripts/lib/devtool/standard.py                    |    4 +-
 scripts/lib/devtool/upgrade.py                     |   36 ++-
 40 files changed, 686 insertions(+), 96 deletions(-)
 create mode 100644 meta/recipes-core/glibc/glibc/0028-Clear-ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA-for-prel.patch
 create mode 100644 meta/recipes-core/glibc/glibc/strcoll-Remove-incorrect-STRDIFF-based-optimization-.patch
 create mode 100644 meta/recipes-graphics/xorg-lib/libxcb/gcc-mips-pr68302-mips-workaround.patch
 create mode 100644 meta/recipes-support/libunwind/libunwind-1.1/Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch
Signature · 1 line
1.7.9.5
#1 lore raw

PATCH 1/40 libxcb: Add a workaround for gcc5 bug on mips

From: Khem Raj <[email protected]>

This fixes build failure for libxcb on mips

(From OE-Core master rev: cad52140997e86c6fee4938369dfce21767f1a63)

---
 meta/recipes-graphics/xorg-lib/libxcb.inc          |    4 +++-
 .../libxcb/gcc-mips-pr68302-mips-workaround.patch  |   22 ++++++++++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-graphics/xorg-lib/libxcb/gcc-mips-pr68302-mips-workaround.patch
meta/recipes-graphics/xorg-lib/libxcb.inc +3 -1
index fe31f20..e40ae77 100644
@@ -14,7 +14,9 @@ DEPENDS = "xcb-proto xproto libxau xcb-proto-native libpthread-stubs"
 
 SRC_URI = "http://xcb.freedesktop.org/dist/libxcb-${PV}.tar.bz2 \
            file://xcbincludedir.patch \
-           file://disable-check.patch"
+           file://disable-check.patch \
+           file://gcc-mips-pr68302-mips-workaround.patch \
+          "
 
 PACKAGES_DYNAMIC = "^libxcb-.*"
 
meta/recipes-graphics/xorg-lib/libxcb/gcc-mips-pr68302-mips-workaround.patch new file +22 -0
new file mode 100644
index 0000000..698d038
@@ -0,0 +1,22 @@
+Reduce debug info for xcb.c since on mips we run into a gcc5 bug
+
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68302
+
+This patch is a workaround to get past the gcc bug until its resolved.
+it should have minimal impact on libxcb while make it work.
+
+Upstream-Status: Inappropriate [OE-Specific]
+Signed-off-by: Khem Raj <[email protected]>
+
+Index: libxcb-1.11.1/src/Makefile.am
+===================================================================
+--- libxcb-1.11.1.orig/src/Makefile.am
++++ libxcb-1.11.1/src/Makefile.am
+@@ -188,6 +188,7 @@ EXTSOURCES += xkb.c
+ if BUILD_XKB
+ lib_LTLIBRARIES += libxcb-xkb.la
+ libxcb_xkb_la_LDFLAGS = -version-info 1:0:0 -no-undefined
++CFLAGS += -g1
+ libxcb_xkb_la_LIBADD = $(XCB_LIBS)
+ nodist_libxcb_xkb_la_SOURCES = xkb.c xkb.h
+ endif
Signature · 1 line
1.7.9.5
#2 lore raw

PATCH 2/40 icu: force arm mode

In reply to Robert Yang

From: Martin Jansa <[email protected]>

* otherwise it triggers following ICE:
ERROR: Function failed: do_compile (log file is located at /OE/build/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/icu/53.1-r0/temp/log.do_compile.21570)
ERROR: Logfile of failure stored in: /OE/build/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/icu/53.1-r0/temp/log.do_compile.21570 Log data follows:

| DEBUG: SITE files ['endian-little', 'bit-32', 'arm-common', 'common-linux', 'common-glibc', 'arm-linux', 'arm-linux-gnueabi', 'common']
| DEBUG: Executing shell function do_compile
| NOTE: make
| Note: rebuild with "make VERBOSE=1 " to show all compiler parameters.
| make[0]: Making `all' in `stubdata'
| make[1]: Entering directory '/OE/build/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/icu/53.1-r0/build/stubdata'
| make[1]: Nothing to be done for 'all'.
| make[1]: Leaving directory '/OE/build/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/icu/53.1-r0/build/stubdata'
| make[0]: Making `all' in `common'
| make[1]: Entering directory '/OE/build/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/icu/53.1-r0/build/common'
|    arm-oe-linux-gnueabi-gcc    ...  /OE/build/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/icu/53.1-r0/icu/source/common/ubidiwrt.c
| /OE/build/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/icu/53.1-r0/icu/source/common/ubidiwrt.c: In function 'ubidi_writeReordered_53':
| /OE/build/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/icu/53.1-r0/icu/source/common/ubidiwrt.c:643:1: internal compiler error: in patch_jump_insn, at cfgrtl.c:1275
|  }
|  ^
| Please submit a full bug report,
| with preprocessed source if appropriate.
| See <http://gcc.gnu.org/bugs.html> for instructions.
| *** Failed compilation command follows: ----------------------------------------------------------
| arm-oe-linux-gnueabi-gcc -march=armv4t -mthumb -mthumb-interwork -mtune=arm920t --sysroot=/OE/build/shr-core/tmp-eglibc/sysroots/om-gta02 -D_REENTRANT -DU_HAVE_ELF_H=1 -DU_HAVE_ATOMIC=1 -I/OE/build/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/icu/53.1-r0/icu/source/common -DDEFAULT_ICU_PLUGINS="/usr/lib/icu"  -DU_ATTRIBUTE_DEPRECATED= -DU_COMMON_IMPLEMENTATION -O2 -pipe -g -feliminate-unused-debug-types -std=c99 -Wall -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -c -DPIC -fPIC -o ubidiwrt.o /OE/build/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/icu/53.1-r0/icu/source/common/ubidiwrt.c
| --- ( rebuild with "make VERBOSE=1 all" to show all parameters ) --------
| /OE/build/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/icu/53.1-r0/icu/source/config/mh-linux:44: recipe for target 'ubidiwrt.o' failed
| make[1]: *** [ubidiwrt.o] Error 1
| make[1]: Leaving directory '/OE/build/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/icu/53.1-r0/build/common'
| Makefile:141: recipe for target 'all-recursive' failed
| make: *** [all-recursive] Error 2
| ERROR: oe_runmake failed
| WARNING: /OE/build/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/icu/53.1-r0/temp/run.do_compile.21570:1 exit 1 from
|   exit 1
| ERROR: Function failed: do_compile (log file is located at /OE/build/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/icu/53.1-r0/temp/log.do_compile.21570)

NOTE: recipe icu-53.1-r0: task do_compile: Failed
ERROR: Task 6803 (/OE/build/shr-core/openembedded-core/meta/recipes-support/icu/icu_53.1.bb, do_compile) failed with exit code '1'

---
 meta/recipes-support/icu/icu_55.1.bb |    4 ++++
 1 file changed, 4 insertions(+)
meta/recipes-support/icu/icu_55.1.bb +4 -0
index 2661fd3..e91b6f3 100644
@@ -8,6 +8,10 @@ def icu_download_version(d):
 
 ICU_PV = "${@icu_download_version(d)}"
 
+# http://errors.yoctoproject.org/Errors/Details/20486/
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
+
 BASE_SRC_URI = "http://download.icu-project.org/files/icu4c/${PV}/icu4c-${ICU_PV}-src.tgz"
 SRC_URI = "${BASE_SRC_URI} \
            file://icu-pkgdata-large-cmd.patch \
Signature · 1 line
1.7.9.5
#3 lore raw

PATCH 3/40 guile, mailx, gcc, opensp, gstreamer1.0-libav, libunwind: disable thumb where it fails for qemuarm

In reply to Robert Yang

From: Martin Jansa <[email protected]>

---
 meta/recipes-devtools/gcc/gcc_4.9.bb               |    5 ++---
 meta/recipes-devtools/guile/guile_2.0.11.bb        |    4 ++++
 meta/recipes-devtools/opensp/opensp_1.5.2.bb       |    4 ++++
 meta/recipes-extended/mailx/mailx_12.5-5.bb        |    5 +++++
 .../gstreamer/gstreamer1.0-libav_1.4.5.bb          |    3 +++
 meta/recipes-support/libunwind/libunwind_1.1.bb    |    4 ++++
 6 files changed, 22 insertions(+), 3 deletions(-)
meta/recipes-devtools/gcc/gcc_4.9.bb +2 -3
index b84baae..a9dc612 100644
@@ -1,10 +1,9 @@
 require recipes-devtools/gcc/gcc-${PV}.inc
 require gcc-target.inc
 
-# Building with thumb enabled on armv4t fails with
-# | gcc-4.8.1-r0/gcc-4.8.1/gcc/cp/decl.c:7438:(.text.unlikely+0x2fa): relocation truncated to fit: R_ARM_THM_CALL against symbol `fancy_abort(char const*, int, char const*)' defined in .glue_7 section in linker stubs
-# | gcc-4.8.1-r0/gcc-4.8.1/gcc/cp/decl.c:7442:(.text.unlikely+0x318): additional relocation overflows omitted from the output
+# http://errors.yoctoproject.org/Errors/Details/20497/
 ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
 
 BBCLASSEXTEND = "nativesdk"
 
meta/recipes-devtools/guile/guile_2.0.11.bb +4 -0
index f455740..98b465b 100644
@@ -119,3 +119,7 @@ guile_sstate_postinst() {
                 find ${STAGING_DIR_TARGET}/${libdir}/guile/2.0/ccache -type f | xargs touch
 	fi
 }
+
+# http://errors.yoctoproject.org/Errors/Details/20491/
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
meta/recipes-devtools/opensp/opensp_1.5.2.bb +4 -0
index a1f115c..60a7d2e 100644
@@ -53,3 +53,7 @@ do_install_append_class-native() {
 FILES_${PN} += "${datadir}/OpenSP/"
 
 BBCLASSEXTEND = "native"
+
+# http://errors.yoctoproject.org/Errors/Details/20489/
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
meta/recipes-extended/mailx/mailx_12.5-5.bb +5 -0
index ffa9049..c87c582 100644
@@ -41,3 +41,8 @@ EXTRA_OEMAKE = "SENDMAIL=${sbindir}/sendmail IPv6=-DHAVE_IPv6_FUNCS PREFIX=/usr
 # fio.c:56:17: fatal error: ssl.h: No such file or directory
 # #include <ssl.h>
 PARALLEL_MAKE = ""
+
+# Causes gcc to get stuck and eat all available memory in qemuarm builds
+# http://errors.yoctoproject.org/Errors/Details/20488/
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.4.5.bb +3 -0
index 97fc7ec..5d74a2e 100644
@@ -25,3 +25,6 @@ LIBAV_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux \
 
 S = "${WORKDIR}/gst-libav-${PV}"
 
+# http://errors.yoctoproject.org/Errors/Details/20493/
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
meta/recipes-support/libunwind/libunwind_1.1.bb +4 -0
index 8282c1b..29bdf94 100644
@@ -10,3 +10,7 @@ SRC_URI += "\
 
 SRC_URI[md5sum] = "fb4ea2f6fbbe45bf032cd36e586883ce"
 SRC_URI[sha256sum] = "9dfe0fcae2a866de9d3942c66995e4b460230446887dbdab302d41a8aee8d09a"
+
+# http://errors.yoctoproject.org/Errors/Details/20487/
+ARM_INSTRUCTION_SET_armv4 = "arm"
+ARM_INSTRUCTION_SET_armv5 = "arm"
Signature · 1 line
1.7.9.5
#4 lore raw

PATCH 4/40 libunwind: fix build for qemuarm

In reply to Robert Yang

From: Martin Jansa <[email protected]>

---
 ...Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch |   61 ++++++++++++++++++++
 meta/recipes-support/libunwind/libunwind_1.1.bb    |    1 +
 2 files changed, 62 insertions(+)
 create mode 100644 meta/recipes-support/libunwind/libunwind-1.1/Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch
meta/recipes-support/libunwind/libunwind-1.1/Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch new file +61 -0
new file mode 100644
index 0000000..d552502
@@ -0,0 +1,61 @@
+From 24484e80b3e329c9edee1995e102f8612eedb79c Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <[email protected]>
+Date: Tue, 13 May 2014 23:32:27 +0200
+Subject: [PATCH] Add AO_REQUIRE_CAS to fix build on ARM < v6
+
+ARM earlier than ARMv6, such as ARMv4 and ARMv5 do not provide
+optimize atomic operations in libatomic_ops. Since libunwind is using
+such operations, it should define AO_REQUIRE_CAS before including
+<atomic_ops.h> so that libatomic_ops knows it should use emulated
+atomic operations instead (even though they are obviously a lot more
+expensive).
+
+Also, while real atomic operations are all inline functions and
+therefore linking against libatomic_ops was not required, the emulated
+atomic operations actually require linking against libatomic_ops, so
+the commented AC_CHECK_LIB test in acinclude.m4 is uncommented to make
+sure we link against libatomic_ops.
+
+Signed-off-by: Thomas Petazzoni <[email protected]>
+
+Upstream-Status: Pending
+Taken from:
+https://raw.githubusercontent.com/rdnetto/teapot-buildroot/master/package/libunwind/libunwind-02-Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch
+
+---
+ acinclude.m4          | 8 +-------
+ include/libunwind_i.h | 1 +
+ 2 files changed, 2 insertions(+), 7 deletions(-)
+
+diff --git a/acinclude.m4 b/acinclude.m4
+index 497f7c2..9c15af1 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -22,11 +22,5 @@ fi])
+ AC_DEFUN([CHECK_ATOMIC_OPS],
+ [dnl Check whether the system has the atomic_ops package installed.
+   AC_CHECK_HEADERS(atomic_ops.h)
+-#
+-# Don't link against libatomic_ops for now.  We don't want libunwind
+-# to depend on libatomic_ops.so.  Fortunately, none of the platforms
+-# we care about so far need libatomic_ops.a (everything is done via
+-# inline macros).
+-#
+-#  AC_CHECK_LIB(atomic_ops, main)
++  AC_CHECK_LIB(atomic_ops, main)
+ ])
+diff --git a/include/libunwind_i.h b/include/libunwind_i.h
+index 23f615e..deabdfd 100644
+--- a/include/libunwind_i.h
++++ b/include/libunwind_i.h
+@@ -95,6 +95,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
+ 	(pthread_mutex_unlock != NULL ? pthread_mutex_unlock (l) : 0)
+ 
+ #ifdef HAVE_ATOMIC_OPS_H
++# define AO_REQUIRE_CAS
+ # include <atomic_ops.h>
+ static inline int
+ cmpxchg_ptr (void *addr, void *old, void *new)
+-- 
+1.9.2
+
meta/recipes-support/libunwind/libunwind_1.1.bb +1 -0
index 29bdf94..aa62bcc 100644
@@ -6,6 +6,7 @@ SRC_URI += "\
     file://Fix-test-case-link-failure-on-PowerPC-systems-with-Altivec.patch \
     file://Link-libunwind-to-libgcc_s-rather-than-libgcc.patch \
     file://0001-Invalid-dwarf-opcodes-can-cause-references-beyond-th.patch \
+    file://Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch \
 "
 
 SRC_URI[md5sum] = "fb4ea2f6fbbe45bf032cd36e586883ce"
Signature · 1 line
1.7.9.5
#5 lore raw

PATCH 5/40 gstreamer1.0-plugins-{base, good}: update PACKAGECONFIGs

In reply to Robert Yang

From: Martin Jansa <[email protected]>

* there are new libavc1394, libiec61883, libraw1394, cdparanoia recipes in meta-multimedia

---
 .../gstreamer/gstreamer1.0-plugins-base.inc        |    7 +++----
 .../gstreamer/gstreamer1.0-plugins-good.inc        |    6 +-----
 2 files changed, 4 insertions(+), 9 deletions(-)
meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc +3 -4
index 47f3f40..4909b10 100644
@@ -25,13 +25,12 @@ PACKAGECONFIG[ogg]     = "--enable-ogg,--disable-ogg,libogg"
 PACKAGECONFIG[theora]  = "--enable-theora,--disable-theora,libtheora"
 PACKAGECONFIG[vorbis]  = "--enable-vorbis,--disable-vorbis,libvorbis"
 PACKAGECONFIG[pango]   = "--enable-pango,--disable-pango,pango"
+# libvisual do not seem to exist anywhere in OE
+PACKAGECONFIG[visual]  = "--enable-libvisual,--disable-libvisual,libvisual"
+PACKAGECONFIG[cdparanoia] = "--enable-cdparanoia,--disable-cdparanoia,cdparanoia"
 
-
-# cdparanoia and libvisual do not seem to exist anywhere in OE
 EXTRA_OECONF += " \
     --disable-freetypetest \
-    --disable-cdparanoia \
-    --disable-libvisual \
 "
 
 FILES_${MLPREFIX}libgsttag-1.0 += "${datadir}/gst-plugins-base/1.0/license-translations.dict"
meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc +1 -5
index 6e316de..0ce4b8f 100644
@@ -31,10 +31,7 @@ PACKAGECONFIG[speex]      = "--enable-speex,--disable-speex,speex"
 PACKAGECONFIG[taglib]     = "--enable-taglib,--disable-taglib,taglib"
 PACKAGECONFIG[vpx]        = "--enable-vpx,--disable-vpx,libvpx"
 PACKAGECONFIG[wavpack]    = "--enable-wavpack,--disable-wavpack,wavpack"
-
-# the 1394 plugins require both libraw1394 and libiec61883
-# the former is included in meta-oe, the latter isn't
-# -> disabled
+PACKAGECONFIG[dv1394]     = "--enable-dv1394,--disable-dv1394,libraw1394 libiec61883 libavc1394"
 
 EXTRA_OECONF += " \
     --enable-oss \
@@ -51,7 +48,6 @@ EXTRA_OECONF += " \
     --disable-libdv \
     --disable-shout2 \
     --disable-examples \
-    --disable-dv1394 \
 "
 
 FILES_${PN}-equalizer += "${datadir}/gstreamer-1.0/presets/*.prs"
Signature · 1 line
1.7.9.5
#6 lore raw

PATCH 6/40 gstreamer1.0-plugins-bad: fix dependencies for uvch264 PACKAGECONFIG

In reply to Robert Yang

From: Martin Jansa <[email protected]>

* ERROR: gstreamer1.0-plugins-bad: gstreamer1.0-plugins-bad-uvch264 package isn't created when building with minimal dependencies?
* ERROR: gstreamer1.0-plugins-bad: gstreamer1.0-plugins-bad-uvch264-dev package isn't created when building with minimal dependencies?

* it's because it should depend on libgudev not udev:
configure: *** for plug-ins: uvch264 *** checking linux/uvcvideo.h usability... yes checking linux/uvcvideo.h presence... yes checking for linux/uvcvideo.h... yes checking for GST_VIDEO... yes
checking for G_UDEV... no
checking for LIBUSB... yes

---
 .../gstreamer/gstreamer1.0-plugins-bad.inc         |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc +2 -2
index cdedb60..d7aefec 100644
@@ -20,7 +20,7 @@ PACKAGECONFIG ??= " \
     ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)} \
-    orc curl uvch264 neon sndfile \
+    orc curl neon sndfile \
     hls sbc dash bz2 smoothstreaming \
     "
 
@@ -38,7 +38,7 @@ PACKAGECONFIG[opus]            = "--enable-opus,--disable-opus,libopus"
 PACKAGECONFIG[flite]           = "--enable-flite,--disable-flite,flite-alsa"
 PACKAGECONFIG[opencv]          = "--enable-opencv,--disable-opencv,opencv"
 PACKAGECONFIG[wayland]         = "--enable-wayland --enable-egl,--disable-wayland --disable-egl,wayland virtual/egl"
-PACKAGECONFIG[uvch264]         = "--enable-uvch264,--disable-uvch264,libusb1 udev"
+PACKAGECONFIG[uvch264]         = "--enable-uvch264,--disable-uvch264,libusb1 libgudev"
 PACKAGECONFIG[directfb]        = "--enable-directfb,--disable-directfb,directfb"
 PACKAGECONFIG[neon]            = "--enable-neon,--disable-neon,neon"
 PACKAGECONFIG[openal]          = "--enable-openal,--disable-openal,openal-soft"
Signature · 1 line
1.7.9.5
#7 lore raw

PATCH 7/40 gstreamer1.0-plugins-good: fix PACKAGECONFIG for gudev and add one for v4l2 and libv4l2

In reply to Robert Yang

From: Martin Jansa <[email protected]>

* WARN: gstreamer1.0-plugins-good: gstreamer1.0-plugins-good-video4linux2 rdepends on libcap, but it isn't a build dependency?
WARN: gstreamer1.0-plugins-good: gstreamer1.0-plugins-good-video4linux2 rdepends on libgudev, but it isn't a build dependency?
WARN: gstreamer1.0-plugins-good: gstreamer1.0-plugins-good-video4linux2 rdepends on libudev, but it isn't a build dependency?
WARN: gstreamer1.0-plugins-good: gstreamer1.0-plugins-good-video4linux2 rdepends on zlib, but it isn't a build dependency?

---
 .../gstreamer/gstreamer1.0-plugins-good.inc        |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc +4 -4
index 0ce4b8f..edaafe8 100644
@@ -11,7 +11,7 @@ inherit gettext
 PACKAGECONFIG ??= " \
     ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} \
-    orc cairo flac gdk-pixbuf gudev jpeg libpng soup speex taglib \
+    orc cairo flac gdk-pixbuf jpeg libpng soup speex taglib v4l2\
     "
 
 X11DEPENDS = "virtual/libx11 libsm libxrender libxfixes libxdamage"
@@ -22,7 +22,8 @@ PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio"
 PACKAGECONFIG[cairo]      = "--enable-cairo,--disable-cairo,cairo"
 PACKAGECONFIG[flac]       = "--enable-flac,--disable-flac,flac"
 PACKAGECONFIG[gdk-pixbuf] = "--enable-gdk_pixbuf,--disable-gdk_pixbuf,gdk-pixbuf"
-PACKAGECONFIG[gudev]      = "--with-gudev,--without-gudev,udev"
+PACKAGECONFIG[gudev]      = "--with-gudev,--without-gudev,libgudev"
+PACKAGECONFIG[libv4l2]    = "--with-libv4l2,--without-libv4l2,libv4l2"
 PACKAGECONFIG[jack]       = "--enable-jack,--disable-jack,jack"
 PACKAGECONFIG[jpeg]       = "--enable-jpeg,--disable-jpeg,jpeg"
 PACKAGECONFIG[libpng]     = "--enable-libpng,--disable-libpng,libpng"
@@ -32,11 +33,10 @@ PACKAGECONFIG[taglib]     = "--enable-taglib,--disable-taglib,taglib"
 PACKAGECONFIG[vpx]        = "--enable-vpx,--disable-vpx,libvpx"
 PACKAGECONFIG[wavpack]    = "--enable-wavpack,--disable-wavpack,wavpack"
 PACKAGECONFIG[dv1394]     = "--enable-dv1394,--disable-dv1394,libraw1394 libiec61883 libavc1394"
+PACKAGECONFIG[v4l2]       = "--enable-gst_v4l2,--disable-gst_v4l2"
 
 EXTRA_OECONF += " \
     --enable-oss \
-    --enable-gst_v4l2 \
-    --without-libv4l2 \
     --disable-directsound \
     --disable-waveform \
     --disable-oss4 \
Signature · 1 line
1.7.9.5
#8 lore raw

Re: [PATCH 07/40] gstreamer1.0-plugins-good: fix PACKAGECONFIG for gudev and add one for v4l2 and libv4l2

Quoted 17 lines · Robert Yang

From: Martin Jansa <[email protected]>

* WARN: gstreamer1.0-plugins-good: gstreamer1.0-plugins-good-video4linux2 rdepends on libcap, but it isn't a build dependency?
WARN: gstreamer1.0-plugins-good: gstreamer1.0-plugins-good-video4linux2 rdepends on libgudev, but it isn't a build dependency?
WARN: gstreamer1.0-plugins-good: gstreamer1.0-plugins-good-video4linux2 rdepends on libudev, but it isn't a build dependency?
WARN: gstreamer1.0-plugins-good: gstreamer1.0-plugins-good-video4linux2 rdepends on zlib, but it isn't a build dependency?

---
 .../gstreamer/gstreamer1.0-plugins-good.inc        |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc +0 -0
index 0ce4b8f..edaafe8 100644

meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc inherit gettext · line 15

Quoted 6 lines
meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc +1 -1
@@ -11,7 +11,7 @@ inherit gettext
 PACKAGECONFIG ??= " \
     ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} \
-    orc cairo flac gdk-pixbuf gudev jpeg libpng soup speex taglib \
+    orc cairo flac gdk-pixbuf jpeg libpng soup speex taglib v4l2\
     "

Just noticed that this patch removes gudev from default PACKAGECONFIG. Was that intended?

Andreas

#9 lore raw

Re: [PATCH 07/40] gstreamer1.0-plugins-good: fix PACKAGECONFIG for gudev and add one for v4l2 and libv4l2

Quoted 13 lines · Andreas Müller
Quoted 12 lines · Robert Yang

From: Martin Jansa <[email protected]>

* WARN: gstreamer1.0-plugins-good: gstreamer1.0-plugins-good-video4linux2 rdepends on libcap, but it isn't a build dependency?
WARN: gstreamer1.0-plugins-good: gstreamer1.0-plugins-good-video4linux2 rdepends on libgudev, but it isn't a build dependency?
WARN: gstreamer1.0-plugins-good: gstreamer1.0-plugins-good-video4linux2 rdepends on libudev, but it isn't a build dependency?
WARN: gstreamer1.0-plugins-good: gstreamer1.0-plugins-good-video4linux2 rdepends on zlib, but it isn't a build dependency?

---
  .../gstreamer/gstreamer1.0-plugins-good.inc        |    8 ++++----
  1 file changed, 4 insertions(+), 4 deletions(-)
Quoted 13 lines

meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc inherit gettext · line 15

Quoted 11 lines
meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc +1 -1
index 0ce4b8f..edaafe8 100644
@@ -11,7 +11,7 @@ inherit gettext
  PACKAGECONFIG ??= " \
      ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
      ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} \
-    orc cairo flac gdk-pixbuf gudev jpeg libpng soup speex taglib \
+    orc cairo flac gdk-pixbuf jpeg libpng soup speex taglib v4l2\
      "

Just noticed that this patch removes gudev from default PACKAGECONFIG. Was that intended?

I'm afraid no, should be a typo, I will send a patch for it.

// Robert

Quoted 3 lines

Andreas

#10 lore raw

Re: [PATCH 07/40] gstreamer1.0-plugins-good: fix PACKAGECONFIG for gudev and add one for v4l2 and libv4l2

Quoted 36 lines · Robert Yang
Quoted 17 lines · Andreas Müller
Quoted 16 lines · Robert Yang

From: Martin Jansa <[email protected]>

* WARN: gstreamer1.0-plugins-good: gstreamer1.0-plugins-good-video4linux2 rdepends on libcap, but it isn't a build dependency?
WARN: gstreamer1.0-plugins-good: gstreamer1.0-plugins-good-video4linux2
rdepends on libgudev, but it isn't a build dependency?
WARN: gstreamer1.0-plugins-good: gstreamer1.0-plugins-good-video4linux2
rdepends on libudev, but it isn't a build dependency?
WARN: gstreamer1.0-plugins-good: gstreamer1.0-plugins-good-video4linux2
rdepends on zlib, but it isn't a build dependency?

---
  .../gstreamer/gstreamer1.0-plugins-good.inc        |    8 ++++----
  1 file changed, 4 insertions(+), 4 deletions(-)
Quoted 15 lines

meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc inherit gettext · line 16

Quoted 13 lines
meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc +1 -1
index 0ce4b8f..edaafe8 100644
@@ -11,7 +11,7 @@ inherit gettext
  PACKAGECONFIG ??= " \
      ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
      ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '',
 d)} \
-    orc cairo flac gdk-pixbuf gudev jpeg libpng soup speex taglib \
+    orc cairo flac gdk-pixbuf jpeg libpng soup speex taglib v4l2\
      "

Just noticed that this patch removes gudev from default PACKAGECONFIG. Was that intended?

Quoted 1 line

I'm afraid no, should be a typo, I will send a patch for it.

To be clear, it's my fault, there were conflicts when I merged the original patch, and I wrongly removed udev from PACKAGECONFIG when resolving the conflicts.

// Robert

Quoted 6 lines

// Robert

Quoted 3 lines

Andreas

#11 lore raw

Re: [PATCH 07/40] gstreamer1.0-plugins-good: fix PACKAGECONFIG for gudev and add one for v4l2 and libv4l2

In reply to Andreas Müller
Quoted 13 lines · Andreas Müller
Quoted 12 lines · Robert Yang

From: Martin Jansa <[email protected]>

* WARN: gstreamer1.0-plugins-good: gstreamer1.0-plugins-good-video4linux2 rdepends on libcap, but it isn't a build dependency?
WARN: gstreamer1.0-plugins-good: gstreamer1.0-plugins-good-video4linux2 rdepends on libgudev, but it isn't a build dependency?
WARN: gstreamer1.0-plugins-good: gstreamer1.0-plugins-good-video4linux2 rdepends on libudev, but it isn't a build dependency?
WARN: gstreamer1.0-plugins-good: gstreamer1.0-plugins-good-video4linux2 rdepends on zlib, but it isn't a build dependency?

---
 .../gstreamer/gstreamer1.0-plugins-good.inc        |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
Quoted 13 lines

meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc inherit gettext · line 15

Quoted 11 lines
meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc +1 -1
index 0ce4b8f..edaafe8 100644
@@ -11,7 +11,7 @@ inherit gettext
 PACKAGECONFIG ??= " \
     ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} \
-    orc cairo flac gdk-pixbuf gudev jpeg libpng soup speex taglib \
+    orc cairo flac gdk-pixbuf jpeg libpng soup speex taglib v4l2\
     "

Just noticed that this patch removes gudev from default PACKAGECONFIG. Was that intended?

Yes it was intended, because oe-core doesn't have libgudev provider for systemd based builds, see:
http://patchwork.openembedded.org/patch/107865/

I didn't get reply from Robert and haven't seen any libgudev backport for oe-core, so I've sent gstreamer changes for jethro which disable gudev support where it isn't available for oe-core.

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

PATCH 8/40 gst-plugins-bad: add PACKAGECONFIGs for voamrwbenc, voaacenc, resindvd

In reply to Robert Yang

From: Martin Jansa <[email protected]>

* allows to easily enable them and fixes:
WARNING: QA Issue: gstreamer1.0-plugins-bad: Files/directories were installed but not shipped in any package:
/usr/share/gstreamer-1.0
/usr/share/gstreamer-1.0/presets
/usr/share/gstreamer-1.0/presets/GstVoAmrwbEnc.prs
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install. gstreamer1.0-plugins-bad: 3 installed and not shipped files. [installed-vs-shipped]

---
 .../gstreamer/gstreamer1.0-plugins-bad.inc         |   11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)
meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc +6 -5
index d7aefec..b4f01af 100644
@@ -55,6 +55,9 @@ PACKAGECONFIG[sndfile]         = "--enable-sndfile,--disable-sndfile,libsndfile1
 PACKAGECONFIG[webp]            = "--enable-webp,--disable-webp,libwebp"
 PACKAGECONFIG[rtmp]            = "--enable-rtmp,--disable-rtmp,rtmpdump"
 PACKAGECONFIG[libssh2]         = "--enable-libssh2,--disable-libssh2,libssh2"
+PACKAGECONFIG[voamrwbenc]      = "--enable-voamrwbenc,--disable-voamrwbenc,vo-amrwbenc"
+PACKAGECONFIG[voaacenc]        = "--enable-voaacenc,--disable-voaacenc,vo-aacenc"
+PACKAGECONFIG[resindvd]        = "--enable-resindvd,--disable-resindvd,libdvdnav libdvdread"
 
 # these plugins have not been ported to 1.0 (yet):
 #   directdraw vcd apexsink dc1394 lv2 linsys musepack mythtv
@@ -66,8 +69,8 @@ PACKAGECONFIG[libssh2]         = "--enable-libssh2,--disable-libssh2,libssh2"
 # these plugins have no corresponding library in OE-core or meta-openembedded:
 #   openni2 winks direct3d directdraw directsound winscreencap osx_video
 #   apple_media android_media avc chromaprint daala dts gme gsm kate ladspa mimic
-#   mpeg2enc mplex ofa openjpeg opensles pvr resindvd rtmp soundtouch spandsp spc
-#   srtp vdpau voaacenc voamrwbenc wasapi zbar
+#   mpeg2enc mplex ofa openjpeg opensles pvr rtmp soundtouch spandsp spc
+#   srtp vdpau wasapi zbar
 
 EXTRA_OECONF += " \
     --enable-dvb \
@@ -106,7 +109,6 @@ EXTRA_OECONF += " \
     --disable-osx_video \
     --disable-pvr \
     --disable-quicktime \
-    --disable-resindvd \
     --disable-sdl \
     --disable-sdltest \
     --disable-sndio \
@@ -118,8 +120,6 @@ EXTRA_OECONF += " \
     --disable-timidity \
     --disable-vcd \
     --disable-vdpau \
-    --disable-voaacenc \
-    --disable-voamrwbenc \
     --disable-wasapi \
     --disable-wildmidi \
     --disable-wininet \
@@ -133,3 +133,4 @@ ARM_INSTRUCTION_SET = "arm"
 
 FILES_gstreamer1.0-plugins-bad-opencv += "${datadir}/gst-plugins-bad/1.0/opencv*"
 
+FILES_${PN}-voamrwbenc += "${datadir}/gstreamer-${LIBV}/presets/GstVoAmrwbEnc.prs"
Signature · 1 line
1.7.9.5
#13 lore raw

PATCH 9/40 libsdl2: require GLES when building Wayland support

In reply to Robert Yang

From: Ross Burton <[email protected]>

The Wayland support requires GLES2 to be enabled as otherwise the EGL support code in SDL2 isn't enabled.

| In file included from .../SDL2-2.0.3/src/video/wayland/SDL_waylandvideo.c:34:0:
| .../SDL2-2.0.3/src/video/wayland/SDL_waylandvideo.c: In function 'Wayland_CreateDevice':
| .../SDL2-2.0.3/src/video/wayland/SDL_waylandopengles.h:38:38: error: 'SDL_EGL_GetSwapInterval' undeclared (first use in this function)
|  #define Wayland_GLES_GetSwapInterval SDL_EGL_GetSwapInterval

Solve this by adding gles2 to the Wayland PACKAGECONFIG option.

---
 meta/recipes-graphics/libsdl2/libsdl2_2.0.3.bb |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-graphics/libsdl2/libsdl2_2.0.3.bb +1 -1
index 97f64f3..f138f97 100644
@@ -39,7 +39,7 @@ PACKAGECONFIG ??= " \
     ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland gles2', '', d)} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
 "
 PACKAGECONFIG[alsa]       = "--enable-alsa --disable-alsatest,--disable-alsa,alsa-lib,"
Signature · 1 line
1.7.9.5
#14 lore raw

PATCH 10/40 package_manager.py: define info_dir and status_file when OPKGLIBDIR isn't the default

In reply to Robert Yang

From: Martin Jansa <[email protected]>

* without this the do_rootfs task doesn't respect OPKGLIBDIR and info, status are created in different directory than opkg on target expects
* people who modify OPKGLIBDIR need to make sure that opkg.conf included in opkg package also sets info_dir and status_file options

---
 meta/lib/oe/package_manager.py |   19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
meta/lib/oe/package_manager.py +19 -0
index 964fddc..b9fa6d8 100644
@@ -1471,6 +1471,16 @@ class OpkgPM(PackageManager):
                                         self.d.getVar('FEED_DEPLOYDIR_BASE_URI', True),
                                         arch))
 
+            if self.opkg_dir != '/var/lib/opkg':
+                # There is no command line option for this anymore, we need to add
+                # info_dir and status_file to config file, if OPKGLIBDIR doesn't have
+                # the default value of "/var/lib" as defined in opkg:
+                # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_INFO_DIR      "/var/lib/opkg/info"
+                # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_STATUS_FILE   "/var/lib/opkg/status"
+                cfg_file.write("option info_dir     %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR', True), 'opkg', 'info'))
+                cfg_file.write("option status_file  %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR', True), 'opkg', 'status'))
+
+
     def _create_config(self):
         with open(self.config_file, "w+") as config_file:
             priority = 1
@@ -1486,6 +1496,15 @@ class OpkgPM(PackageManager):
                     config_file.write("src oe-%s file:%s\n" %
                                       (arch, pkgs_dir))
 
+            if self.opkg_dir != '/var/lib/opkg':
+                # There is no command line option for this anymore, we need to add
+                # info_dir and status_file to config file, if OPKGLIBDIR doesn't have
+                # the default value of "/var/lib" as defined in opkg:
+                # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_INFO_DIR      "/var/lib/opkg/info"
+                # libopkg/opkg_conf.h:#define OPKG_CONF_DEFAULT_STATUS_FILE   "/var/lib/opkg/status"
+                config_file.write("option info_dir     %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR', True), 'opkg', 'info'))
+                config_file.write("option status_file  %s\n" % os.path.join(self.d.getVar('OPKGLIBDIR', True), 'opkg', 'status'))
+
     def insert_feeds_uris(self):
         if self.feed_uris == "":
             return
Signature · 1 line
1.7.9.5
#15 lore raw

PATCH 11/40 texinfo: don't create dependency on INHERIT variable

In reply to Robert Yang

From: Martin Jansa <[email protected]>

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

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

PATCH 12/40 directfb.inc: force bfd linker for armv7a

In reply to Robert Yang

From: Andre McCurdy <[email protected]>

Workaround for linker errors seen with armv7a + gold:

 | ../arm-rdk-linux-gnueabi-libtool  --tag=CC   --mode=link arm-rdk-linux-gnueabi-gcc  -march=armv7-a -mfloat-abi=hard -mtune=cortex-a15 --sysroot=.../build/tmp/sysroots/eos -I.../build/tmp/sysroots/eos/usr/include/freetype2 -I.../build/tmp/sysroots/eos/usr/include/libpng16 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wno-strict-aliasing -Werror-implicit-function-declaration -O3 -g2 -ffast-math -pipe -O2 -pipe -g -feliminate-unused-debug-types -D_GNU_SOURCE  -std=gnu99 -Werror-implicit-function-declaration  -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o directfb-csource directfb-csource.o -lpng16 -ldl -lrt -lpthread
 | arm-rdk-linux-gnueabi-libtool: link: arm-rdk-linux-gnueabi-gcc -march=armv7-a -mfloat-abi=hard -mtune=cortex-a15 --sysroot=.../build/tmp/sysroots/eos -I.../build/tmp/sysroots/eos/usr/include/freetype2 -I.../build/tmp/sysroots/eos/usr/include/libpng16 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wno-strict-aliasing -Werror-implicit-function-declaration -O3 -g2 -ffast-math -pipe -O2 -pipe -g -feliminate-unused-debug-types -D_GNU_SOURCE -std=gnu99 -Werror-implicit-function-declaration -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o directfb-csource directfb-csource.o  .../build/tmp/sysroots/eos/usr/lib/libpng16.so -lz -lm -ldl -lrt -lpthread
 | .../build/tmp/sysroots/x86_64-linux/usr/bin/arm-rdk-linux-gnueabi/../../libexec/arm-rdk-linux-gnueabi/gcc/arm-rdk-linux-gnueabi/5.2.0/ld: error: directfb-csource.o: requires unsupported dynamic reloc R_ARM_MOVW_ABS_NC; recompile with -fPIC
 | collect2: error: ld returned 1 exit status
---
 meta/recipes-graphics/directfb/directfb.inc |    3 +++
 1 file changed, 3 insertions(+)
meta/recipes-graphics/directfb/directfb.inc +3 -0
index 446aaea..cbd4014 100644
@@ -22,6 +22,9 @@ S = "${WORKDIR}/DirectFB-${PV}"
 
 LDFLAGS_append =" -lts -lm"
 
+# Workaround for linking issues seen with armv7a + gold
+LDFLAGS_append_armv7a = "${@base_contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
+
 BINCONFIG = "${bindir}/directfb-config"
 
 inherit autotools binconfig-disabled pkgconfig
Signature · 1 line
1.7.9.5
#17 lore raw

PATCH 13/40 glibc: Backported a patch to fix glibc's bug(18589)

In reply to Robert Yang

From: Li Xin <[email protected]>

Also Fix LSB NG cases:
* /tset/ANSI.os/locale/setlocale/T.setlocale 1 2 4 5 15
* /tset/ANSI.os/string/strcoll_X/T.strcoll_X 1
* /tset/LI18NUX2K.L1/base/wcscoll/T.wcscoll 1
* /tset/LI18NUX2K.L1/utils/localedef/T.localedef 7
* /tset/LI18NUX2K.L1/utils/sort/T.sort 1 3 17 19 33 35
* /tset/LI18NUX2K.L1/utils/comm/T.comm 1 2
* /tset/LI18NUX2K.L1/utils/ls-fh/T.ls-fh 2

This patch is backported from
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6c84109cfa26f35c3dfed3acb97d347361bd5849

(From OE-Core master rev: e88fe8f4c0ea70fb271d3a11e1a3bfcac4c92626)

---
 ...ove-incorrect-STRDIFF-based-optimization-.patch |  323 ++++++++++++++++++++
 meta/recipes-core/glibc/glibc_2.22.bb              |    1 +
 2 files changed, 324 insertions(+)
 create mode 100644 meta/recipes-core/glibc/glibc/strcoll-Remove-incorrect-STRDIFF-based-optimization-.patch
meta/recipes-core/glibc/glibc/strcoll-Remove-incorrect-STRDIFF-based-optimization-.patch new file +323 -0
new file mode 100644
index 0000000..8ce255f
@@ -0,0 +1,323 @@
+Upstream-Status: Backport
+
+Signed-off-by: Li Xin <[email protected]>
+
+From https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6c84109cfa26f35c3dfed3acb97d347361bd5849
+Author: Carlos O'Donell <[email protected]>
+Date:   Thu Oct 8 16:34:53 2015 -0400
+
+    strcoll: Remove incorrect STRDIFF-based optimization (Bug 18589).
+
+    The optimization introduced in commit
+    f13c2a8dff2329c6692a80176262ceaaf8a6f74e, causes regressions in
+    sorting for languages that have digraphs that change sort order, like
+    cs_CZ which sorts ch between h and i.
+
+    My analysis shows the fast-forwarding optimization in STRCOLL advances
+    through a digraph while possibly stopping in the middle which results
+    in a subsequent skipping of the digraph and incorrect sorting. The
+    optimization is incorrect as implemented and because of that I'm
+    removing it for 2.23, and I will also commit this fix for 2.22 where
+    it was originally introduced.
+
+    This patch reverts the optimization, introduces a new bug-strcoll2.c
+    regression test that tests both cs_CZ.UTF-8 and da_DK.ISO-8859-1 and
+    ensures they sort one digraph each correctly. The optimization can't be
+    applied without regressing this test.
+
+    Checked on x86_64, bug-strcoll2.c fails without this patch and passes
+    after. This will also get a fix on 2.22 which has the same bug.
+
+    (cherry picked from commit 87701a58e291bd7ac3b407d10a829dac52c9c16e)
+---
+ locale/C-collate.c           |  4 +-
+ locale/categories.def        |  1 -
+ locale/langinfo.h            |  1 -
+ locale/localeinfo.h          |  7 ----
+ locale/programs/ld-collate.c |  9 -----
+ string/bug-strcoll2.c        | 95 ++++++++++++++++++++++++++++++++++++++++++++
+ string/strcoll_l.c           | 39 +-----------------
+ wcsmbs/wcscoll_l.c           |  1 -
+ 8 files changed, 98 insertions(+), 59 deletions(-)
+ create mode 100644 string/bug-strcoll2.c
+
+diff --git a/locale/C-collate.c b/locale/C-collate.c
+index d7f3c55..06dfdfa 100644
+--- a/locale/C-collate.c
++++ b/locale/C-collate.c
+@@ -144,8 +144,6 @@ const struct __locale_data _nl_C_LC_COLLATE attribute_hidden =
+     /* _NL_COLLATE_COLLSEQWC */
+     { .string = (const char *) collseqwc },
+     /* _NL_COLLATE_CODESET */
+-    { .string = _nl_C_codeset },
+-    /* _NL_COLLATE_ENCODING_TYPE */
+-    { .word = __cet_8bit }
++    { .string = _nl_C_codeset }
+   }
+ };
+diff --git a/locale/categories.def b/locale/categories.def
+index 045489d..a8dda53 100644
+--- a/locale/categories.def
++++ b/locale/categories.def
+@@ -58,7 +58,6 @@ DEFINE_CATEGORY
+   DEFINE_ELEMENT (_NL_COLLATE_COLLSEQMB,        "collate-collseqmb",        std, wstring)
+   DEFINE_ELEMENT (_NL_COLLATE_COLLSEQWC,        "collate-collseqwc",        std, wstring)
+   DEFINE_ELEMENT (_NL_COLLATE_CODESET,		"collate-codeset",	    std, string)
+-  DEFINE_ELEMENT (_NL_COLLATE_ENCODING_TYPE,   "collate-encoding-type",    std, word)
+   ), NO_POSTLOAD)
+ 
+ 
+diff --git a/locale/langinfo.h b/locale/langinfo.h
+index ffc5c7f..a565d9d 100644
+--- a/locale/langinfo.h
++++ b/locale/langinfo.h
+@@ -255,7 +255,6 @@ enum
+   _NL_COLLATE_COLLSEQMB,
+   _NL_COLLATE_COLLSEQWC,
+   _NL_COLLATE_CODESET,
+-  _NL_COLLATE_ENCODING_TYPE,
+   _NL_NUM_LC_COLLATE,
+ 
+   /* LC_CTYPE category: character classification.
+diff --git a/locale/localeinfo.h b/locale/localeinfo.h
+index a7516c0..c076d8e 100644
+--- a/locale/localeinfo.h
++++ b/locale/localeinfo.h
+@@ -110,13 +110,6 @@ enum coll_sort_rule
+   sort_mask
+ };
+ 
+-/* Collation encoding type.  */
+-enum collation_encoding_type
+-{
+-  __cet_other,
+-  __cet_8bit,
+-  __cet_utf8
+-};
+ 
+ /* We can map the types of the entries into a few categories.  */
+ enum value_type
+diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c
+index 16e9039..3c88c6d 100644
+--- a/locale/programs/ld-collate.c
++++ b/locale/programs/ld-collate.c
+@@ -32,7 +32,6 @@
+ #include "linereader.h"
+ #include "locfile.h"
+ #include "elem-hash.h"
+-#include "../localeinfo.h"
+ 
+ /* Uncomment the following line in the production version.  */
+ /* #define NDEBUG 1 */
+@@ -2130,8 +2129,6 @@ collate_output (struct localedef_t *locale, const struct charmap_t *charmap,
+ 	  /* The words have to be handled specially.  */
+ 	  if (idx == _NL_ITEM_INDEX (_NL_COLLATE_SYMB_HASH_SIZEMB))
+ 	    add_locale_uint32 (&file, 0);
+-	  else if (idx == _NL_ITEM_INDEX (_NL_COLLATE_ENCODING_TYPE))
+-	    add_locale_uint32 (&file, __cet_other);
+ 	  else
+ 	    add_locale_empty (&file);
+ 	}
+@@ -2495,12 +2492,6 @@ collate_output (struct localedef_t *locale, const struct charmap_t *charmap,
+   add_locale_raw_data (&file, collate->mbseqorder, 256);
+   add_locale_collseq_table (&file, &collate->wcseqorder);
+   add_locale_string (&file, charmap->code_set_name);
+-  if (strcmp (charmap->code_set_name, "UTF-8") == 0)
+-    add_locale_uint32 (&file, __cet_utf8);
+-  else if (charmap->mb_cur_max == 1)
+-    add_locale_uint32 (&file, __cet_8bit);
+-  else
+-    add_locale_uint32 (&file, __cet_other);
+   write_locale_data (output_path, LC_COLLATE, "LC_COLLATE", &file);
+ 
+   obstack_free (&weightpool, NULL);
+diff --git a/string/bug-strcoll2.c b/string/bug-strcoll2.c
+new file mode 100644
+index 0000000..950b090
+--- /dev/null
++++ b/string/bug-strcoll2.c
+@@ -0,0 +1,95 @@
++/* Bug 18589: sort-test.sh fails at random.
++ * Copyright (C) 1998-2015 Free Software Foundation, Inc.
++ * This file is part of the GNU C Library.
++ * Contributed by Ulrich Drepper <[email protected]>, 1998.
++ *
++ * The GNU C Library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2.1 of the License, or (at your option) any later version.
++ *
++ * The GNU C Library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with the GNU C Library; if not, see
++ * <http://www.gnu.org/licenses/>.  */
++
++#include <stdio.h>
++#include <string.h>
++#include <locale.h>
++
++/* An incorrect strcoll optimization resulted in incorrect
++ *    results from strcoll for cs_CZ and da_DK.  */
++
++int
++test_cs_CZ (void)
++{
++  const char t1[] = "config";
++  const char t2[] = "choose";
++  if (setlocale (LC_ALL, "cs_CZ.UTF-8") == NULL)
++    {
++      perror ("setlocale");
++      return 1;
++    }
++  /* In Czech the digraph ch sorts after c, therefore we expect
++ *      config to sort before choose.  */
++  int a = strcoll (t1, t2);
++  int b = strcoll (t2, t1);
++  printf ("strcoll (\"%s\", \"%s\") = %d\n", t1, t2, a);
++  printf ("strcoll (\"%s\", \"%s\") = %d\n", t2, t1, b);
++  if (a < 0 && b > 0)
++    {
++      puts ("PASS: config < choose");
++      return 0;
++    }
++  else
++    {
++      puts ("FAIL: Wrong sorting in cz_CZ.UTF-8.");
++      return 1;
++    }
++}
++
++int
++test_da_DK (void)
++{
++  const char t1[] = "AS";
++  const char t2[] = "AA";
++  if (setlocale (LC_ALL, "da_DK.ISO-8859-1") == NULL)
++    {
++      perror ("setlocale");
++      return 1;
++    }
++  /* AA should be treated as the last letter of the Danish alphabet,
++ *      hence sorting after AS.  */
++  int a = strcoll (t1, t2);
++  int b = strcoll (t2, t1);
++  printf ("strcoll (\"%s\", \"%s\") = %d\n", t1, t2, a);
++  printf ("strcoll (\"%s\", \"%s\") = %d\n", t2, t1, b);
++  if (a < 0 && b > 0)
++    {
++      puts ("PASS: AS < AA");
++      return 0;
++    }
++  else
++    {
++      puts ("FAIL: Wrong sorting in da_DK.ISO-8859-1");
++      return 1;
++    }
++}
++
++static int
++do_test (void)
++{
++  int err = 0;
++  err |= test_cs_CZ ();
++  err |= test_da_DK ();
++  return err;
++}
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
++
++
+diff --git a/string/strcoll_l.c b/string/strcoll_l.c
+index b36b18c..a18b65e 100644
+--- a/string/strcoll_l.c
++++ b/string/strcoll_l.c
+@@ -30,7 +30,6 @@
+ # define STRING_TYPE char
+ # define USTRING_TYPE unsigned char
+ # define STRCOLL __strcoll_l
+-# define STRDIFF __strdiff
+ # define STRCMP strcmp
+ # define WEIGHT_H "../locale/weight.h"
+ # define SUFFIX	MB
+@@ -43,19 +42,6 @@
+ #include "../locale/localeinfo.h"
+ #include WEIGHT_H
+ 
+-#define MASK_UTF8_7BIT  (1 << 7)
+-#define MASK_UTF8_START (3 << 6)
+-
+-size_t
+-STRDIFF (const STRING_TYPE *s, const STRING_TYPE *t)
+-{
+-  size_t n;
+-
+-  for (n = 0; *s != '\0' && *s++ == *t++; ++n)
+-    continue;
+-
+-  return n;
+-}
+ 
+ /* Track status while looking for sequences in a string.  */
+ typedef struct
+@@ -274,29 +260,9 @@ STRCOLL (const STRING_TYPE *s1, const STRING_TYPE *s2, __locale_t l)
+   const USTRING_TYPE *extra;
+   const int32_t *indirect;
+ 
+-  /* In case there is no locale specific sort order (C / POSIX).  */
+   if (nrules == 0)
+     return STRCMP (s1, s2);
+ 
+-  /* Fast forward to the position of the first difference.  Needs to be
+-     encoding aware as the byte-by-byte comparison can stop in the middle
+-     of a char sequence for multibyte encodings like UTF-8.  */
+-  uint_fast32_t encoding =
+-    current->values[_NL_ITEM_INDEX (_NL_COLLATE_ENCODING_TYPE)].word;
+-  if (encoding != __cet_other)
+-    {
+-      size_t diff = STRDIFF (s1, s2);
+-      if (diff > 0)
+-	{
+-	  if (encoding == __cet_utf8 && (*(s1 + diff) & MASK_UTF8_7BIT) != 0)
+-	    do
+-	      diff--;
+-	    while (diff > 0 && (*(s1 + diff) & MASK_UTF8_START) != MASK_UTF8_START);
+-	  s1 += diff;
+-	  s2 += diff;
+-	}
+-    }
+-
+   /* Catch empty strings.  */
+   if (__glibc_unlikely (*s1 == '\0') || __glibc_unlikely (*s2 == '\0'))
+     return (*s1 != '\0') - (*s2 != '\0');
+@@ -363,9 +329,8 @@ STRCOLL (const STRING_TYPE *s1, const STRING_TYPE *s2, __locale_t l)
+ 		     byte-level comparison to ensure that we don't waste time
+ 		     going through multiple passes for totally equal strings
+ 		     before proceeding to subsequent passes.  */
+-		  if (pass == 0 && encoding == __cet_other &&
+-		      STRCMP (s1, s2) == 0)
+-		    return result;
++		  if (pass == 0 && STRCMP (s1, s2) == 0)
++                    return result;
+ 		  else
+ 		    break;
+ 	        }
+diff --git a/wcsmbs/wcscoll_l.c b/wcsmbs/wcscoll_l.c
+index 6d9384a..87f240d 100644
+--- a/wcsmbs/wcscoll_l.c
++++ b/wcsmbs/wcscoll_l.c
+@@ -23,7 +23,6 @@
+ #define STRING_TYPE wchar_t
+ #define USTRING_TYPE wint_t
+ #define STRCOLL __wcscoll_l
+-#define STRDIFF __wcsdiff
+ #define STRCMP __wcscmp
+ #define WEIGHT_H "../locale/weightwc.h"
+ #define SUFFIX	WC
+-- 
+1.8.4.2
+
meta/recipes-core/glibc/glibc_2.22.bb +1 -0
index 2494ad7..71ff824 100644
@@ -39,6 +39,7 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
            file://0026-eglibc-dl_debug_mask-is-controlled-by-__OPTION_EGLIB.patch \
            file://0027-eglibc-use-option-groups-Conditionally-exclude-c-tes.patch \
            file://nscd-no-bash.patch \
+           file://strcoll-Remove-incorrect-STRDIFF-based-optimization-.patch \
 "
 
 SRC_URI += "\
Signature · 1 line
1.7.9.5
#18 lore raw

PATCH 14/40 openssl: sanity check that the bignum module is present

In reply to Robert Yang

From: Ross Burton <[email protected]>

The crypto_use_bigint_in_x86-64_perl patch uses the "bigint" module to transparently support 64-bit integers on 32-bit hosts. Whilst bigint (part of bignum) is a core Perl module not all distributions install it (notable Fedora 23).

As the error message when bignum isn't installed is obscure, add a task to check that it is available and alert the user if it isn't.

[ YOCTO #8562 ]

(From OE-Core master rev: 2f9a2fbc46aa435a0a7f7662bb62029ac714f25a)

---
 .../recipes-connectivity/openssl/openssl_1.0.2d.bb |   10 ++++++++++
 1 file changed, 10 insertions(+)
meta/recipes-connectivity/openssl/openssl_1.0.2d.bb +10 -0
index fd56841..659e0bd 100644
@@ -56,3 +56,13 @@ PARALLEL_MAKEINST = ""
 do_configure_prepend() {
   cp ${WORKDIR}/find.pl ${S}/util/find.pl
 }
+
+# The crypto_use_bigint patch means that perl's bignum module needs to be
+# installed, but some distributions (for example Fedora 23) don't ship it by
+# default.  As the resulting error is very misleading check for bignum before
+# building.
+do_configure_prepend() {
+	if ! perl -Mbigint -e true; then
+		bbfatal "The perl module 'bignum' was not found but this is required to build openssl.  Please install this module (often packaged as perl-bignum) and re-run bitbake."
+	fi
+}
Signature · 1 line
1.7.9.5
#19 lore raw

PATCH 15/40 uninative.bbclass: Choose the correct loader based on BUILD_ARCH

In reply to Robert Yang

From: Randy Witt <[email protected]>

Previously UNINATIVE_LOADER was always ld-linux-x86-64.so.2. That is incorrect when the host is 32-bit.

This change also changes to using ?= so the user can override UNINATIVE_LOADER if so desired.

[YOCTO #8124]

(From OE-Core master rev: b78fa0bcadd54bb29b6f1bb3a9308d4c454bf4e2)

---
 meta/classes/uninative.bbclass |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/classes/uninative.bbclass +1 -1
index 51391db..0cd27db 100644
@@ -1,6 +1,6 @@
 NATIVELSBSTRING = "universal"
 
-UNINATIVE_LOADER = "${STAGING_DIR_NATIVE}/lib/ld-linux-x86-64.so.2"
+UNINATIVE_LOADER ?= "${@bb.utils.contains('BUILD_ARCH', 'x86_64', '${STAGING_DIR_NATIVE}/lib/ld-linux-x86-64.so.2', '${STAGING_DIR_NATIVE}/lib/ld-linux.so.2', d)}"
 
 addhandler uninative_eventhandler
 uninative_eventhandler[eventmask] = "bb.event.BuildStarted"
Signature · 1 line
1.7.9.5
#20 lore raw

PATCH 16/40 classes/distrodata: split SRC_URI properly before determining type

In reply to Robert Yang

From: Paul Eggleton <[email protected]>

We weren't splitting SRC_URI values containing multiple URIs here; this didn't cause any errors except when a trailing ; was left on a URI, in which case the next URI was considered part of the parameter, which didn't contain a = and therefore was considered invalid.

We only care about the first URI in SRC_URI in this context (since that's the upstream URI by convention) so split it as we should and take the first item.

Fixes [YOCTO #8645].

(From OE-Core master rev: 8e75b7e7d54e5638b42b9e7f90f2c6c17e62033f)

---
 meta/classes/distrodata.bbclass |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
meta/classes/distrodata.bbclass +2 -2
index 5a4c1b6..44c06e1 100644
@@ -271,9 +271,9 @@ python do_checkpkg() {
         from bb.fetch2 import FetchError, NoMethodError, decodeurl
 
         """first check whether a uri is provided"""
-        src_uri = d.getVar('SRC_URI', True)
+        src_uri = (d.getVar('SRC_URI', True) or '').split()
         if src_uri:
-            uri_type, _, _, _, _, _ = decodeurl(src_uri)
+            uri_type, _, _, _, _, _ = decodeurl(src_uri[0])
         else:
             uri_type = "none"
 
Signature · 1 line
1.7.9.5
#21 lore raw

PATCH 17/40 oeqa/selftest/devtool: fix test if build directory is not inside COREBASE

In reply to Robert Yang

From: Paul Eggleton <[email protected]>

Fix test_devtool_update_recipe_git to work when build directory is not inside COREBASE.

Fixes [YOCTO #8639].

(From OE-Core master rev: 0225888207f82e5f1d9e3dffb7c342a10169aea3)

---
 meta/lib/oeqa/selftest/devtool.py |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/lib/oeqa/selftest/devtool.py +1 -1
index f48e6a2..dcdef5a 100644
@@ -582,7 +582,7 @@ class DevtoolTests(DevtoolBase):
         # Now try with auto mode
         runCmd('cd %s; git checkout %s %s' % (os.path.dirname(recipefile), testrecipe, os.path.basename(recipefile)))
         result = runCmd('devtool update-recipe %s' % testrecipe)
-        result = runCmd('git rev-parse --show-toplevel')
+        result = runCmd('git rev-parse --show-toplevel', cwd=os.path.dirname(recipefile))
         topleveldir = result.output.strip()
         relpatchpath = os.path.join(os.path.relpath(os.path.dirname(recipefile), topleveldir), testrecipe)
         expected_status = [(' M', os.path.relpath(recipefile, topleveldir)),
Signature · 1 line
1.7.9.5
#22 lore raw

PATCH 18/40 oeqa/selftest/layerappend: fix test if build directory is not inside COREBASE

In reply to Robert Yang

From: Paul Eggleton <[email protected]>

Fix test_layer_appends to work when build directory is not inside COREBASE.

Fixes [YOCTO #8639].

(From OE-Core master rev: 0f146e77655d153d3f9a59e489265450f08c6ad7)

---
 meta/lib/oeqa/selftest/layerappend.py |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
meta/lib/oeqa/selftest/layerappend.py +6 -3
index a82a6c8..4de5034 100644
@@ -46,10 +46,11 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
 
 SRC_URI_append += "file://appendtest.txt"
 """
-    layerappend = "BBLAYERS += \"COREBASE/meta-layertest0 COREBASE/meta-layertest1 COREBASE/meta-layertest2\""
+    layerappend = ''
 
     def tearDownLocal(self):
-        ftools.remove_from_file(self.builddir + "/conf/bblayers.conf", self.layerappend.replace("COREBASE", self.builddir + "/.."))
+        if self.layerappend:
+            ftools.remove_from_file(self.builddir + "/conf/bblayers.conf", self.layerappend)
 
     @testcase(1196)
     def test_layer_appends(self):
@@ -79,7 +80,9 @@ SRC_URI_append += "file://appendtest.txt"
                 with open(layer + "/recipes-test/layerappendtest/appendtest.txt", "w") as f:
                     f.write("Layer 2 test")
             self.track_for_cleanup(layer)
-        ftools.append_file(self.builddir + "/conf/bblayers.conf", self.layerappend.replace("COREBASE", self.builddir + "/.."))
+
+        self.layerappend = "BBLAYERS += \"{0}/meta-layertest0 {0}/meta-layertest1 {0}/meta-layertest2\"".format(corebase)
+        ftools.append_file(self.builddir + "/conf/bblayers.conf", self.layerappend)
         bitbake("layerappendtest")
         data = ftools.read_file(stagingdir + "/appendtest.txt")
         self.assertEqual(data, "Layer 2 test")
Signature · 1 line
1.7.9.5
#23 lore raw

PATCH 19/40 classes/metadata_scm: fix git errors showing up on non-git repositories

In reply to Robert Yang

From: Paul Eggleton <[email protected]>

Fixes the following error showing up for layers that aren't a git repo (or aren't parented by one):

fatal: Not a git repository (or any of the parent directories): .git

This was because we weren't intercepting stderr. We might as well just use bb.process.run() here which does that and returns stdout and stderr separately.

(This was a regression that came in with OE-Core revision 3aac11076e22ac4fea48f5404110bb959547a9fe).

Fixes [YOCTO #8661].

(From OE-Core master rev: f533c1bf4c6edbecc67f9e2c62fd475d64668e86)

---
 meta/classes/metadata_scm.bbclass |   20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)
meta/classes/metadata_scm.bbclass +10 -10
index 64465fa..0f7f423 100644
@@ -65,19 +65,19 @@ def base_get_metadata_svn_revision(path, d):
     return revision
 
 def base_get_metadata_git_branch(path, d):
-    import subprocess
+    import bb.process
 
     try:
-        return subprocess.check_output(["git", "rev-parse", "--abbrev-ref", "HEAD"],
-                                       cwd=path).strip()
-    except:
-        return "<unknown>"
+        rev, _ = bb.process.run('git rev-parse --abbrev-ref HEAD', cwd=path)
+    except bb.process.ExecutionError:
+        rev = '<unknown>'
+    return rev.strip()
 
 def base_get_metadata_git_revision(path, d):
-    import subprocess
+    import bb.process
 
     try:
-        return subprocess.check_output(["git", "rev-parse", "HEAD"],
-                                       cwd=path).strip()
-    except:
-        return "<unknown>"
+        rev, _ = bb.process.run('git rev-parse HEAD', cwd=path)
+    except bb.process.ExecutionError:
+        rev = '<unknown>'
+    return rev.strip()
Signature · 1 line
1.7.9.5
#24 lore raw

PATCH 20/40 classes/license: fix intermittent license collection warning

In reply to Robert Yang

From: Paul Eggleton <[email protected]>

Fixes the following warning sometimes appearing during image builds:

WARNING: The license listed ABC was not in the licenses collected for recipe xyz

The files being looked for here, which runs during do_rootfs, are written out by the do_populate_lic task for each recipe. However, there was no explicit dependency between do_rootfs and all of the do_populate_lic tasks to ensure they had run - only an implicit link via do_build, so it is possible that sometimes they had not depending on how the tasks were scheduled. Add an explicit set of dependencies to fix this.

(From OE-Core master rev: ef7dc532e800d9b170246550cbc8703adf624beb)

---
 meta/classes/license.bbclass |    1 +
 1 file changed, 1 insertion(+)
meta/classes/license.bbclass +1 -0
index c616a20..8ad4614 100644
@@ -474,6 +474,7 @@ do_populate_lic[sstate-inputdirs] = "${LICSSTATEDIR}"
 do_populate_lic[sstate-outputdirs] = "${LICENSE_DIRECTORY}/"
 
 ROOTFS_POSTPROCESS_COMMAND_prepend = "write_package_manifest; license_create_manifest; "
+do_rootfs[recrdeptask] += "do_populate_lic"
 
 do_populate_lic_setscene[dirs] = "${LICSSTATEDIR}/${PN}"
 do_populate_lic_setscene[cleandirs] = "${LICSSTATEDIR}"
Signature · 1 line
1.7.9.5
#25 lore raw

PATCH 21/40 classes/populate_sdk_ext: tidy up preparation log file writing

In reply to Robert Yang

From: Paul Eggleton <[email protected]>

Use a variable for the log file which includes the full path; this is not only neater but avoids us writing the first part (the output of oe-init-build-env) to a file in another directory since we are changing directory as part of this subshell.

(From OE-Core master rev: 001af71752a9e9aab460cbd49ed049e1eb726295)

---
 meta/classes/populate_sdk_ext.bbclass |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
meta/classes/populate_sdk_ext.bbclass +2 -1
index 249ec36..d368d4f 100644
@@ -249,7 +249,8 @@ sdk_ext_postinst() {
 		# dash which is /bin/sh on Ubuntu will not preserve the
 		# current working directory when first ran, nor will it set $1 when
 		# sourcing a script. That is why this has to look so ugly.
-		sh -c ". buildtools/environment-setup* > preparing_build_system.log && cd $target_sdk_dir/`dirname ${oe_init_build_env_path}` && set $target_sdk_dir && . $target_sdk_dir/${oe_init_build_env_path} $target_sdk_dir >> preparing_build_system.log && $target_sdk_dir/ext-sdk-prepare.sh $target_sdk_dir '${SDK_TARGETS}' >> preparing_build_system.log 2>&1" || { echo "SDK preparation failed: see `pwd`/preparing_build_system.log" ; exit 1 ; }
+		LOGFILE="$target_sdk_dir/preparing_build_system.log"
+		sh -c ". buildtools/environment-setup* > $LOGFILE && cd $target_sdk_dir/`dirname ${oe_init_build_env_path}` && set $target_sdk_dir && . $target_sdk_dir/${oe_init_build_env_path} $target_sdk_dir >> $LOGFILE && $target_sdk_dir/ext-sdk-prepare.sh $target_sdk_dir '${SDK_TARGETS}' >> $LOGFILE 2>&1" || { echo "SDK preparation failed: see $LOGFILE" ; exit 1 ; }
 	fi
 	rm -f $target_sdk_dir/ext-sdk-prepare.sh
 	echo done
Signature · 1 line
1.7.9.5
#26 lore raw

PATCH 22/40 classes/populate_sdk_ext: make it clear when SDK installation has failed

In reply to Robert Yang

From: Paul Eggleton <[email protected]>

When SDK preparation fails:

* Insert an ERROR: in front of the error message
* Add an error message to the environment setup script

Hopefully this should make it more obvious when this happens.

Fixes [YOCTO #8658].

(From OE-Core master rev: 105df569b3b1982005c2edb37f4690f9ba6bde35)

---
 meta/classes/populate_sdk_ext.bbclass |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/classes/populate_sdk_ext.bbclass +1 -1
index d368d4f..e806d32 100644
@@ -250,7 +250,7 @@ sdk_ext_postinst() {
 		# current working directory when first ran, nor will it set $1 when
 		# sourcing a script. That is why this has to look so ugly.
 		LOGFILE="$target_sdk_dir/preparing_build_system.log"
-		sh -c ". buildtools/environment-setup* > $LOGFILE && cd $target_sdk_dir/`dirname ${oe_init_build_env_path}` && set $target_sdk_dir && . $target_sdk_dir/${oe_init_build_env_path} $target_sdk_dir >> $LOGFILE && $target_sdk_dir/ext-sdk-prepare.sh $target_sdk_dir '${SDK_TARGETS}' >> $LOGFILE 2>&1" || { echo "SDK preparation failed: see $LOGFILE" ; exit 1 ; }
+		sh -c ". buildtools/environment-setup* > $LOGFILE && cd $target_sdk_dir/`dirname ${oe_init_build_env_path}` && set $target_sdk_dir && . $target_sdk_dir/${oe_init_build_env_path} $target_sdk_dir >> $LOGFILE && $target_sdk_dir/ext-sdk-prepare.sh $target_sdk_dir '${SDK_TARGETS}' >> $LOGFILE 2>&1" || { echo "ERROR: SDK preparation failed: see $LOGFILE"; echo "printf 'ERROR: this SDK wasn't fully installed and needs reinstalling\n'" >> $env_setup_script ; exit 1 ; }
 	fi
 	rm -f $target_sdk_dir/ext-sdk-prepare.sh
 	echo done
Signature · 1 line
1.7.9.5
#27 lore raw

PATCH 23/40 classes/populate_sdk_ext: tweak reporting of workspace exclusion

In reply to Robert Yang

From: Paul Eggleton <[email protected]>

If you have a local workspace layer enabled when building the extensible SDK, we explicitly exclude that from the SDK (mostly because the SDK has its own for the user to use). Adjust the message we print notifying the user of this so it's clear that we're excluding it from the SDK, and scale it back from a warning to a note printed with bb.plain().

(From OE-Core master rev: 90f46f74a088a7b965d2205eceb9eff6f276dd38)

---
 meta/classes/populate_sdk_ext.bbclass |    2 +-
 meta/lib/oe/copy_buildsystem.py       |    5 +++--
 2 files changed, 4 insertions(+), 3 deletions(-)
meta/classes/populate_sdk_ext.bbclass +1 -1
index e806d32..736f17f 100644
@@ -51,7 +51,7 @@ python copy_buildsystem () {
     core_meta_subdir = ''
 
     # Copy in all metadata layers + bitbake (as repositories)
-    buildsystem = oe.copy_buildsystem.BuildSystem(d)
+    buildsystem = oe.copy_buildsystem.BuildSystem('extensible SDK', d)
     baseoutpath = d.getVar('SDK_OUTPUT', True) + '/' + d.getVar('SDKPATH', True)
     layers_copied = buildsystem.copy_bitbake_and_layers(baseoutpath + '/layers')
 
meta/lib/oe/copy_buildsystem.py +3 -2
index 979578c..c0e7541 100644
@@ -14,8 +14,9 @@ def _smart_copy(src, dest):
         shutil.copymode(src, dest)
 
 class BuildSystem(object):
-    def __init__(self, d):
+    def __init__(self, context, d):
         self.d = d
+        self.context = context
         self.layerdirs = d.getVar('BBLAYERS', True).split()
 
     def copy_bitbake_and_layers(self, destdir):
@@ -38,7 +39,7 @@ class BuildSystem(object):
             if os.path.exists(layerconf):
                 with open(layerconf, 'r') as f:
                     if f.readline().startswith("# ### workspace layer auto-generated by devtool ###"):
-                        bb.warn("Skipping local workspace layer %s" % layer)
+                        bb.plain("NOTE: Excluding local workspace layer %s from %s" % (layer, self.context))
                         continue
 
             # If the layer was already under corebase, leave it there
Signature · 1 line
1.7.9.5
#28 lore raw

PATCH 24/40 classes/populate_sdk_ext: fail if SDK_ARCH != BUILD_ARCH

In reply to Robert Yang

From: Paul Eggleton <[email protected]>

The extensible SDK relies upon uninative, and with the way that uninative works, the build system architecture must be the same as the SDK architecture or the extensible SDK won't be usable. At some point in future hopefully we can remove this limitation, but until then it's disingenuous to allow this to build, so add a check to ensure SDK_ARCH == BUILD_ARCH and fail if it isn't.

(From OE-Core master rev: 9e30e849eda3b0a0c54d3f7ed0102760fdaef06c)

---
 meta/classes/populate_sdk_ext.bbclass |    5 +++++
 1 file changed, 5 insertions(+)
meta/classes/populate_sdk_ext.bbclass +5 -0
index 736f17f..dc05261 100644
@@ -261,6 +261,11 @@ SDK_POST_INSTALL_COMMAND_task-populate-sdk-ext = "${sdk_ext_postinst}"
 SDK_POSTPROCESS_COMMAND_prepend_task-populate-sdk-ext = "copy_buildsystem; install_tools; "
 
 fakeroot python do_populate_sdk_ext() {
+    # FIXME hopefully we can remove this restriction at some point, but uninative
+    # currently forces this upon us
+    if d.getVar('SDK_ARCH', True) != d.getVar('BUILD_ARCH', True):
+        bb.fatal('The extensible SDK can currently only be built for the same architecture as the machine being built on - SDK_ARCH is set to %s (likely via setting SDKMACHINE) which is different from the architecture of the build machine (%s). Unable to continue.' % (d.getVar('SDK_ARCH', True), d.getVar('BUILD_ARCH', True)))
+
     bb.build.exec_func("do_populate_sdk", d)
 }
 
Signature · 1 line
1.7.9.5
#29 lore raw

PATCH 25/40 populate_sdk_ext.bbclass: Be more permissive on the name of the buildtools

In reply to Robert Yang

From: Mark Hatle <[email protected]>

We want to support different names for the buildtools tarball. The name may not always be of the default oe-core format.

For instance, at Wind River we define the built-tools name to be:

${SDK_ARCH}-buildtools-nativesdk-standalone-${DISTRO_VERSION}

because thes standard SDK_NAME has additional information that is not relevant to the builtools tarball.

(From OE-Core master rev: b49c6f179b06a8b97106aa4c95f2cdb3c4dc0920)

---
 meta/classes/populate_sdk_ext.bbclass |    5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)
meta/classes/populate_sdk_ext.bbclass +1 -4
index dc05261..8601c78 100644
@@ -187,10 +187,7 @@ python copy_buildsystem () {
 }
 
 def extsdk_get_buildtools_filename(d):
-    # This is somewhat of a hack
-    localdata = bb.data.createCopy(d)
-    localdata.setVar('PN', 'buildtools-tarball')
-    return localdata.expand('${SDK_NAME}-buildtools-nativesdk-standalone-*.sh')
+    return '*-buildtools-nativesdk-standalone-*.sh'
 
 install_tools() {
 	install -d ${SDK_OUTPUT}/${SDKPATHNATIVE}${bindir_nativesdk}
Signature · 1 line
1.7.9.5
#30 lore raw

PATCH 26/40 toolchain-shar-relocate: don't assume last state of env_setup_script is good

In reply to Robert Yang

From: Jean-Francois Dagenais <[email protected]>

In the case where many environment-setup-* files exist, the incorrect filename might be lastly set in env_setup_script, which leads to incorrect behaviour for the initialization of native_sysroot.

The scenario I had was that our custom meta-toolchain-*.bb, which inherits populate_sdk, defined another environment-setup-* file to dump variable information for qt-creator. The file is named like so in order for the sdk shell script to pick it up and fix the SDK paths in the file. Since it (coincidentally) alphabetically comes after ...-core2, it was last set in env_setup_script and the grep OECORE_NATIVE_SYSROOT would simply be blank. The apparent symptom was "...relocate_sdk.py:
Argument list too long" since the find command would not be searching in the right path.

(From OE-Core master rev: a36469c97c9cb335de1e95dea5141038f337df95)

---
 meta/files/toolchain-shar-relocate.sh |    2 ++
 1 file changed, 2 insertions(+)
meta/files/toolchain-shar-relocate.sh +2 -0
index 4ef2927..d58e4ed 100644
@@ -1,3 +1,5 @@
+#reset the env_setup_script value to the proper value
+env_setup_script=$target_sdk_dir/environment-setup-@REAL_MULTIMACH_TARGET_SYS@
 # fix dynamic loader paths in all ELF SDK binaries
 native_sysroot=$($SUDO_EXEC cat $env_setup_script |grep 'OECORE_NATIVE_SYSROOT='|cut -d'=' -f2|tr -d '"')
 dl_path=$($SUDO_EXEC find $native_sysroot/lib -name "ld-linux*")
Signature · 1 line
1.7.9.5
#31 lore raw

PATCH 27/40 toolchain-shar-extract.sh: proper fix for additional env setup scripts

In reply to Robert Yang

From: Paul Eggleton <[email protected]>

buildtools-tarball uses a custom env setup script, which isn't named the same as the default; thus unfortunately OE-Core revision a36469c97c9cb335de1e95dea5141038f337df95 broke installation of buildtools-tarball. Revert that and implement a more robust mechanism.

(From OE-Core master rev: 00e081b81ba8118959b724269ba9d18d42aba8a4)

---
 meta/files/toolchain-shar-extract.sh  |   11 +++++++++++
 meta/files/toolchain-shar-relocate.sh |    2 --
 2 files changed, 11 insertions(+), 2 deletions(-)
meta/files/toolchain-shar-extract.sh +11 -0
index 98b9f1c..6af37b7 100644
@@ -169,9 +169,20 @@ echo "done"
 
 printf "Setting it up..."
 # fix environment paths
+real_env_setup_script=""
 for env_setup_script in `ls $target_sdk_dir/environment-setup-*`; do
+	if grep -q 'OECORE_NATIVE_SYSROOT=' $env_setup_script; then
+		# Handle custom env setup scripts that are only named
+		# environment-setup-* so that they have relocation
+		# applied - what we want beyond here is the main one
+		# rather than the one that simply sorts last
+		real_env_setup_script="$env_setup_script"
+	fi
 	$SUDO_EXEC sed -e "s:@SDKPATH@:$target_sdk_dir:g" -i $env_setup_script
 done
+if [ -n "$real_env_setup_script" ] ; then
+	env_setup_script="$real_env_setup_script"
+fi
 
 @SDK_POST_INSTALL_COMMAND@
 
meta/files/toolchain-shar-relocate.sh +0 -2
index d58e4ed..4ef2927 100644
@@ -1,5 +1,3 @@
-#reset the env_setup_script value to the proper value
-env_setup_script=$target_sdk_dir/environment-setup-@REAL_MULTIMACH_TARGET_SYS@
 # fix dynamic loader paths in all ELF SDK binaries
 native_sysroot=$($SUDO_EXEC cat $env_setup_script |grep 'OECORE_NATIVE_SYSROOT='|cut -d'=' -f2|tr -d '"')
 dl_path=$($SUDO_EXEC find $native_sysroot/lib -name "ld-linux*")
Signature · 1 line
1.7.9.5
#32 lore raw

PATCH 28/40 scripts/gen-lockedsig-cache: improve output

In reply to Robert Yang

From: Paul Eggleton <[email protected]>

* Print some status when running
* When incorrect number of arguments specified, print usage text

(From OE-Core master rev: ac38d245878b618ddf56f9a68834d344500e45a6)

---
 scripts/gen-lockedsig-cache |   13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)
scripts/gen-lockedsig-cache +10 -3
index 806c1e4..9c16506 100755
@@ -1,7 +1,4 @@
 #!/usr/bin/env python
-#
-# gen-lockedsig-cache <locked-sigs.inc> <input-cachedir> <output-cachedir>
-#
 
 import os
 import sys
@@ -18,14 +15,17 @@ def mkdir(d):
 
 if len(sys.argv) < 3:
     print("Incorrect number of arguments specified")
+    print("syntax: gen-lockedsig-cache <locked-sigs.inc> <input-cachedir> <output-cachedir>")
     sys.exit(1)
 
+print('Reading %s' % sys.argv[1])
 sigs = []
 with open(sys.argv[1]) as f:
     for l in f.readlines():
         if ":" in l:
             sigs.append(l.split(":")[2].split()[0])
 
+print('Gathering file list')
 files = set()
 for s in sigs:
     p = sys.argv[2] + "/" + s[:2] + "/*" + s + "*"
@@ -33,10 +33,13 @@ for s in sigs:
     p = sys.argv[2] + "/*/" + s[:2] + "/*" + s + "*"
     files |= set(glob.glob(p))
 
+print('Processing files')
 for f in files:
+    sys.stdout.write('Processing %s... ' % f)
     _, ext = os.path.splitext(f)
     if not ext in ['.tgz', '.siginfo', '.sig']:
         # Most likely a temp file, skip it
+        print('skipping')
         continue
     dst = f.replace(sys.argv[2], sys.argv[3])
     destdir = os.path.dirname(dst)
@@ -45,6 +48,10 @@ for f in files:
     if os.path.exists(dst):
         os.remove(dst)
     if (os.stat(f).st_dev == os.stat(destdir).st_dev):
+        print('linking')
         os.link(f, dst)
     else:
+        print('copying')
         shutil.copyfile(f, dst)
+
+print('Done!')
Signature · 1 line
1.7.9.5
#33 lore raw

PATCH 29/40 toolchain-shar-extract.sh: do not allow $ in paths for ext SDK

In reply to Robert Yang

From: Paul Eggleton <[email protected]>

If you put an $ character in the path, SDK installation fails during the preparation stage, so add this to the disallowed characters.

Fixes [YOCTO #8625].

(From OE-Core master rev: 654f4785f719552f4e78e14a5a901c07d00ce68d)

---
 meta/files/toolchain-shar-extract.sh |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
meta/files/toolchain-shar-extract.sh +2 -2
index 6af37b7..35d3c75 100644
@@ -101,9 +101,9 @@ fi
 
 if [ "$SDK_EXTENSIBLE" = "1" ]; then
 	# We're going to be running the build system, additional restrictions apply
-	if echo "$target_sdk_dir" | grep -q '[+\ @]'; then
+	if echo "$target_sdk_dir" | grep -q '[+\ @$]'; then
 		echo "The target directory path ($target_sdk_dir) contains illegal" \
-		     "characters such as spaces, @ or +. Abort!"
+		     "characters such as spaces, @, \$ or +. Abort!"
 		exit 1
 	fi
 else
Signature · 1 line
1.7.9.5
#34 lore raw

PATCH 30/40 devtool: include do_patch in SRCTREECOVEREDTASKS

In reply to Robert Yang

From: Tzu-Jung Lee <[email protected]>

The external source of kernel has been patched during the construction of git repository. Include the do_patch task in the SRCTREECOVEREDTASKS.

(From OE-Core master rev: 0731c5a9e98f7b7f6e5ada9bbb99acb3f5884516)

---
 scripts/lib/devtool/standard.py |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
scripts/lib/devtool/standard.py +1 -1
index 1285974..c5c647b 100644
@@ -593,7 +593,7 @@ def modify(args, config, basepath, workspace):
             f.write('EXTERNALSRC_BUILD_pn-%s = "%s"\n' % (pn, srctree))
 
         if bb.data.inherits_class('kernel', rd):
-            f.write('SRCTREECOVEREDTASKS = "do_validate_branches do_kernel_checkout do_fetch do_unpack"\n')
+            f.write('SRCTREECOVEREDTASKS = "do_validate_branches do_kernel_checkout do_fetch do_unpack do_patch"\n')
         if initial_rev:
             f.write('\n# initial_rev: %s\n' % initial_rev)
             for commit in commits:
Signature · 1 line
1.7.9.5
#35 lore raw

PATCH 31/40 devtool: upgrade: fix removing other recipes from workspace on reset

In reply to Robert Yang

From: Paul Eggleton <[email protected]>

If you did a "devtool add" followed by "devtool upgrade" and then did a "devtool reset" on the recipe you upgraded, the first recipe would also be deleted from the workspace - this was because we were erroneously adding the entire "recipes" subdirectory and its contents to be tracked for removal on reset. Remove the unnecessary call to os.path.dirname() that caused this.

(From OE-Core master rev: 65354e066f87df7d3138adceb22d6a05d1685904)

---
 scripts/lib/devtool/standard.py |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
scripts/lib/devtool/standard.py +1 -1
index c5c647b..d9b624d 100644
@@ -456,7 +456,7 @@ def _add_md5(config, recipename, filename):
             f.write('%s|%s|%s\n' % (recipename, os.path.relpath(fn, config.workspace_path), md5))
 
     if os.path.isdir(filename):
-        for root, _, files in os.walk(os.path.dirname(filename)):
+        for root, _, files in os.walk(filename):
             for f in files:
                 addfile(os.path.join(root, f))
     else:
Signature · 1 line
1.7.9.5
#36 lore raw

PATCH 32/40 devtool: upgrade: fix updating PV and SRCREV

In reply to Robert Yang

From: Paul Eggleton <[email protected]>

This code was clearly never tested. Fix the following issues:
* Actually set SRCREV if it's been specified
* Enable history tracking and reparse so that we handle if variables are set in an inc file next to the recipe
* Use a more accurate check for PV being in the recipe which will work if it's in an inc file next to the recipe

(From OE-Core master rev: 8b8f04226ebf464fa61c05ca7af7c6cbda392339)

---
 scripts/lib/devtool/upgrade.py |   34 ++++++++++++++++++++--------------
 1 file changed, 20 insertions(+), 14 deletions(-)
scripts/lib/devtool/upgrade.py +20 -14
index d387623..ace0b76 100644
@@ -91,15 +91,13 @@ def _remove_patch_dirs(recipefolder):
         for d in dirs:
             shutil.rmtree(os.path.join(root,d))
 
-def _recipe_contains(rf, var):
-    import re
-    found = False
-    with open(rf) as f:
-        for line in f:
-            if re.match("^%s.*=.*" % var, line):
-                found = True
-                break
-    return found
+def _recipe_contains(rd, var):
+    rf = rd.getVar('FILE', True)
+    varfiles = oe.recipeutils.get_var_files(rf, [var], rd)
+    for var, fn in varfiles.iteritems():
+        if fn and fn.startswith(os.path.dirname(rf) + os.sep):
+            return True
+    return False
 
 def _rename_recipe_dirs(oldpv, newpv, path):
     for root, dirs, files in os.walk(path):
@@ -257,7 +255,7 @@ def _extract_new_source(newpv, srctree, no_patch, srcrev, branch, keep_temp, tin
 
     return (rev, md5, sha256)
 
-def _create_new_recipe(newpv, md5, sha256, workspace, rd):
+def _create_new_recipe(newpv, md5, sha256, srcrev, workspace, tinfoil, rd):
     """Creates the new recipe under workspace"""
     crd = rd.createCopy()
 
@@ -271,8 +269,16 @@ def _create_new_recipe(newpv, md5, sha256, workspace, rd):
         newpv = oldpv
     fullpath = _rename_recipe_files(bpn, oldpv, newpv, path)
 
-    if _recipe_contains(fullpath, 'PV') and newpv != oldpv:
-        oe.recipeutils.patch_recipe(d, fullpath, {'PV':newpv})
+    newvalues = {}
+    if _recipe_contains(rd, 'PV') and newpv != oldpv:
+        newvalues['PV'] = newpv
+
+    if srcrev:
+        newvalues['SRCREV'] = srcrev
+
+    if newvalues:
+        rd = oe.recipeutils.parse_recipe(fullpath, None, tinfoil.config_data)
+        oe.recipeutils.patch_recipe(rd, fullpath, newvalues)
 
     if md5 and sha256:
         # Unfortunately, oe.recipeutils.patch_recipe cannot update flags.
@@ -294,7 +300,7 @@ def upgrade(args, config, basepath, workspace):
     if reason:
         raise DevtoolError(reason)
 
-    tinfoil = setup_tinfoil(basepath=basepath)
+    tinfoil = setup_tinfoil(basepath=basepath, tracking=True)
 
     rd = parse_recipe(config, tinfoil, args.recipename, True)
     if not rd:
@@ -316,7 +322,7 @@ def upgrade(args, config, basepath, workspace):
         rev2, md5, sha256 = _extract_new_source(args.version, args.srctree, args.no_patch,
                                                 args.srcrev, args.branch, args.keep_temp,
                                                 tinfoil, rd)
-        rf = _create_new_recipe(args.version, md5, sha256, config.workspace_path, rd)
+        rf = _create_new_recipe(args.version, md5, sha256, args.srcrev, config.workspace_path, tinfoil, rd)
     except bb.process.CmdError as e:
         _upgrade_error(e, rf, args.srctree)
     except DevtoolError as e:
Signature · 1 line
1.7.9.5
#37 lore raw

PATCH 33/40 devtool: upgrade: remove erroneous error when not renaming recipe

In reply to Robert Yang

From: Paul Eggleton <[email protected]>

If we're upgrading a git recipe the recipe file usually won't need renaming; for some unknown reason we were throwing an error here which isn't correct.

(From OE-Core master rev: 656348dff9bc9dd1cafc8fff11e5e374e3667f0f)

---
 scripts/lib/devtool/upgrade.py |    1 -
 1 file changed, 1 deletion(-)
scripts/lib/devtool/upgrade.py +0 -1
index ace0b76..f033fc8 100644
@@ -117,7 +117,6 @@ def _rename_recipe_file(bpn, oldpv, newpv, path):
         recipe = "%s_git.bb" % bpn
         if os.path.isfile(os.path.join(path, recipe)):
             newrecipe = recipe
-            raise DevtoolError("Original recipe not found on workspace")
     return os.path.join(path, newrecipe)
 
 def _rename_recipe_files(bpn, oldpv, newpv, path):
Signature · 1 line
1.7.9.5
#38 lore raw

PATCH 34/40 devtool: upgrade: fetch remote repository before checking out new revision

In reply to Robert Yang

From: Paul Eggleton <[email protected]>

If we're upgrading a recipe that fetches from git, and we've simply fetched a tarball of the repo instead of directly from the upstream repo (this can happen if you have PREMIRRORS set up as in poky with a core recipe, e.g. kernelshark) then we won't have any new revisions, and the checkout will fail with "fatal: reference is not a tree: <hash>". To avoid this, do a "git fetch" before checking out the new revision.

(From OE-Core master rev: c4daebf3fe797a8063dcbc2ab229be2fbedc8134)

---
 scripts/lib/devtool/upgrade.py |    1 +
 1 file changed, 1 insertion(+)
scripts/lib/devtool/upgrade.py +1 -0
index f033fc8..6bac44b 100644
@@ -199,6 +199,7 @@ def _extract_new_source(newpv, srctree, no_patch, srcrev, branch, keep_temp, tin
     if srcrev:
         rev = srcrev
     if uri.startswith('git://'):
+        __run('git fetch')
         __run('git checkout %s' % rev)
         __run('git tag -f devtool-base-new')
         md5 = None
Signature · 1 line
1.7.9.5
#39 lore raw

PATCH 35/40 toolchain-scripts.bbclass: unset command_not_found_handle

In reply to Robert Yang

From: Fang Jia <[email protected]>

On Ubuntu-system, When sourcing the env.sh from an exported sdk, and running a bogus linux command (for example "asd"), a core dump of python is usually generated.

Unset the command_not_found_handle to fix it.

(From OE-Core master rev: 473ccbebb426df757adb8955eaa5e191d88180d1)

---
 meta/classes/toolchain-scripts.bbclass |    1 +
 1 file changed, 1 insertion(+)
meta/classes/toolchain-scripts.bbclass +1 -0
index d0b2b91..ab4feb0 100644
@@ -32,6 +32,7 @@ toolchain_create_sdk_env_script () {
 	echo 'export OECORE_TARGET_SYSROOT="$SDKTARGETSYSROOT"' >> $script
 	echo "export OECORE_ACLOCAL_OPTS=\"-I $sdkpathnative/usr/share/aclocal\"" >> $script
 	echo "export PYTHONHOME=$sdkpathnative$prefix" >> $script
+	echo 'unset command_not_found_handle' >> $script
 
 	toolchain_shared_env_script
 }
Signature · 1 line
1.7.9.5
#40 lore raw

PATCH 36/40 autotools: Allow recipe-individual configure scripts

In reply to Robert Yang

From: Jens Rehsack <[email protected]>

OpenJDK-8 has it's configure script at common/autotools - which will cause the entire assumption of ${S}/configure is regenerated by autoreconf, intltoolize or alike fails heavily.

Also - other configure mechanisms can be supported more similar (see how pkgsrc manages different ones ...)

(From OE-Core master rev: fe506eddb0790e37ac1e50f37fa2e32ad81d5493)

---
 meta/classes/autotools.bbclass |   43 ++++++++++++++++++++--------------------
 1 file changed, 22 insertions(+), 21 deletions(-)
meta/classes/autotools.bbclass +22 -21
index 078f58f..d546a5c 100644
@@ -77,16 +77,20 @@ CONFIGUREOPTS = " --build=${BUILD_SYS} \
 		  ${@append_libtool_sysroot(d)}"
 CONFIGUREOPT_DEPTRACK ?= "--disable-dependency-tracking"
 
+AUTOTOOLS_SCRIPT_PATH ?= "${S}"
+CONFIGURE_SCRIPT ?= "${AUTOTOOLS_SCRIPT_PATH}/configure"
+
+AUTOTOOLS_AUXDIR ?= "${AUTOTOOLS_SCRIPT_PATH}"
 
 oe_runconf () {
-	cfgscript="${S}/configure"
+	cfgscript="${CONFIGURE_SCRIPT}"
 	if [ -x "$cfgscript" ] ; then
 		bbnote "Running $cfgscript ${CONFIGUREOPTS} ${EXTRA_OECONF} $@"
 		set +e
 		${CACHED_CONFIGUREVARS} $cfgscript ${CONFIGUREOPTS} ${EXTRA_OECONF} "$@"
 		if [ "$?" != "0" ]; then
 			echo "Configure failed. The contents of all config.log files follows to aid debugging"
-			find ${S} -ignore_readdir_race -name config.log -print -exec cat {} \;
+			find ${B} -ignore_readdir_race -name config.log -print -exec cat {} \;
 			die "oe_runconf failed"
 		fi
 		set -e
@@ -95,8 +99,6 @@ oe_runconf () {
 	fi
 }
 
-AUTOTOOLS_AUXDIR ?= "${S}"
-
 CONFIGURESTAMPFILE = "${WORKDIR}/configure.sstate"
 
 autotools_preconfigure() {
@@ -134,7 +136,7 @@ do_configure[postfuncs] += "autotools_postconfigure"
 ACLOCALDIR = "${B}/aclocal-copy"
 
 python autotools_copy_aclocals () {
-    s = d.getVar("S", True)
+    s = d.getVar("AUTOTOOLS_SCRIPT_PATH", True)
     if not os.path.exists(s + "/configure.in") and not os.path.exists(s + "/configure.ac"):
         if not d.getVar("AUTOTOOLS_COPYACLOCAL", False):
             return
@@ -228,13 +230,13 @@ autotools_do_configure() {
 	( for ac in `find ${S} -ignore_readdir_race -name configure.in -o -name configure.ac`; do
 		rm -f `dirname $ac`/configure
 		done )
-	if [ -e ${S}/configure.in -o -e ${S}/configure.ac ]; then
+	if [ -e ${AUTOTOOLS_SCRIPT_PATH}/configure.in -o -e ${AUTOTOOLS_SCRIPT_PATH}/configure.ac ]; then
 		olddir=`pwd`
-		cd ${S}
+		cd ${AUTOTOOLS_SCRIPT_PATH}
 		ACLOCAL="aclocal --system-acdir=${ACLOCALDIR}/"
 		if [ x"${acpaths}" = xdefault ]; then
 			acpaths=
-			for i in `find ${S} -ignore_readdir_race -maxdepth 2 -name \*.m4|grep -v 'aclocal.m4'| \
+			for i in `find ${AUTOTOOLS_SCRIPT_PATH} -ignore_readdir_race -maxdepth 2 -name \*.m4|grep -v 'aclocal.m4'| \
 				grep -v 'acinclude.m4' | grep -v 'aclocal-copy' | sed -e 's,\(.*/\).*$,\1,'|sort -u`; do
 				acpaths="$acpaths -I $i"
 			done
@@ -265,21 +267,20 @@ autotools_do_configure() {
 				bbnote Executing glib-gettextize --force --copy
 				echo "no" | glib-gettextize --force --copy
 			fi
-		else if grep "^[[:space:]]*AM_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then
+		elif grep "^[[:space:]]*AM_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then
 			# We'd call gettextize here if it wasn't so broken...
-				cp ${STAGING_DATADIR_NATIVE}/gettext/config.rpath ${AUTOTOOLS_AUXDIR}/
-				if [ -d ${S}/po/ ]; then
-					cp -f ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/po/
-					if [ ! -e ${S}/po/remove-potcdate.sin ]; then
-						cp ${STAGING_DATADIR_NATIVE}/gettext/po/remove-potcdate.sin ${S}/po/
-					fi
+			cp ${STAGING_DATADIR_NATIVE}/gettext/config.rpath ${AUTOTOOLS_AUXDIR}/
+			if [ -d ${S}/po/ ]; then
+				cp -f ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/po/
+				if [ ! -e ${S}/po/remove-potcdate.sin ]; then
+					cp ${STAGING_DATADIR_NATIVE}/gettext/po/remove-potcdate.sin ${S}/po/
 				fi
-				for i in gettext.m4 iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 nls.m4 po.m4 progtest.m4; do
-					for j in `find ${S} -ignore_readdir_race -name $i | grep -v aclocal-copy`; do
-						rm $j
-					done
-				done
 			fi
+			for i in gettext.m4 iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 nls.m4 po.m4 progtest.m4; do
+				for j in `find ${S} -ignore_readdir_race -name $i | grep -v aclocal-copy`; do
+					rm $j
+				done
+			done
 		fi
 		mkdir -p m4
 		if grep "^[[:space:]]*[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then
@@ -290,7 +291,7 @@ autotools_do_configure() {
 		ACLOCAL="$ACLOCAL" autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || die "autoreconf execution failed."
 		cd $olddir
 	fi
-	if [ -e ${S}/configure ]; then
+	if [ -e ${CONFIGURE_SCRIPT} ]; then
 		oe_runconf
 	else
 		bbnote "nothing to configure"
Signature · 1 line
1.7.9.5
#41 lore raw

PATCH 37/40 prelink: Fix various prelink issues on IA32, ARM, and MIPS.

In reply to Robert Yang

From: Mark Hatle <[email protected]>

Fix the following issues:

IA32 / ARM - Resync to glibc-2.22, fix a mismatch w/ glibc's ld.so MIPS - Ignore the new SHT_MIPS_ABIFLAGS
ARM - Fix missing ARM IFUNC support chunk

Also upstream prelink project no longer has a 'trunk' directory.

(From OE-Core master rev: c725328f2ab5c9b220c552ed37c0d24b098a218d)

---
 meta/recipes-devtools/prelink/prelink_git.bb |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
meta/recipes-devtools/prelink/prelink_git.bb +2 -2
index 79a5f501..e223ef6 100644
@@ -8,7 +8,7 @@ and executables, so that far fewer relocations need to be resolved at \
 runtime and thus programs come up faster."
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
-SRCREV = "cdee5a4dd226cc5e9f30f370067a9031f398ef3c"
+SRCREV = "927979bbd115eeb8a75db3231906ef6aca4c4eb6"
 PV = "1.0+git${SRCPV}"
 
 #
@@ -35,7 +35,7 @@ SRC_URI = "git://git.yoctoproject.org/prelink-cross.git;branch=cross_prelink \
 TARGET_OS_ORIG := "${TARGET_OS}"
 OVERRIDES_append = ":${TARGET_OS_ORIG}"
 
-S = "${WORKDIR}/git/trunk"
+S = "${WORKDIR}/git"
 
 inherit autotools 
 
Signature · 1 line
1.7.9.5
#42 lore raw

PATCH 38/40 gcc: Update default Power GCC settings to use secure-plt

In reply to Robert Yang

From: Mark Hatle <[email protected]>

The gcc default, bss-plt, will cause errors when using the prelinker. All other distributions that I am aware of are using the the secure-plt. For an explanation of the differences, the gcc docs:

Current PowerPC GCC accepts a `-msecure-plt' option that generates code capable of using a newer PLT and GOT layout that has the security advantage of no executable section ever needing to be writable and no writable section ever being executable. PowerPC ld will generate this layout, including stubs to access the PLT, if all input files (including startup and static libraries) were compiled with -msecure-plt'. --bss-plt' forces the old BSS PLT (and GOT layout) which can give slightly better performance.

The security of the new PLT and ability to run the prelinker outweigh any performance penalty.

The secure-plt is enabled by default. The old bss-plt can be enabled by selecting 'bssplt' in the DISTRO_FEATURES.

(From OE-Core master rev: 70c55aada1101a5c687cdaa79f370fa4530b39d9)

---
 meta/recipes-devtools/gcc/gcc-common.inc           |    5 +++++
 meta/recipes-devtools/gcc/gcc-configure-common.inc |    1 +
 meta/recipes-devtools/gcc/gcc-cross-initial.inc    |    1 +
 3 files changed, 7 insertions(+)
meta/recipes-devtools/gcc/gcc-common.inc +5 -0
index d63c07f..6f2f224 100644
@@ -25,6 +25,11 @@ def get_gcc_mips_plt_setting(bb, d):
         return "--with-mips-plt"
     return ""
 
+def get_gcc_ppc_plt_settings(bb, d):
+    if d.getVar('TRANSLATED_TARGET_ARCH', True) in [ 'powerpc' ] and not bb.utils.contains('DISTRO_FEATURES', 'bssplt', True, False, d):
+        return "--enable-secureplt"
+    return ""
+
 def get_long_double_setting(bb, d):
     if d.getVar('TRANSLATED_TARGET_ARCH', True) in [ 'powerpc', 'powerpc64' ] and d.getVar('TCLIBC', True) in [ 'uclibc', 'glibc' ]:
         return "--with-long-double-128"
meta/recipes-devtools/gcc/gcc-configure-common.inc +1 -0
index a14be73..cee6f4a 100644
@@ -47,6 +47,7 @@ EXTRA_OECONF = "\
     ${EXTRA_OECONF_GCC_FLOAT} \
     ${EXTRA_OECONF_PATHS} \
     ${@get_gcc_mips_plt_setting(bb, d)} \
+    ${@get_gcc_ppc_plt_settings(bb, d)} \
     ${@get_long_double_setting(bb, d)} \
     ${@get_gcc_multiarch_setting(bb, d)} \
 "
meta/recipes-devtools/gcc/gcc-cross-initial.inc +1 -0
index 7197447..c0fa139 100644
@@ -26,6 +26,7 @@ EXTRA_OECONF = "\
     ${EXTRA_OECONF_INITIAL} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '--with-ld=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}ld.bfd', '', d)} \
     ${EXTRA_OECONF_GCC_FLOAT} \
+    ${@get_gcc_ppc_plt_settings(bb, d)} \
 "
 
 EXTRA_OECONF += "--with-native-system-header-dir=${SYSTEMHEADERS}"
Signature · 1 line
1.7.9.5
#43 lore raw

PATCH 39/40 glibc: Fix ld.so / prelink interface for ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA

In reply to Robert Yang

From: Mark Hatle <[email protected]>

A bug in glibc 2.22's ld.so interface for the prelink support causes the displayed values to be incorrect. The included path fixes this issue.

Clear ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA for prelink

prelink runs ld.so with the environment variable LD_TRACE_PRELINKING set to dump the relocation type class from _dl_debug_bindings. prelink has the following relocation type classes:

where ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA has a conflict with RTYPE_CLASS_TLS.

Since prelink doesn't use ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA, we should clear the ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA bit when the DL_DEBUG_PRELINK bit is set.

(From OE-Core master rev: 12c86bdcc60c54e587a896b0dceb8bb6cc9ff7e3)

---
 ...TYPE_CLASS_EXTERN_PROTECTED_DATA-for-prel.patch |   84 ++++++++++++++++++++
 meta/recipes-core/glibc/glibc_2.22.bb              |    1 +
 2 files changed, 85 insertions(+)
 create mode 100644 meta/recipes-core/glibc/glibc/0028-Clear-ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA-for-prel.patch
meta/recipes-core/glibc/glibc/0028-Clear-ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA-for-prel.patch new file +84 -0
new file mode 100644
index 0000000..3455df1
@@ -0,0 +1,84 @@
+From cadaf1336332ca7bcdfe4a400776e5782a20e26d Mon Sep 17 00:00:00 2001
+From: "H.J. Lu" <[email protected]>
+Date: Wed, 28 Oct 2015 07:49:44 -0700
+Subject: [PATCH] Keep only ELF_RTYPE_CLASS_{PLT|COPY} bits for prelink
+
+prelink runs ld.so with the environment variable LD_TRACE_PRELINKING
+set to dump the relocation type class from _dl_debug_bindings.  prelink
+has the following relocation type classes:
+
+ #define RTYPE_CLASS_VALID       8
+ #define RTYPE_CLASS_PLT         (8|1)
+ #define RTYPE_CLASS_COPY        (8|2)
+ #define RTYPE_CLASS_TLS         (8|4)
+
+where ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA has a conflict with
+RTYPE_CLASS_TLS.
+
+Since prelink only uses ELF_RTYPE_CLASS_PLT and ELF_RTYPE_CLASS_COPY
+bits, we should clear the other bits when the DL_DEBUG_PRELINK bit is
+set.
+
+	[BZ #19178]
+	* elf/dl-lookup.c (RTYPE_CLASS_VALID): New.
+	(RTYPE_CLASS_PLT): Likewise.
+	(RTYPE_CLASS_COPY): Likewise.
+	(RTYPE_CLASS_TLS): Likewise.
+	(_dl_debug_bindings): Use RTYPE_CLASS_TLS and RTYPE_CLASS_VALID
+	to set relocation type class for DL_DEBUG_PRELINK.  Keep only
+	ELF_RTYPE_CLASS_PLT and ELF_RTYPE_CLASS_COPY bits for
+	DL_DEBUG_PRELINK.
+
+Upstream-Status: submitted (https://sourceware.org/bugzilla/show_bug.cgi?id=19178)
+
+Signed-off-by: Mark Hatle <[email protected]>
+---
+ elf/dl-lookup.c | 21 +++++++++++++++++++--
+ 1 file changed, 19 insertions(+), 2 deletions(-)
+
+diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c
+index 581fb20..6ae6cc3 100644
+--- a/elf/dl-lookup.c
++++ b/elf/dl-lookup.c
+@@ -1016,6 +1016,18 @@ _dl_debug_bindings (const char *undef_name, struct link_map *undef_map,
+ #ifdef SHARED
+   if (GLRO(dl_debug_mask) & DL_DEBUG_PRELINK)
+     {
++/* ELF_RTYPE_CLASS_XXX must match RTYPE_CLASS_XXX used by prelink with
++   LD_TRACE_PRELINKING.  */
++#define RTYPE_CLASS_VALID	8
++#define RTYPE_CLASS_PLT		(8|1)
++#define RTYPE_CLASS_COPY	(8|2)
++#define RTYPE_CLASS_TLS		(8|4)
++#if ELF_RTYPE_CLASS_PLT != 0 && ELF_RTYPE_CLASS_PLT != 1
++# error ELF_RTYPE_CLASS_PLT must be 0 or 1!
++#endif
++#if ELF_RTYPE_CLASS_COPY != 0 && ELF_RTYPE_CLASS_COPY != 2
++# error ELF_RTYPE_CLASS_COPY must be 0 or 2!
++#endif
+       int conflict = 0;
+       struct sym_val val = { NULL, NULL };
+ 
+@@ -1071,12 +1083,17 @@ _dl_debug_bindings (const char *undef_name, struct link_map *undef_map,
+ 
+       if (value->s)
+ 	{
++	  /* Keep only ELF_RTYPE_CLASS_PLT and ELF_RTYPE_CLASS_COPY
++	     bits since since prelink only uses them.  */
++	  type_class &= ELF_RTYPE_CLASS_PLT | ELF_RTYPE_CLASS_COPY;
+ 	  if (__glibc_unlikely (ELFW(ST_TYPE) (value->s->st_info)
+ 				== STT_TLS))
+-	    type_class = 4;
++	    /* Clear the RTYPE_CLASS_VALID bit in RTYPE_CLASS_TLS.  */
++	    type_class = RTYPE_CLASS_TLS & ~RTYPE_CLASS_VALID;
+ 	  else if (__glibc_unlikely (ELFW(ST_TYPE) (value->s->st_info)
+ 				     == STT_GNU_IFUNC))
+-	    type_class |= 8;
++	    /* Set the RTYPE_CLASS_VALID bit.  */
++	    type_class |= RTYPE_CLASS_VALID;
+ 	}
+ 
+       if (conflict
+-- 
+1.9.3
+
meta/recipes-core/glibc/glibc_2.22.bb +1 -0
index 71ff824..c1f6b4e 100644
@@ -40,6 +40,7 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
            file://0027-eglibc-use-option-groups-Conditionally-exclude-c-tes.patch \
            file://nscd-no-bash.patch \
            file://strcoll-Remove-incorrect-STRDIFF-based-optimization-.patch \
+           file://0028-Clear-ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA-for-prel.patch \
 "
 
 SRC_URI += "\
Signature · 1 line
1.7.9.5
#44 lore raw

PATCH 40/40 cairo: fix license for cairo-script-interpreter

In reply to Robert Yang

From: Andre McCurdy <[email protected]>

Without an explicit license, cairo-script-interpreter inherits the default LICENSE and isn't packaged in builds which blacklist GPLv3.

(From OE-Core master rev: cb8f84218b065fed88a8c36f3c78065e8ab726bf)

---
 meta/recipes-graphics/cairo/cairo.inc |    3 +++
 1 file changed, 3 insertions(+)
meta/recipes-graphics/cairo/cairo.inc +3 -0
index 1e45318..45651ba 100644
@@ -9,11 +9,14 @@ Extension."
 HOMEPAGE = "http://cairographics.org"
 BUGTRACKER = "http://bugs.freedesktop.org"
 SECTION = "libs"
+
 LICENSE = "MPL-1 & LGPLv2.1 & GPLv3+"
 LICENSE_${PN} = "MPL-1 & LGPLv2.1"
 LICENSE_${PN}-dev = "MPL-1 & LGPLv2.1"
 LICENSE_${PN}-gobject = "MPL-1 & LGPLv2.1"
+LICENSE_${PN}-script-interpreter = "MPL-1 & LGPLv2.1"
 LICENSE_${PN}-perf-utils = "GPLv3+"
+
 X11DEPENDS = "virtual/libx11 libsm libxrender libxext"
 DEPENDS = "libpng fontconfig pixman glib-2.0 zlib"
 
Signature · 1 line
1.7.9.5
#45 lore raw
In reply to Robert Yang
Quoted 8 lines · Robert Yang

The following changes since commit 224bcc2ead676600bcd9e290ed23d9b2ed2f481e:

   rpcbind: Security Advisory - rpcbind - CVE-2015-7236 (2015-12-08 00:18:12 -0800)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib rbt/jethro-next
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=rbt/jethro-next

Appended a patch to the thread, there are 41 commits in the repo.

commit c0a13c410393ce51a2a55e36a0913c0136058bdc

Author: Hongxu Jia <[email protected]>
Date:   Mon Nov 2 16:33:27 2015 +0800

logrotate: do not move binary logrotate to /usr/bin

// Robert

Quoted 124 lines

Andre McCurdy (2):
directfb.inc: force bfd linker for armv7a
cairo: fix license for cairo-script-interpreter

Fang Jia (1):
toolchain-scripts.bbclass: unset command_not_found_handle

Jean-Francois Dagenais (1):
toolchain-shar-relocate: don't assume last state of env_setup_script
is good

Jens Rehsack (1):
autotools: Allow recipe-individual configure scripts

Khem Raj (1):
libxcb: Add a workaround for gcc5 bug on mips

Li Xin (1):
glibc: Backported a patch to fix glibc's bug(18589)

Mark Hatle (4):
populate_sdk_ext.bbclass: Be more permissive on the name of the
buildtools
prelink: Fix various prelink issues on IA32, ARM, and MIPS.
gcc: Update default Power GCC settings to use secure-plt
glibc: Fix ld.so / prelink interface for
ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA

Martin Jansa (9):
icu: force arm mode
guile, mailx, gcc, opensp, gstreamer1.0-libav, libunwind: disable
thumb where it fails for qemuarm
libunwind: fix build for qemuarm gstreamer1.0-plugins-{base,good}: update PACKAGECONFIGs gstreamer1.0-plugins-bad: fix dependencies for uvch264 PACKAGECONFIG gstreamer1.0-plugins-good: fix PACKAGECONFIG for gudev and add one
for v4l2 and libv4l2
gst-plugins-bad: add PACKAGECONFIGs for voamrwbenc, voaacenc,
resindvd
package_manager.py: define info_dir and status_file when OPKGLIBDIR
isn't the default
texinfo: don't create dependency on INHERIT variable

Paul Eggleton (16):
classes/distrodata: split SRC_URI properly before determining type oeqa/selftest/devtool: fix test if build directory is not inside
COREBASE
oeqa/selftest/layerappend: fix test if build directory is not inside
COREBASE
classes/metadata_scm: fix git errors showing up on non-git
repositories
classes/license: fix intermittent license collection warning classes/populate_sdk_ext: tidy up preparation log file writing classes/populate_sdk_ext: make it clear when SDK installation has
failed
classes/populate_sdk_ext: tweak reporting of workspace exclusion classes/populate_sdk_ext: fail if SDK_ARCH != BUILD_ARCH toolchain-shar-extract.sh: proper fix for additional env setup
scripts
scripts/gen-lockedsig-cache: improve output toolchain-shar-extract.sh: do not allow $ in paths for ext SDK
devtool: upgrade: fix removing other recipes from workspace on reset
devtool: upgrade: fix updating PV and SRCREV
devtool: upgrade: remove erroneous error when not renaming recipe
devtool: upgrade: fetch remote repository before checking out new
revision

Randy Witt (1):
uninative.bbclass: Choose the correct loader based on BUILD_ARCH

Ross Burton (2):
libsdl2: require GLES when building Wayland support
openssl: sanity check that the bignum module is present

Tzu-Jung Lee (1):
devtool: include do_patch in SRCTREECOVEREDTASKS

  meta/classes/autotools.bbclass                     |   43 +--
  meta/classes/distrodata.bbclass                    |    4 +-
  meta/classes/license.bbclass                       |    1 +
  meta/classes/metadata_scm.bbclass                  |   20 +-
  meta/classes/populate_sdk_ext.bbclass              |   15 +-
  meta/classes/toolchain-scripts.bbclass             |    1 +
  meta/classes/uninative.bbclass                     |    2 +-
  meta/files/toolchain-shar-extract.sh               |   15 +-
  meta/lib/oe/copy_buildsystem.py                    |    5 +-
  meta/lib/oe/package_manager.py                     |   19 ++
  meta/lib/oeqa/selftest/devtool.py                  |    2 +-
  meta/lib/oeqa/selftest/layerappend.py              |    9 +-
  .../recipes-connectivity/openssl/openssl_1.0.2d.bb |   10 +
  ...TYPE_CLASS_EXTERN_PROTECTED_DATA-for-prel.patch |   84 +++++
  ...ove-incorrect-STRDIFF-based-optimization-.patch |  323 ++++++++++++++++++++
  meta/recipes-core/glibc/glibc_2.22.bb              |    2 +
  meta/recipes-devtools/gcc/gcc-common.inc           |    5 +
  meta/recipes-devtools/gcc/gcc-configure-common.inc |    1 +
  meta/recipes-devtools/gcc/gcc-cross-initial.inc    |    1 +
  meta/recipes-devtools/gcc/gcc_4.9.bb               |    5 +-
  meta/recipes-devtools/guile/guile_2.0.11.bb        |    4 +
  meta/recipes-devtools/opensp/opensp_1.5.2.bb       |    4 +
  meta/recipes-devtools/prelink/prelink_git.bb       |    4 +-
  meta/recipes-extended/mailx/mailx_12.5-5.bb        |    5 +
  meta/recipes-extended/texinfo/texinfo_6.0.bb       |    2 +-
  meta/recipes-graphics/cairo/cairo.inc              |    3 +
  meta/recipes-graphics/directfb/directfb.inc        |    3 +
  meta/recipes-graphics/libsdl2/libsdl2_2.0.3.bb     |    2 +-
  meta/recipes-graphics/xorg-lib/libxcb.inc          |    4 +-
  .../libxcb/gcc-mips-pr68302-mips-workaround.patch  |   22 ++
  .../gstreamer/gstreamer1.0-libav_1.4.5.bb          |    3 +
  .../gstreamer/gstreamer1.0-plugins-bad.inc         |   15 +-
  .../gstreamer/gstreamer1.0-plugins-base.inc        |    7 +-
  .../gstreamer/gstreamer1.0-plugins-good.inc        |   14 +-
  meta/recipes-support/icu/icu_55.1.bb               |    4 +
  ...Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch |   61 ++++
  meta/recipes-support/libunwind/libunwind_1.1.bb    |    5 +
  scripts/gen-lockedsig-cache                        |   13 +-
  scripts/lib/devtool/standard.py                    |    4 +-
  scripts/lib/devtool/upgrade.py                     |   36 ++-
  40 files changed, 686 insertions(+), 96 deletions(-)

create mode 100644 meta/recipes-core/glibc/glibc/0028-Clear-ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA-for-prel.patch create mode 100644 meta/recipes-core/glibc/glibc/strcoll-Remove-incorrect-STRDIFF-based-optimization-.patch create mode 100644 meta/recipes-graphics/xorg-lib/libxcb/gcc-mips-pr68302-mips-workaround.patch create mode 100644 meta/recipes-support/libunwind/libunwind-1.1/Add-AO_REQUIRE_CAS-to-fix-build-on-ARM-v6.patch