Skip to contentSkip to conversation

Various Patches

GIT PULL Saul Wold 1 participant 7 messages Apr 9, 2012

lore
Share & tools
lore

Saul Wold

author
#0 lore raw

Richard,

This is a set patches to address various 1.2 bugs along with a change to the create-pull-request script from Darren.

Please review the package.bbclass change, seems correct to me.

Thanks
Sau!

The following changes since commit 1a82989345fb98becb487d270fd93a5e6dffeb47:

runqemu-internal: Add console=tty for qemuppc and NFS (2012-04-06 01:12:15 +0100)

are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib sgw/stage
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=oe-mut

Andrei Gherzan (1):
package.bbclass: needs_ldconfig from linux_so is needed in global
namespace

Darren Hart (2):
create-pull-request: Assume remote branch from local branch
grub-efi: Include GPT partition EXT FS support

Joshua Lock (1):
mesa-common: package gl.pc in libgl-dev

Lianhao Lu (1):
python: multilib header support.

Zhai Edwin (1):
qemu: Fix gl failure from 64b target on 32b host

 meta/classes/package.bbclass                       |    4 +-
 meta/recipes-bsp/grub/grub-efi-native_1.99.bb      |    4 +-
 .../python/python-2.7-manifest.inc                 |    2 +-
 meta/recipes-devtools/python/python.inc            |    2 +-
 meta/recipes-devtools/python/python_2.7.2.bb       |    4 +-
 .../qemu/qemu-0.15.1/opengl-args-copy-fix.patch    |   66 ++++++++++++++++++++
 meta/recipes-devtools/qemu/qemu_0.15.1.bb          |    3 +-
 meta/recipes-graphics/mesa/mesa-common.inc         |    2 +-
 scripts/contrib/python/generate-manifest-2.7.py    |    2 +-
 scripts/create-pull-request                        |   11 +++-
 10 files changed, 88 insertions(+), 12 deletions(-)
 create mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/opengl-args-copy-fix.patch
Signature · 1 line
1.7.7.6
author
#1 lore raw

[CONSOLIDATED PULL 1/6] create-pull-request: Assume remote branch from local branch

From: Darren Hart <[email protected]>

It is common to use the same remote branch name as the local branch name. In this case, it would be nice not to have to specify the remote branch name.

Make the -b argument optional and assume the remote branch is the same name as the local branch. Print a NOTE to this effect so as not to catch the user by surprise:

NOTE: Assuming remote branch 'notthere', use -b to override.

If the remote branch doesn't exist, a WARNING is displayed just as if the user had used -b to specify a non-existent branch:

WARNING: Branch 'notthere' was not found on the contrib git tree.
Please check your remote and branch parameter before sending.

---
 scripts/create-pull-request |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)
scripts/create-pull-request +8 -3
index 600fa7a..9a8913d 100755
@@ -34,8 +34,8 @@ RFC=0
 usage() {
 CMD=$(basename $0)
 cat <<EOM
-Usage: $CMD [-h] [-o output_dir] [-m msg_body_file] [-s subject] [-r relative_to] [-i commit_id] -u remote -b branch
-  -b branch           Branch name in the specified remote
+Usage: $CMD [-h] [-o output_dir] [-m msg_body_file] [-s subject] [-r relative_to] [-i commit_id] -u remote [-b branch]
+  -b branch           Branch name in the specified remote (default: current branch)
   -c                  Create an RFC (Request for Comment) patch series
   -h                  Display this help message
   -i commit_id        Ending commit (default: HEAD)
@@ -120,7 +120,12 @@ while getopts "b:chi:m:o:p:r:s:u:" OPT; do
 	esac
 done
 
-if [ -z "$BRANCH" ] || [ -z "$REMOTE_URL" ]; then
+if [ -z "$BRANCH" ]; then
+	BRANCH=$(git branch | grep -e "^\* " | cut -d' ' -f2)
+	echo "NOTE: Assuming remote branch '$BRANCH', use -b to override."
+fi
+	
+if [ -z "$REMOTE_URL" ]; then
 	usage
 	exit 1
 fi
Signature · 1 line
1.7.7.6
author
#2 lore raw

[CONSOLIDATED PULL 2/6] mesa-common: package gl.pc in libgl-dev

In reply to Saul Wold

From: Joshua Lock <[email protected]>

gl.pc should be packaged in libgl-dev not the mesa-dev package

Fixes [YOCTO #2059]

---
 meta/recipes-graphics/mesa/mesa-common.inc |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
meta/recipes-graphics/mesa/mesa-common.inc +1 -1
index 59e8e64..2b90aed 100644
@@ -46,7 +46,7 @@ FILES_libglu = "${libdir}/libGLU.so.*"
 FILES_libosmesa = "${libdir}/libOSMesa.so.*"
 
 FILES_libegl-dev = "${libdir}/libEGL.* ${includedir}/EGL"
-FILES_libgl-dev = "${libdir}/libGL.* ${includedir}/GL"
+FILES_libgl-dev = "${libdir}/libGL.* ${includedir}/GL ${libdir}/pkgconfig/gl.pc"
 FILES_libglu-dev = "${libdir}/libGLU.* ${includedir}/GL/glu*.h"
 FILES_libosmesa-dev = "${libdir}/libOSMesa.* ${includedir}/osmesa.h"
 
Signature · 1 line
1.7.7.6
author
#3 lore raw

[CONSOLIDATED PULL 3/6] python: multilib header support.

In reply to Saul Wold

From: Lianhao Lu <[email protected]>

Add intercept multilib header for pyconfig.h in python. This is part of the bug fixing [YOCTO #2216].

---
 .../python/python-2.7-manifest.inc                 |    2 +-
 meta/recipes-devtools/python/python.inc            |    2 +-
 meta/recipes-devtools/python/python_2.7.2.bb       |    4 +++-
 scripts/contrib/python/generate-manifest-2.7.py    |    2 +-
 4 files changed, 6 insertions(+), 4 deletions(-)
meta/recipes-devtools/python/python-2.7-manifest.inc +1 -1
index ca01553..1e16c6b 100644
@@ -40,7 +40,7 @@ FILES_${PN}-compression="${libdir}/python2.7/gzip.* ${libdir}/python2.7/zipfile.
 DESCRIPTION_${PN}-core="Python Interpreter and core modules (needed!)"
 RDEPENDS_${PN}-core="${PN}-lang ${PN}-re"
 FILES_${PN}-core="${libdir}/python2.7/__future__.* ${libdir}/python2.7/_abcoll.* ${libdir}/python2.7/abc.* ${libdir}/python2.7/copy.* ${libdir}/python2.7/copy_reg.* ${libdir}/python2.7/ConfigParser.* ${libdir}/python2.7/genericpath.* ${libdir}/python2.7/getopt.* ${libdir}/python2.7/linecache.* ${libdir}/python2.7/new.* ${libdir}/python2.7/os.* ${libdir}/python2.7/posixpath.* ${libdir}/python2.7/struct.* ${libdir}/python2.7/warnings.* ${libdir}/python2.7/site.* ${libdir}/python2.7/stat.* ${libdir}/python2.7/UserDict.* ${libdir}/python2.7/UserList.* ${libdir}/python2.7/UserString.* ${libdir}/python2.7/lib-dynload/binascii.so ${libdir}/python2.7/lib-dynload/_struct.so ${libdir}/python2.7/lib-dynload/time.so ${libdir}/python2.7/lib-dynload/xreadlines.so \
-${libdir}/python2.7/types.* ${libdir}/python2.7/platform.* ${bindir}/python* ${libdir}/python2.7/_weakrefset.* ${libdir}/python2.7/sysconfig.* ${libdir}/python2.7/config/Makefile ${includedir}/python${PYTHON_MAJMIN}/pyconfig.h ${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py "
+${libdir}/python2.7/types.* ${libdir}/python2.7/platform.* ${bindir}/python* ${libdir}/python2.7/_weakrefset.* ${libdir}/python2.7/sysconfig.* ${libdir}/python2.7/config/Makefile ${includedir}/python${PYTHON_MAJMIN}/pyconfig*.h ${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py "
 
 DESCRIPTION_${PN}-crypt="Python Basic Cryptographic and Hashing Support"
 RDEPENDS_${PN}-crypt="${PN}-core"
meta/recipes-devtools/python/python.inc +1 -1
index aaf11ac..2f17b00 100644
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.python.org"
 LICENSE = "PSFv2"
 SECTION = "devel/python"
 # bump this on every change in contrib/python/generate-manifest-2.7.py
-INC_PR = "r1"
+INC_PR = "r2"
 
 LIC_FILES_CHKSUM = "file://LICENSE;md5=2dffb81509b47974467ea23409909b1c"
 
meta/recipes-devtools/python/python_2.7.2.bb +3 -1
index 8cf45da..49ba13c 100644
@@ -25,7 +25,7 @@ SRC_URI += "\
 
 S = "${WORKDIR}/Python-${PV}"
 
-inherit autotools
+inherit autotools multilib_header
 
 # The 3 lines below are copied from the libffi recipe, ctypes ships its own copy of the libffi sources
 #Somehow gcc doesn't set __SOFTFP__ when passing -mfloatabi=softp :(
@@ -110,6 +110,8 @@ do_install() {
 	if [ -e ${WORKDIR}/sitecustomize.py ]; then
 		install -m 0644 ${WORKDIR}/sitecustomize.py ${D}/${libdir}/python${PYTHON_MAJMIN}
 	fi
+
+	oe_multilib_header python${PYTHON_MAJMIN}/pyconfig.h
 }
 
 SSTATE_SCAN_FILES += "Makefile"
scripts/contrib/python/generate-manifest-2.7.py +1 -1
index 267d678..7b43137 100755
@@ -169,7 +169,7 @@ if __name__ == "__main__":
     "lib-dynload/binascii.so lib-dynload/_struct.so lib-dynload/time.so " +
     "lib-dynload/xreadlines.so types.* platform.* ${bindir}/python* "  + 
     "_weakrefset.* sysconfig.* config/Makefile " +
-    "${includedir}/python${PYTHON_MAJMIN}/pyconfig.h " +
+    "${includedir}/python${PYTHON_MAJMIN}/pyconfig*.h " +
     "${libdir}/python${PYTHON_MAJMIN}/sitecustomize.py ")
 
     m.addPackage( "${PN}-dev", "Python Development Package", "${PN}-core",
Signature · 1 line
1.7.7.6
author
#4 lore raw

[CONSOLIDATED PULL 4/6] qemu: Fix gl failure from 64b target on 32b host

In reply to Saul Wold

From: Zhai Edwin <[email protected]>

Data from 64b target is truncated by 32b host. This patch makes type of data buf in host same as target.

[YOCTO #2221] got fixed.

[Bumped PR - sgw]

---
 .../qemu/qemu-0.15.1/opengl-args-copy-fix.patch    |   66 ++++++++++++++++++++
 meta/recipes-devtools/qemu/qemu_0.15.1.bb          |    3 +-
 2 files changed, 68 insertions(+), 1 deletions(-)
 create mode 100644 meta/recipes-devtools/qemu/qemu-0.15.1/opengl-args-copy-fix.patch
meta/recipes-devtools/qemu/qemu-0.15.1/opengl-args-copy-fix.patch new file +66 -0
new file mode 100644
index 0000000..ddf4e4a
@@ -0,0 +1,66 @@
+This patch fix GL application failure from 64b target on 32b host
+
+64b target produce 64b args buffer, but qemu parse it as 32b and get wrong
+data. To avoid this, the type of args buffer in qemu should be same as target,
+that is, target_phys_addr_t. The only potential issue is that we need copy
+the data in buffer one by one, or else data corruption when 32b/64b for
+target/host combination. 
+
+Upstream-Status: Inappropriate [other] - depends on qemu gl patch
+
+Signed-off-by: Zhai Edwin <[email protected]>
+
+Index: qemu-0.15.1/target-i386/opengl_func.h
+===================================================================
+--- qemu-0.15.1.orig/target-i386/opengl_func.h	2012-04-06 10:00:08.000000000 +0800
++++ qemu-0.15.1/target-i386/opengl_func.h	2012-04-06 10:47:38.000000000 +0800
+@@ -25,10 +25,10 @@
+ #include "mesa_gl.h"
+ #include "mesa_glext.h"
+ 
+-/* Argument list are internally of a type that can hold a target pointer
+- * or a host pointer. If 32b target runs on 64b host, it should be big enough
+- * to hold host pointer */
+-typedef long unsigned int arg_t;
++/* Argument list are internally of a type that point to a buffer passed from
++ * target. It should have same type as target, so that we can support 32b
++ * target on 64b host, and vice versa */
++typedef target_phys_addr_t arg_t;
+ 
+ enum {
+     TYPE_NONE,
+Index: qemu-0.15.1/Makefile.target
+===================================================================
+--- qemu-0.15.1.orig/Makefile.target	2012-04-06 10:00:08.000000000 +0800
++++ qemu-0.15.1/Makefile.target	2012-04-06 10:00:08.000000000 +0800
+@@ -128,7 +128,7 @@
+ gl_beginend.h: ../target-i386/beginend_funcs.sh
+ 	$< > $@
+ opengl_exec.o : opengl_exec.c server_stub.c gl_func.h opengl_func.h gl_beginend.h
+-	$(CC) $(GL_CFLAGS) $(DEFINES) -c -o $@ $< -I. -I../target-i386
++	$(CC) $(GL_CFLAGS) $(DEFINES) -c -o $@ $< -I.. -I. -I../fpu -I../target-i386 -DNEED_CPU_H
+ 
+ #########################################################
+ # Linux user emulator target
+Index: qemu-0.15.1/target-i386/opengl_exec.c
+===================================================================
+--- qemu-0.15.1.orig/target-i386/opengl_exec.c	2012-04-06 10:00:08.000000000 +0800
++++ qemu-0.15.1/target-i386/opengl_exec.c	2012-04-06 10:39:22.000000000 +0800
+@@ -37,16 +37,12 @@
+ #include <mesa_gl.h>
+ #include <mesa_glx.h>
+ 
+-// TODO
+-typedef long unsigned int target_phys_addr_t;
+-
++#include "exec.h"
+ #include "opengl_func.h"
+ 
+ #include "mesa_glu.h"
+ #include "mesa_mipmap.c"
+ 
+-#include "../qemu-common.h"
+-
+ //#define SYSTEMATIC_ERROR_CHECK
+ #define BUFFER_BEGINEND
+ #define glGetError() 0
meta/recipes-devtools/qemu/qemu_0.15.1.bb +2 -1
index 3a4ef32..05ea5f8 100644
@@ -3,7 +3,7 @@ require qemu.inc
 LIC_FILES_CHKSUM = "file://COPYING;md5=441c28d2cf86e15a37fa47e15a72fbac \
                     file://COPYING.LIB;endline=24;md5=c04def7ae38850e7d3ef548588159913"
 
-PR = "r4"
+PR = "r5"
 
 FILESPATH = "${FILE_DIRNAME}/qemu-${PV}"
 FILESDIR = "${WORKDIR}"
@@ -29,6 +29,7 @@ QEMUGLPATCHES = "\
     file://enable-i386-linux-user.patch \
     file://qemugl-fix.patch \
     file://opengl-sdl-fix.patch \
+    file://opengl-args-copy-fix.patch \
     "
 
 SRC_URI_append_virtclass-native = "\
Signature · 1 line
1.7.7.6
author
#5 lore raw

[CONSOLIDATED PULL 6/6] grub-efi: Include GPT partition EXT FS support

In reply to Saul Wold

From: Darren Hart <[email protected]>

Fixes [YOCTO 2257]

GPT partitions are common for EFI systems. Add support for them by including the part_gpt partition module in the grub-efi image. In order to allow for loading a Linux kernel from an EXT* filesystem, include the ext2 module as well.

With this fix applied, I was able to boot from a USB key using a GPT partition table with the following layout:

  $ sudo gdisk -l /dev/sdc
  GPT fdisk (gdisk) version 0.8.2

Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present

Found valid GPT with protective MBR; using GPT. Disk /dev/sdc: 7669824 sectors, 3.7 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 68FA7CD4-E0C3-4A8E-82B5-1331C9B17A3C Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 7669790 Partitions will be aligned on 2-sector boundaries Total free space is 7428816 sectors (3.5 GiB)

  Number  Start (sector)    End (sector)  Size       Code  Name
     1              34           32801   16.0 MiB    0700      # FAT16
     2           32802          240974   101.6 MiB   0700      # EXT3

From within GRUB, booted as bootia32.efi from the BOOT partition, I booted the OS with the following commands:

grub> linux (hd0,gpt2)/vmlinuz rootwait root=/dev/sda2 console=ttyS0,115200 grub> boot

This change will enable BSP developers to use the grub-efi image in their own images as well as enable upcoming changes to the installer to support EFI.

CC Kishore Bodke <[email protected]>
CC Rahul Saxena <[email protected]>
---
 meta/recipes-bsp/grub/grub-efi-native_1.99.bb |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
meta/recipes-bsp/grub/grub-efi-native_1.99.bb +2 -2
index c951152..93e9290 100644
@@ -16,7 +16,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 # FIXME: We should be able to optionally drop freetype as a dependency
 DEPENDS = "help2man-native autogen-native"
 RDEPENDS_${PN} = "diffutils freetype"
-PR = "r5"
+PR = "r6"
 
 # Native packages do not normally rebuild when the target changes.
 # Ensure this is built once per HOST-TARGET pair.
@@ -61,7 +61,7 @@ EXTRA_OECONF = "--with-platform=efi --disable-grub-mkfont \
 do_mkimage() {
 	./grub-mkimage -p /EFI/BOOT -d ./grub-core/ \
 		       -O ${GRUB_TARGET}-efi -o ./${GRUB_IMAGE} \
-	               boot linux fat serial part_msdos normal efi_gop
+	               boot linux ext2 fat serial part_msdos part_gpt normal efi_gop
 }
 addtask mkimage after do_compile before do_install
 
Signature · 1 line
1.7.7.6
author
#6 lore raw

[CONSOLIDATED PULL 5/6] package.bbclass: needs_ldconfig from linux_so is needed in global namespace

In reply to Saul Wold

From: Andrei Gherzan <[email protected]>

"The suite of statements in a function definition executes with a local namespace that is different from the global namespace. This means that all variables created within a function are local to that function. When the suite finishes, these working variables are discarded."

In this way the needs_ldconfig variable in linux_so never gets True in the statements below this function. As global statement is generally discouraged, a return value would be a clean and fast way to solve this issue.

[YOCTO #2205]

---
 meta/classes/package.bbclass |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)
meta/classes/package.bbclass +3 -1
index d35667a..c98e8fa 100644
@@ -1263,6 +1263,7 @@ python package_do_shlibs() {
 	lf = bb.utils.lockfile(d.expand("${PACKAGELOCK}"))
 
 	def linux_so(root, path, file):
+		needs_ldconfig = False
 		cmd = d.getVar('OBJDUMP', True) + " -p " + pipes.quote(os.path.join(root, file)) + " 2>/dev/null"
 		cmd = "PATH=\"%s\" %s" % (d.getVar('PATH', True), cmd)
 		fd = os.popen(cmd)
@@ -1283,6 +1284,7 @@ python package_do_shlibs() {
 					needs_ldconfig = True
 				if snap_symlinks and (file != this_soname):
 					renames.append((os.path.join(root, file), os.path.join(root, this_soname)))
+		return needs_ldconfig
 
 	def darwin_so(root, path, file):
 		fullpath = os.path.join(root, file)
@@ -1382,7 +1384,7 @@ python package_do_shlibs() {
 				if targetos == "darwin" or targetos == "darwin8":
 					darwin_so(root, dirs, file)
 				elif os.access(path, os.X_OK) or lib_re.match(file):
-					linux_so(root, dirs, file)
+					needs_ldconfig = linux_so(root, dirs, file)
 		for (old, new) in renames:
 		    	bb.note("Renaming %s to %s" % (old, new))
 			os.rename(old, new)
Signature · 1 line
1.7.7.6