Skip to contentSkip to conversation

uClibc/RPM Updates & Other fixes

GIT PULL Applied Saul Wold 2 participants 27 messages Jun 17, 2012 – Jun 18, 2012

lore
Share & tools
lore

Saul Wold

author
#0 lore raw

Richard,

Been tested on the ab over the weekend, reviewed.

Autobuild turned up a latent dependency issue with mdadm!

Sau!

The following changes since commit 63d1ae1c2828cda03828b4c3fdde037d7a23f1e4:

directfb: added missing Upstream-status (2012-06-15 15:41:11 +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=sgw/stage

Bruce Ashfield (1):
meta-skeleton: add linux-yocto-custom reference recipe

Kang Kai (4):
cleanup-workdir: update the way to check obsolete dirs
cleanup-workdir: replace commands with subprocess
cleanup-workdir: only deal dirs related to current arch
cleanup-workdir: update help text

Khem Raj (9):
uclibc_0.9.33.bb: Upgrade to latest git site/x86_64-linux-uclibc: Cache definitions of guint32/guint64
rpm: Fix compilation on uclibc
rpm: Use link time check for libssp
sat-solver: Fix build on uclibc
libzypp: Fix build with uclibc
rpm: pass lrt and lpthread to link step explicitly for uclibc
zypper: Fix build on uclibc
libzypp: Define OECMAKE_CXX_LINK_FLAGS when compiling for uclibc

Laurentiu Palcu (2):
core-image-gtk-directfb, qt4e-demo-image: Remove module-init-tools
from IMAGE_INSTALL list
puzzles: upgrade to r9561

Mark Hatle (1):
busybox: Fix syslog configuration file

Robert Yang (1):
gcc-cross: argument list too long when do_install

Saul Wold (3):
directfb: fix Upstream-status -> Upstream-Status
curl: Use gnutls for target and openssl for native
mdadm: add binutils to DEPENDS

Xiaofeng Yan (2):
multilib.conf: Add the support of multilib for lsbinitscripts
lsbinitscripts: Add the header for functions.patch

 .../recipes-kernel/linux/linux-yocto-custom.bb     |   46 +++++++
 .../0001-linux-version-tweak.patch                 |   26 ++++
 .../linux/linux-yocto-custom/feature.scc           |    1 +
 .../linux/linux-yocto-custom/smp.cfg               |    1 +
 meta/conf/multilib.conf                            |    1 +
 meta/recipes-core/busybox/busybox.inc              |    1 +
 meta/recipes-core/busybox/busybox_1.19.4.bb        |    2 +-
 meta/recipes-core/uclibc/uclibc_0.9.33.bb          |    4 +-
 meta/recipes-devtools/gcc/gcc-4.6.inc              |    1 +
 .../gcc/gcc-4.6/gcc-argument-list-too-long.patch   |   33 +++++
 meta/recipes-devtools/gcc/gcc-4.7.inc              |    1 +
 .../gcc/gcc-4.7/gcc-argument-list-too-long.patch   |   33 +++++
 .../rpm/rpm/fstack-protector-configure-check.patch |   21 +++
 meta/recipes-devtools/rpm/rpm/rpmatch.patch        |   42 +++++++
 meta/recipes-devtools/rpm/rpm/uclibc-support.patch |   63 ++++++++++
 meta/recipes-devtools/rpm/rpm_5.4.9.bb             |    7 +-
 meta/recipes-extended/libzypp/libzypp/cstdio.patch |   49 ++++++++
 meta/recipes-extended/libzypp/libzypp_git.bb       |    9 +-
 .../lsb/lsbinitscripts/functions.patch             |    3 +
 meta/recipes-extended/mdadm/mdadm_3.2.5.bb         |    1 +
 .../sat-solver/sat-solver/futimes.patch            |   32 +++++
 meta/recipes-extended/sat-solver/sat-solver_git.bb |    3 +
 meta/recipes-extended/zypper/zypper/rpmatch.patch  |   23 ++++
 meta/recipes-extended/zypper/zypper_git.bb         |    2 +
 ...ibdirect-remove-include-of-linux-config.h.patch |    2 +-
 .../images/core-image-gtk-directfb.bb              |    3 +-
 meta/recipes-qt/images/qt4e-demo-image.bb          |    3 +-
 .../puzzles/{puzzles_r9375.bb => puzzles_r9561.bb} |    6 +-
 meta/recipes-support/curl/curl_7.24.0.bb           |   13 +-
 meta/site/x86_64-linux-uclibc                      |    3 +
 scripts/cleanup-workdir                            |  128 +++++++++++++-------
 31 files changed, 496 insertions(+), 67 deletions(-)
 create mode 100644 meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb
 create mode 100644 meta-skeleton/recipes-kernel/linux/linux-yocto-custom/0001-linux-version-tweak.patch
 create mode 100644 meta-skeleton/recipes-kernel/linux/linux-yocto-custom/feature.scc
 create mode 100644 meta-skeleton/recipes-kernel/linux/linux-yocto-custom/smp.cfg
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.6/gcc-argument-list-too-long.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.7/gcc-argument-list-too-long.patch
 create mode 100644 meta/recipes-devtools/rpm/rpm/fstack-protector-configure-check.patch
 create mode 100644 meta/recipes-devtools/rpm/rpm/rpmatch.patch
 create mode 100644 meta/recipes-devtools/rpm/rpm/uclibc-support.patch
 create mode 100644 meta/recipes-extended/libzypp/libzypp/cstdio.patch
 create mode 100644 meta/recipes-extended/sat-solver/sat-solver/futimes.patch
 create mode 100644 meta/recipes-extended/zypper/zypper/rpmatch.patch
 rename meta/recipes-sato/puzzles/{puzzles_r9375.bb => puzzles_r9561.bb} (88%)
Signature · 1 line
1.7.7.6
author
#1 lore raw

[Consolidated Pull 01/23] gcc-cross: argument list too long when do_install

From: Robert Yang <[email protected]>

There would be an "Argument list too long" error when the length of tmpdir is longer than 190, this is caused by:

headers=echo $(PLUGIN_HEADERS) | tr ' ' '\012' | sort -u

The PLUGIN_HEADERS is too long before sort, so the "echo" can't handle it, use the $(sort list) of GNU make which can handle the too long list would fix the problem, the header would be short enough after sorted. The "tr ' ' '\012'" was used for translating the space to "\n", the $(sort list) doesn't need this.

This doesn't impact the output, so it doesn't need the PR bump.

[YOCTO #2591]

---
 meta/recipes-devtools/gcc/gcc-4.6.inc              |    1 +
 .../gcc/gcc-4.6/gcc-argument-list-too-long.patch   |   33 ++++++++++++++++++++
 meta/recipes-devtools/gcc/gcc-4.7.inc              |    1 +
 .../gcc/gcc-4.7/gcc-argument-list-too-long.patch   |   33 ++++++++++++++++++++
 4 files changed, 68 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.6/gcc-argument-list-too-long.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.7/gcc-argument-list-too-long.patch
meta/recipes-devtools/gcc/gcc-4.6.inc +1 -0
index 7a70a38..03d8871 100644
@@ -75,6 +75,7 @@ SRC_URI = "svn://gcc.gnu.org/svn/gcc/branches;module=${BRANCH};proto=http \
 	   file://fortran-cross-compile-hack.patch \
 	   file://cpp-honour-sysroot.patch \
 	   file://mips64-default-n64.patch \
+	   file://gcc-argument-list-too-long.patch \
 	  "
 
 SRC_URI_append_sh3  = " file://sh3-installfix-fixheaders.patch "
meta/recipes-devtools/gcc/gcc-4.6/gcc-argument-list-too-long.patch new file +33 -0
new file mode 100644
index 0000000..70d3c53
@@ -0,0 +1,33 @@
+There would be an "Argument list too long" error when the
+build directory is longer than 200, this is caused by:
+
+headers=`echo $(PLUGIN_HEADERS) | tr ' ' '\012' | sort -u`
+
+The PLUGIN_HEADERS is too long before sort, so the "echo" can't handle
+it, use the $(sort list) of GNU make which can handle the too long list
+would fix the problem, the header would be short enough after sorted.
+The "tr ' ' '\012'" was used for translating the space to "\n", the
+$(sort list) doesn't need this.
+
+Signed-off-by: Robert Yang <[email protected]>
+
+Upstream-Status: Pending
+---
+ gcc/Makefile.in |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gcc/Makefile.in b/gcc/Makefile.in
+--- a/gcc/Makefile.in
++++ b/gcc/Makefile.in
+@@ -4553,7 +4553,7 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype
+ # We keep the directory structure for files in config or c-family and .def
+ # files. All other files are flattened to a single directory.
+ 	$(mkinstalldirs) $(DESTDIR)$(plugin_includedir)
+-	headers=`echo $(PLUGIN_HEADERS) | tr ' ' '\012' | sort -u`; \
++	headers="$(sort $(PLUGIN_HEADERS))"; \
+ 	srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \
+ 	for file in $$headers; do \
+ 	  if [ -f $$file ] ; then \
+-- 
+1.7.10.2
+
meta/recipes-devtools/gcc/gcc-4.7.inc +1 -0
index 973c211..34a73b1 100644
@@ -66,6 +66,7 @@ SRC_URI = "svn://gcc.gnu.org/svn/gcc/branches;module=${BRANCH};proto=http \
 	   file://cpp-honor-sysroot.patch \
 	   file://mips64-default-n64.patch \
 	   file://arm-hard-float-loader.patch \
+	   file://gcc-argument-list-too-long.patch \
 	  "
 
 S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/${BRANCH}"
meta/recipes-devtools/gcc/gcc-4.7/gcc-argument-list-too-long.patch new file +33 -0
new file mode 100644
index 0000000..70d3c53
@@ -0,0 +1,33 @@
+There would be an "Argument list too long" error when the
+build directory is longer than 200, this is caused by:
+
+headers=`echo $(PLUGIN_HEADERS) | tr ' ' '\012' | sort -u`
+
+The PLUGIN_HEADERS is too long before sort, so the "echo" can't handle
+it, use the $(sort list) of GNU make which can handle the too long list
+would fix the problem, the header would be short enough after sorted.
+The "tr ' ' '\012'" was used for translating the space to "\n", the
+$(sort list) doesn't need this.
+
+Signed-off-by: Robert Yang <[email protected]>
+
+Upstream-Status: Pending
+---
+ gcc/Makefile.in |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gcc/Makefile.in b/gcc/Makefile.in
+--- a/gcc/Makefile.in
++++ b/gcc/Makefile.in
+@@ -4553,7 +4553,7 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype
+ # We keep the directory structure for files in config or c-family and .def
+ # files. All other files are flattened to a single directory.
+ 	$(mkinstalldirs) $(DESTDIR)$(plugin_includedir)
+-	headers=`echo $(PLUGIN_HEADERS) | tr ' ' '\012' | sort -u`; \
++	headers="$(sort $(PLUGIN_HEADERS))"; \
+ 	srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \
+ 	for file in $$headers; do \
+ 	  if [ -f $$file ] ; then \
+-- 
+1.7.10.2
+
Signature · 1 line
1.7.7.6
author
#2 lore raw

[Consolidated Pull 02/23] core-image-gtk-directfb, qt4e-demo-image: Remove module-init-tools from IMAGE_INSTALL list

In reply to Saul Wold

From: Laurentiu Palcu <[email protected]>

As module-init-tools package does not exist anymore there's no reason to have it in the IMAGE_INSTALL package list. If RPM package manager is used, build will fail with:

Unable to find package module-init-tools (module-init-tools)!

[Yocto #2580]

---
 .../images/core-image-gtk-directfb.bb              |    3 +--
 meta/recipes-qt/images/qt4e-demo-image.bb          |    3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)
meta/recipes-graphics/images/core-image-gtk-directfb.bb +1 -2
index a5fba17..dcf5165 100644
@@ -1,5 +1,5 @@
 LICENSE = "MIT"
-PR="r0"
+PR="r1"
 
 
 LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
@@ -17,7 +17,6 @@ inherit core-image
 IMAGE_INSTALL += "\
 	${CORE_IMAGE_BASE_INSTALL} \
 	task-core-basic \
-	module-init-tools \
 	task-core-gtk-directfb-base \
 "
 
meta/recipes-qt/images/qt4e-demo-image.bb +1 -2
index 6c0dc70..794dac5 100644
@@ -1,6 +1,6 @@
 DESCRIPTION = "Version 1.0-r1 of the qtr3-demo-image."
 LICENSE = "MIT"
-PR="r1"
+PR="r2"
 
 LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
                     file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
@@ -13,7 +13,6 @@ RDEPENDS_${PN} += " \
 
 IMAGE_INSTALL += "\
 	${CORE_IMAGE_BASE_INSTALL} \
-	module-init-tools \
 	task-qt4e-base \
 "
 
Signature · 1 line
1.7.7.6
author
#3 lore raw

[Consolidated Pull 03/23] busybox: Fix syslog configuration file

In reply to Saul Wold

From: Mark Hatle <[email protected]>

When update alternatives was modified, the syslog configuration file alternative was incorrectly defined to be "busybox". Fix this by enabling the proper target file.

[YOCTO #2557]

---
 meta/recipes-core/busybox/busybox.inc       |    1 +
 meta/recipes-core/busybox/busybox_1.19.4.bb |    2 +-
 2 files changed, 2 insertions(+), 1 deletions(-)
meta/recipes-core/busybox/busybox.inc +1 -0
index db337ad..a9a58e2 100644
@@ -214,6 +214,7 @@ ALTERNATIVE_LINK_NAME[syslog-init] = "${sysconfdir}/init.d/syslog"
 ALTERNATIVE_LINK_NAME[syslog-startup-conf] = "${sysconfdir}/syslog-startup.conf"
 
 ALTERNATIVE_TARGET = "/bin/busybox"
+ALTERNATIVE_TARGET[syslog-startup-conf] = "${sysconfdir}/syslog-startup.conf.${BPN}"
 
 python do_package_prepend () {
 	# We need to load the full set of busybox provides from the /etc/busybox.links
meta/recipes-core/busybox/busybox_1.19.4.bb +1 -1
index 0717075..5b3f356 100644
@@ -1,5 +1,5 @@
 require busybox.inc
-PR = "r6"
+PR = "r7"
 
 SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
            file://B921600.patch \
Signature · 1 line
1.7.7.6
author
#4 lore raw

[Consolidated Pull 04/23] uclibc_0.9.33.bb: Upgrade to latest git

In reply to Saul Wold

From: Khem Raj <[email protected]>

This is needed otherwise glib-2.0 wont run
correctly

---
 meta/recipes-core/uclibc/uclibc_0.9.33.bb |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
meta/recipes-core/uclibc/uclibc_0.9.33.bb +2 -2
index 43c8f74..b72f9dd 100644
@@ -1,8 +1,8 @@
-SRCREV="f7c18471f1ff8f3e54e462df0e96e19739869c78"
+SRCREV="7810e4f8027b5c4c8ceec6fefec4eb779362ebb5"
 
 require uclibc.inc
 
-PR = "${INC_PR}.1"
+PR = "${INC_PR}.2"
 PROVIDES += "virtual/${TARGET_PREFIX}libc-for-gcc"
 
 SRC_URI = "git://uclibc.org/uClibc.git;branch=${PV};protocol=git \
Signature · 1 line
1.7.7.6
author
#5 lore raw

[Consolidated Pull 07/23] rpm: Use link time check for libssp

In reply to Saul Wold

From: Khem Raj <[email protected]>

-fstack-protector needs libssp to link with
so when checking for this option support we
need to find if libssp is staged in root file
system

---
 .../rpm/rpm/fstack-protector-configure-check.patch |   21 ++++++++++++++++++++
 meta/recipes-devtools/rpm/rpm_5.4.9.bb             |    1 +
 2 files changed, 22 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-devtools/rpm/rpm/fstack-protector-configure-check.patch
meta/recipes-devtools/rpm/rpm/fstack-protector-configure-check.patch new file +21 -0
new file mode 100644
index 0000000..0474c65
@@ -0,0 +1,21 @@
+Some options checked in this loop are needing linking to find out
+if the option can be used or not e.g. -fstack-protector which needs
+libssp to be staged and available for compiler to link against
+Therefore we change the compile only check to compile and link check
+
+Signed-off-by: Khem Raj <[email protected]>
+Upstream-Status: Pending
+
+Index: rpm-5.4.0/configure.ac
+===================================================================
+--- rpm-5.4.0.orig/configure.ac	2012-06-01 11:41:19.741480143 -0700
++++ rpm-5.4.0/configure.ac	2012-06-01 11:41:51.773481676 -0700
+@@ -193,7 +193,7 @@
+  my_save_cflags="$CFLAGS"
+  CFLAGS=$c
+  AC_MSG_CHECKING([whether GCC supports $c])
+- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
++ AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
+     [AC_MSG_RESULT([yes])]
+     [my_cflags=$c],
+     [AC_MSG_RESULT([no])]
meta/recipes-devtools/rpm/rpm_5.4.9.bb +1 -0
index 404916a..ccf015a 100644
@@ -74,6 +74,7 @@ SRC_URI = "http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.9-0.20120508.src.rpm;ex
 	   file://rpm-pkgconfigdeps.patch \
 	   file://uclibc-support.patch \
 	   file://rpmatch.patch \
+	   file://fstack-protector-configure-check.patch \
 	  "
 
 SRC_URI[md5sum] = "60d56ace884340c1b3fcac6a1d58e768"
Signature · 1 line
1.7.7.6
author
#6 lore raw

[Consolidated Pull 05/23] site/x86_64-linux-uclibc: Cache definitions of guint32/guint64

In reply to Saul Wold

From: Khem Raj <[email protected]>

Without this glib 2.32.x wont build.

---
 meta/site/x86_64-linux-uclibc |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
meta/site/x86_64-linux-uclibc +3 -0
index bad2ed9..2d269f7 100644
@@ -60,6 +60,9 @@ am_cv_func_working_getline=${am_cv_func_working_getline=yes}
 
 # glib-2.0
 glib_cv_use_pid_surrogate=${glib_cv_use_pid_surrogate=yes}
+ac_cv_alignof_guint32=4
+ac_cv_alignof_guint64=8
+ac_cv_alignof_unsigned_long=8
 
 # libidl
 libIDL_cv_long_long_format=${libIDL_cv_long_long_format=ll}
Signature · 1 line
1.7.7.6
author
#7 lore raw

[Consolidated Pull 06/23] rpm: Fix compilation on uclibc

In reply to Saul Wold

From: Khem Raj <[email protected]>

rpmatch is not there in uclibc therefore add logic to configure to detect it.

x* wrappers need to be defined for uclibc as well.

---
 meta/recipes-devtools/rpm/rpm/rpmatch.patch        |   42 +++++++++++++
 meta/recipes-devtools/rpm/rpm/uclibc-support.patch |   63 ++++++++++++++++++++
 meta/recipes-devtools/rpm/rpm_5.4.9.bb             |    4 +-
 3 files changed, 108 insertions(+), 1 deletions(-)
 create mode 100644 meta/recipes-devtools/rpm/rpm/rpmatch.patch
 create mode 100644 meta/recipes-devtools/rpm/rpm/uclibc-support.patch
meta/recipes-devtools/rpm/rpm/rpmatch.patch new file +42 -0
new file mode 100644
index 0000000..8ea3490
@@ -0,0 +1,42 @@
+Add configure check for rpmatch() and 
+creates a compatable macro if it is not provided by the C library.
+
+This is needed for uclibc since it does not have the above function
+implemented.
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <[email protected]>
+
+Index: rpm-5.4.0/configure.ac
+===================================================================
+--- rpm-5.4.0.orig/configure.ac	2012-05-31 15:40:05.985990822 -0700
++++ rpm-5.4.0/configure.ac	2012-05-31 15:41:15.601995311 -0700
+@@ -800,7 +800,7 @@
+     ftok getaddrinfo getattrlist getcwd getdelim getline getmode getnameinfo dnl
+     getpassphrase getxattr getwd iconv inet_aton lchflags lchmod lchown dnl
+     lgetxattr lsetxattr lutimes madvise mempcpy mkdtemp mkstemp mtrace dnl
+-    posix_fadvise posix_fallocate putenv realpath regcomp __secure_getenv dnl
++    posix_fadvise posix_fallocate putenv realpath regcomp rpmatch __secure_getenv dnl
+     setattrlist setenv setlocale setmode setxattr dnl
+     sigaddset sigdelset sigemptyset sighold sigrelse sigpause dnl
+     sigprocmask sigsuspend sigaction dnl
+Index: rpm-5.4.0/system.h
+===================================================================
+--- rpm-5.4.0.orig/system.h	2012-05-31 15:40:05.997991504 -0700
++++ rpm-5.4.0/system.h	2012-05-31 15:42:04.941997731 -0700
+@@ -410,6 +410,14 @@
+ #endif /* defined(__GNUC__) */
+ #endif	/* HAVE_MCHECK_H */
+ 
++#ifndef HAVE_RPMATCH
++#define rpmatch(line) \
++	( (line == NULL)? -1 : \
++	  (*line == 'y' || *line == 'Y')? 1 : \
++	  (*line == 'n' || *line == 'N')? 0 : \
++	  -1 )
++#endif
++
+ /* Retrofit glibc __progname */
+ #if defined __GLIBC__ && __GLIBC__ >= 2
+ #if __GLIBC_MINOR__ >= 1
meta/recipes-devtools/rpm/rpm/uclibc-support.patch new file +63 -0

63 lines not on this page · raw message

meta/recipes-devtools/rpm/rpm_5.4.9.bb +3 -1
index 51cf93b..404916a 100644
@@ -43,7 +43,7 @@ LICENSE = "LGPLv2.1"
 LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1"
 
 DEPENDS = "libpcre attr acl popt ossp-uuid file"
-PR = "r43"
+PR = "r44"
 
 # rpm2cpio is a shell script, which is part of the rpm src.rpm.  It is needed
 # in order to extract the distribution SRPM into a format we can extract...
@@ -72,6 +72,8 @@ SRC_URI = "http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.9-0.20120508.src.rpm;ex
 	   file://rpm-ossp-uuid.patch \
 	   file://rpm-packageorigin.patch \
 	   file://rpm-pkgconfigdeps.patch \
+	   file://uclibc-support.patch \
+	   file://rpmatch.patch \
 	  "
 
 SRC_URI[md5sum] = "60d56ace884340c1b3fcac6a1d58e768"
Signature · 1 line
1.7.7.6
author
#8 lore raw

[Consolidated Pull 11/23] zypper: Fix build on uclibc

In reply to Saul Wold

From: Khem Raj <[email protected]>

uclibc does not have rpmatch() so we define
it if zypper is being compiled for uclibc

---
 meta/recipes-extended/zypper/zypper/rpmatch.patch |   23 +++++++++++++++++++++
 meta/recipes-extended/zypper/zypper_git.bb        |    2 +
 2 files changed, 25 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-extended/zypper/zypper/rpmatch.patch
meta/recipes-extended/zypper/zypper/rpmatch.patch new file +23 -0
new file mode 100644
index 0000000..a750a3b
@@ -0,0 +1,23 @@
+rpmatch() is missing in uclibc so we provide a local definition
+in form of a macro
+
+Signed-off-by: Khem Raj <[email protected]>
+Upstream-Status: Pending
+
+Index: git/src/utils/prompt.h
+===================================================================
+--- git.orig/src/utils/prompt.h	2012-06-06 15:51:00.899112775 -0700
++++ git/src/utils/prompt.h	2012-06-06 15:52:17.003116762 -0700
+@@ -172,4 +172,12 @@
+   return errstr;
+ }
+ 
++#ifdef __UCLIBC__
++#define rpmatch(line) \
++       ( (line == NULL)? -1 : \
++         (*line == 'y' || *line == 'Y')? 1 : \
++         (*line == 'n' || *line == 'N')? 0 : \
++         -1 )
++#endif /* __UCLIBC__ */
++
+ #endif /*ZYPPERPROMPT_H_*/
meta/recipes-extended/zypper/zypper_git.bb +2 -0
index 0a1df5d..c5d7c61 100644
@@ -16,6 +16,7 @@ SRC_URI = "git://github.com/openSUSE/zypper.git;protocol=git \
            file://dso_linking_change_build_fix.patch \
            file://rpm5-flag.patch \
            file://gcc-scope.patch \
+           file://rpmatch.patch \
           "
 S = "${WORKDIR}/git"
 
@@ -25,3 +26,4 @@ RDEPENDS_${PN} = "rpm-libs"
 RRECOMMENDS_${PN} = "procps util-linux-uuidgen"
 
 PACKAGE_ARCH = "${MACHINE_ARCH}"
+OECMAKE_CXX_LINK_FLAGS_libc-uclibc += "-lintl"
Signature · 1 line
1.7.7.6
author
#9 lore raw

[Consolidated Pull 09/23] libzypp: Fix build with uclibc

In reply to Saul Wold

From: Khem Raj <[email protected]>

cstdio is included indrectly with eglibc based systems but not with uclibc based systems and use of functions like ::eof are then reported as warnings. Therefore we include cstdio explicitly.

---
 meta/recipes-extended/libzypp/libzypp/cstdio.patch |   49 ++++++++++++++++++++
 meta/recipes-extended/libzypp/libzypp_git.bb       |   10 +++-
 2 files changed, 57 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-extended/libzypp/libzypp/cstdio.patch
meta/recipes-extended/libzypp/libzypp/cstdio.patch new file +49 -0
new file mode 100644
index 0000000..a021d58
@@ -0,0 +1,49 @@
+include cstdio to get definitions of ::xxx functions which
+are now reported by gcc-4.7 as wanrings and warnings are treated
+as errors
+
+Signed-off-by: Khem Raj <[email protected]>
+Upstream-Status: Pending
+
+Index: git/zypp/ExternalProgram.cc
+===================================================================
+--- git.orig/zypp/ExternalProgram.cc	2012-06-01 16:25:17.098304709 -0700
++++ git/zypp/ExternalProgram.cc	2012-06-01 16:25:37.254305681 -0700
+@@ -22,6 +22,7 @@
+ #include <cstring> // strsignal
+ #include <iostream>
+ #include <sstream>
++#include <cstdio>
+ 
+ #include "zypp/base/Logger.h"
+ #include "zypp/base/String.h"
+Index: git/zypp/PluginScript.cc
+===================================================================
+--- git.orig/zypp/PluginScript.cc	2012-06-01 16:21:37.814294089 -0700
++++ git/zypp/PluginScript.cc	2012-06-01 16:24:41.002302961 -0700
+@@ -14,6 +14,7 @@
+ 
+ #include <iostream>
+ #include <sstream>
++#include <cstdio>
+ 
+ #include "zypp/base/LogTools.h"
+ #include "zypp/base/DefaultIntegral.h"
+@@ -336,7 +337,7 @@
+     if ( fd == -1 )
+       ZYPP_THROW( PluginScriptException( "Bad file descriptor" ) );
+ 
+-    ::clearerr( filep );
++    std::clearerr( filep );
+     std::string data;
+     {
+       PluginDebugBuffer _debug( data ); // dump receive buffer if PLUGIN_DEBUG
+@@ -370,7 +371,7 @@
+ 	    int retval = select( fd+1, &rfds, NULL, NULL, &tv );
+ 	    if ( retval > 0 )	// FD_ISSET( fd, &rfds ) will be true.
+ 	    {
+-	      ::clearerr( filep );
++	      std::clearerr( filep );
+ 	    }
+ 	    else if ( retval == 0 )
+ 	    {
meta/recipes-extended/libzypp/libzypp_git.bb +8 -2
index 90ee8c4..ca32e73 100644
@@ -11,7 +11,7 @@ DEPENDS  = "rpm boost curl libxml2 zlib sat-solver expat openssl udev libproxy"
 S = "${WORKDIR}/git"
 SRCREV = "15b6c52260bbc52b3d8e585e271b67e10cc7c433"
 PV = "0.0-git${SRCPV}"
-PR = "r22"
+PR = "r23"
 
 SRC_URI = "git://github.com/openSUSE/libzypp.git;protocol=git \
            file://no-doc.patch \
@@ -24,6 +24,7 @@ SRC_URI = "git://github.com/openSUSE/libzypp.git;protocol=git \
 	   file://hardcode-lib-fix.patch \
 	   file://close.patch \
 	   file://libzypp-rpm549.patch \
+	   file://cstdio.patch \
           "
 
 SRC_URI_append_mips = " file://mips-workaround-gcc-tribool-error.patch"
@@ -32,7 +33,10 @@ SRC_URI_append_mips = " file://mips-workaround-gcc-tribool-error.patch"
 SRC_URI_append_arm  = " file://arm-workaround-global-constructor.patch"
 
 # rpmdb2solv from sat-solver is run from libzypp
-RDEPENDS_${PN} = "sat-solver rpm-libs gzip gnupg"
+RDEPENDS_${PN} = "sat-solver rpm-libs gzip ${RDEPGNUPG}"
+
+RDEPGNUPG = "gnupg"
+RDEPGNUPG_libc-uclibc = ""
 
 PACKAGES =+ "${PN}-pkgmgt"
 
@@ -46,6 +50,8 @@ FILES_${PN}-pkgmgt = "${bindir}/package-manager \
 
 EXTRA_OECMAKE += " -DLIB=${@os.path.basename('${libdir}')}"
 
+LDFLAGS += "-lpthread"
+
 PACKAGE_ARCH = "${MACHINE_ARCH}"
 
 AVOID_CONSTRUCTOR = ""
Signature · 1 line
1.7.7.6
author
#10 lore raw

[Consolidated Pull 12/23] libzypp: Define OECMAKE_CXX_LINK_FLAGS when compiling for uclibc

In reply to Saul Wold

From: Khem Raj <[email protected]>

---
 meta/recipes-extended/libzypp/libzypp_git.bb |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
meta/recipes-extended/libzypp/libzypp_git.bb +1 -2
index ca32e73..471ee1d 100644
@@ -49,8 +49,7 @@ FILES_${PN}-pkgmgt = "${bindir}/package-manager \
                      "
 
 EXTRA_OECMAKE += " -DLIB=${@os.path.basename('${libdir}')}"
-
-LDFLAGS += "-lpthread"
+OECMAKE_CXX_LINK_FLAGS_libc-uclibc += "-pthread"
 
 PACKAGE_ARCH = "${MACHINE_ARCH}"
 
Signature · 1 line
1.7.7.6
author
#11 lore raw

[Consolidated Pull 13/23] puzzles: upgrade to r9561

In reply to Saul Wold

From: Laurentiu Palcu <[email protected]>

Minor change in LICENCE file:

-This software is copyright (c) 2004-2010 Simon Tatham. +This software is copyright (c) 2004-2012 Simon Tatham.

---
 .../puzzles/{puzzles_r9375.bb => puzzles_r9561.bb} |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
 rename meta/recipes-sato/puzzles/{puzzles_r9375.bb => puzzles_r9561.bb} (88%)
meta/recipes-sato/puzzles/puzzles_r9561.bb renamed from meta/recipes-sato/puzzles/puzzles_r9375.bb +3 -3
similarity index 88%
rename from meta/recipes-sato/puzzles/puzzles_r9375.bb
rename to meta/recipes-sato/puzzles/puzzles_r9561.bb
index 1867dad..83fabdf 100644
@@ -6,13 +6,13 @@ PR = "r0"
 MOD_PV = "${@d.getVar('PV',1)[1:]}"
 
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=9928b60f3b78be315b7ab699c1b03ff5"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=453de74d749439762ef4814f7bee1fec"
 
 # Upstream updates puzzles.tar.gz for the new release, so checksums seem to be changing regularly right now
 #SRC_URI = "svn://ixion.tartarus.org/main;module=puzzles;rev=${MOD_PV}"
 SRC_URI = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles-${PV}.tar.gz"
-SRC_URI[md5sum] = "25f2349611cdd8fb35d27b24f5b937a8"
-SRC_URI[sha256sum] = "bddf4e52c328c98b9d95bd7daf6b9098f25e8272a7c1059ba69809eb619124a2"
+SRC_URI[md5sum] = "c86695aebfc95efe1d6241863849101b"
+SRC_URI[sha256sum] = "2c20a45189387e3de8804a58bdb4e47ac4bb0f890001a509dfbdc015b5a84b95"
 
 
 S = "${WORKDIR}/${BPN}-${PV}"
Signature · 1 line
1.7.7.6
author
#12 lore raw

[Consolidated Pull 14/23] multilib.conf: Add the support of multilib for lsbinitscripts

In reply to Saul Wold

From: Xiaofeng Yan <[email protected]>

Add the multilib support for this package to multilib.conf because error will appear when building an lib32-core-image-lsb without this patch.

[YOCTO #2571]

---
 meta/conf/multilib.conf |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
meta/conf/multilib.conf +1 -0
index 9fc5a90..cea8694 100644
@@ -420,6 +420,7 @@ BBCLASSEXTEND_append_pn-lrzsz = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-lsb = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-lsbsetup = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-lsbtest = " ${MULTILIBS}"
+BBCLASSEXTEND_append_pn-lsbinitscripts = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-lsof = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-ltp = " ${MULTILIBS}"
 BBCLASSEXTEND_append_pn-lttng-control = " ${MULTILIBS}"
Signature · 1 line
1.7.7.6
author
#13 lore raw

[Consolidated Pull 10/23] rpm: pass lrt and lpthread to link step explicitly for uclibc

In reply to Saul Wold

From: Khem Raj <[email protected]>

These need to appear in DT_NEEDED for librpmio.so
for uclibc somehow it does not get added to link
cmdline so we do it explicitly.

---
 meta/recipes-devtools/rpm/rpm_5.4.9.bb |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
meta/recipes-devtools/rpm/rpm_5.4.9.bb +2 -0
index ccf015a..8e892a8 100644
@@ -182,6 +182,8 @@ EXTRA_OECONF += "--verbose \
 
 CFLAGS_append = " -DRPM_VENDOR_WINDRIVER -DRPM_VENDOR_POKY -DRPM_VENDOR_OE"
 
+LDFLAGS_append_libc-uclibc = "-lrt -lpthread"
+
 PACKAGES = "${PN}-dbg ${PN} ${PN}-doc ${PN}-libs ${PN}-dev ${PN}-staticdev ${PN}-common ${PN}-build python-rpm-dbg python-rpm-staticdev python-rpm perl-module-rpm perl-module-rpm-dev ${PN}-locale"
 
 SOLIBS = "5.4.so"
Signature · 1 line
1.7.7.6
author
#14 lore raw

[Consolidated Pull 08/23] sat-solver: Fix build on uclibc

In reply to Saul Wold

From: Khem Raj <[email protected]>

futimes is not available on uclibc so use utimes qsort is also not as expected by sat-solver therefore for uclibc we resort to using internal version of qsort

---
 .../sat-solver/sat-solver/futimes.patch            |   32 ++++++++++++++++++++
 meta/recipes-extended/sat-solver/sat-solver_git.bb |    3 ++
 2 files changed, 35 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-extended/sat-solver/sat-solver/futimes.patch
meta/recipes-extended/sat-solver/sat-solver/futimes.patch new file +32 -0
new file mode 100644
index 0000000..b24d852
@@ -0,0 +1,32 @@
+This patch uses utimes instead of futimes for uclibc
+since futimes is not available
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <[email protected]>
+
+Index: git/examples/solv.c
+===================================================================
+--- git.orig/examples/solv.c	2012-06-01 12:06:22.041552848 -0700
++++ git/examples/solv.c	2012-06-01 12:49:17.417677449 -0700
+@@ -1027,7 +1027,8 @@
+   int flags;
+ 
+   cinfo = repo->appdata;
+-  if (!(fp = fopen(calccachepath(repo, repoext), "r")))
++  const char* fname = calccachepath(repo, repoext);
++  if (!(fp = fopen(fname, "r")))
+     return 0;
+   if (fseek(fp, -sizeof(mycookie), SEEK_END) || fread(mycookie, sizeof(mycookie), 1, fp) != 1)
+     {
+@@ -1068,7 +1069,11 @@
+       memcpy(cinfo->extcookie, myextcookie, sizeof(myextcookie));
+     }
+   if (mark)
++#ifdef __UCLIBC__
++    utimes(fname, 0);	/* try to set modification time */
++#else
+     futimes(fileno(fp), 0);	/* try to set modification time */
++#endif
+   fclose(fp);
+   return 1;
+ }
meta/recipes-extended/sat-solver/sat-solver_git.bb +3 -0
index b0382f6..e1054e9 100644
@@ -20,6 +20,7 @@ SRC_URI = "git://github.com/openSUSE/sat-solver.git;protocol=git \
            file://sat-solver_core.patch \
            file://fix_gcc-4.6.0_compile_issue.patch \
            file://0001-sat_xfopen.c-Forward-port-to-zlib-1.2.6-gzFile.patch \
+           file://futimes.patch \
           "
 
 S = "${WORKDIR}/git"
@@ -28,6 +29,8 @@ EXTRA_OECMAKE += "-DRPM5=RPM5 -DOE_CORE=OE_CORE"
 
 EXTRA_OECMAKE += " -DLIB=${@os.path.basename('${libdir}')}"
 
+TUNE_CCARGS_append_libc-uclibc = " -DUSE_OWN_QSORT=1 "
+
 inherit cmake pkgconfig
 
 RDEPENDS_${PN} = "rpm-libs"
Signature · 1 line
1.7.7.6
author
#15 lore raw

[Consolidated Pull 18/23] cleanup-workdir: replace commands with subprocess

In reply to Saul Wold

From: Kang Kai <[email protected]>

Use modules subprocess to run command instead of module commands.

---
 scripts/cleanup-workdir |   22 ++++++++++++----------
 1 files changed, 12 insertions(+), 10 deletions(-)
scripts/cleanup-workdir +12 -10
index 3739a00..1e9c56d 100755
@@ -19,7 +19,7 @@ import os
 import sys
 import optparse
 import re
-import commands
+import subprocess
 import shutil
 
 pkg_cur_dirs = []
@@ -39,6 +39,14 @@ def parse_version(verstr):
     else:
         return epoch + '_' + elems[1]
 
+def run_command(cmd):
+    pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
+    output = pipe.communicate()[0]
+    if pipe.returncode != 0:
+        print "Execute command '%s' failed." % cmd
+        sys.exit(1)
+    return output
+
 def main():
     global parser
     parser = optparse.OptionParser(
@@ -49,7 +57,7 @@ This script must be ran under BUILDDIR after source file \"oe-init-build-env\"."
 
     options, args = parser.parse_args(sys.argv)
 
-    builddir = commands.getoutput('echo $BUILDDIR')
+    builddir = run_command('echo $BUILDDIR').strip()
     if len(builddir) == 0:
         err_quit("Please source file \"oe-init-build-env\" first.\n")
 
@@ -58,10 +66,7 @@ This script must be ran under BUILDDIR after source file \"oe-init-build-env\"."
 
     print 'Updating bitbake caches...'
     cmd = "bitbake -s"
-    (ret, output) = commands.getstatusoutput(cmd)
-    if ret != 0:
-        print "Execute 'bitbake -s' failed. Can't get packages' versions."
-        return 1
+    output = run_command(cmd)
 
     output = output.split('\n')
     index = 0
@@ -83,10 +88,7 @@ This script must be ran under BUILDDIR after source file \"oe-init-build-env\"."
         pkg_cur_dirs.append(elems[0] + '-' + version)
 
     cmd = "bitbake -e | grep ^TMPDIR"
-    (ret, output) = commands.getstatusoutput(cmd)
-    if ret != 0:
-        print "Execute 'bitbke -e' failed. Can't get TMPDIR."
-        return 1
+    output = run_command(cmd)
 
     tmpdir = output.split('"')[1]
     workdir = os.path.join(tmpdir, 'work')
Signature · 1 line
1.7.7.6
author
#16 lore raw

[Consolidated Pull 15/23] lsbinitscripts: Add the header for functions.patch

In reply to Saul Wold

From: Xiaofeng Yan <[email protected]>

Add upstream-status and signed-off-by to functions.patch

---
 .../lsb/lsbinitscripts/functions.patch             |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
meta/recipes-extended/lsb/lsbinitscripts/functions.patch +3 -0
index aa63cec..6d09d05 100644
@@ -1,3 +1,6 @@
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Xiaofeng Yan <[email protected]>
 --- a/rc.d/init.d/functions	2009-12-10 05:24:11.000000000 +0800
 +++ b/rc.d/init.d/functions.new	2012-06-01 16:57:12.651229387 +0800
 @@ -16,7 +16,7 @@
Signature · 1 line
1.7.7.6
author
#17 lore raw

[Consolidated Pull 17/23] cleanup-workdir: update the way to check obsolete dirs

In reply to Saul Wold

From: Kang Kai <[email protected]>

Update the way to check obsolete directories.

According to package and its version construct a list of all packages' current build directory. If any directory under $WORKDIR/*/ is not in the list will be removed.

At same time, all the files(vs. directory) under $WORKDIR and $WORKDIR/*/ will be removed because they are not created by poky.

---
 scripts/cleanup-workdir |   59 ++++++++++++++++++----------------------------
 1 files changed, 23 insertions(+), 36 deletions(-)
scripts/cleanup-workdir +23 -36
index b77e8c6..3739a00 100755
@@ -22,7 +22,7 @@ import re
 import commands
 import shutil
 
-versions = {}
+pkg_cur_dirs = []
 obsolete_dirs = []
 parser = None
 
@@ -39,15 +39,6 @@ def parse_version(verstr):
     else:
         return epoch + '_' + elems[1]
 
-def parse_dir(match, pkgabsdir):
-    pkg_name = match.group(1)
-    pkg_version = match.group(2)
-    if pkg_name in versions:
-        if pkg_version != versions[pkg_name]:
-            obsolete_dirs.append(pkgabsdir)
-        return True
-    return False
-
 def main():
     global parser
     parser = optparse.OptionParser(
@@ -89,7 +80,7 @@ This script must be ran under BUILDDIR after source file \"oe-init-build-env\"."
             version = parse_version(elems[1])
         else:
             version = parse_version(elems[2])
-        versions[elems[0]] = version
+        pkg_cur_dirs.append(elems[0] + '-' + version)
 
     cmd = "bitbake -e | grep ^TMPDIR"
     (ret, output) = commands.getstatusoutput(cmd)
@@ -103,31 +94,27 @@ This script must be ran under BUILDDIR after source file \"oe-init-build-env\"."
         print "WORKDIR %s does NOT exist. Quit." % workdir
         return 1
 
-    for archdir in os.listdir(workdir):
-        archdir = os.path.join(workdir, archdir)
-        if not os.path.isdir(archdir):
-            pass
-
-        for pkgdir in sorted(os.listdir(archdir)):
-            pkgabsdir = os.path.join(archdir, pkgdir)
-            if not os.path.isdir(pkgabsdir):
-                pass
-
-            # parse the package directory names
-            # parse native/nativesdk packages first
-            match = re.match('(.*?-native.*?)-(.*)', pkgdir)
-            if match and parse_dir(match, pkgabsdir):
-                continue
-
-            # parse package names which ends with numbers such as 'glib-2.0'
-            match = re.match('(.*?-[\.\d]+)-(\d.*)', pkgdir)
-            if match and parse_dir(match, pkgabsdir):
-                continue
-
-            # other packages
-            match = re.match('(.*?)-(\d.*)', pkgdir)
-            if match and parse_dir(match, pkgabsdir):
-                continue
+    for workroot, dirs, files in os.walk(workdir):
+        # For the files, they should NOT exist in WORKDIR. Romve them.
+        for f in files:
+            obsolete_dirs.append(os.path.join(workroot, f))
+
+        for d in dirs:
+            for pkgroot, pkgdirs, filenames in os.walk(os.path.join(workroot, d)):
+                for f in filenames:
+                    obsolete_dirs.append(os.path.join(pkgroot, f))
+
+                for pkgdir in sorted(pkgdirs):
+                    if pkgdir not in pkg_cur_dirs:
+                        obsolete_dirs.append(os.path.join(pkgroot, pkgdir))
+
+                # just process the top dir of every package under tmp/work/*/,
+                # then jump out of the above os.walk()
+                break
+
+        # it is convenient to use os.walk() to get dirs and files at same time
+        # both of them have been dealed in the loop, so jump out
+        break
 
     for d in obsolete_dirs:
         print "Deleleting %s" % d
Signature · 1 line
1.7.7.6
author
#18 lore raw

[Consolidated Pull 16/23] meta-skeleton: add linux-yocto-custom reference recipe

In reply to Saul Wold

From: Bruce Ashfield <[email protected]>

Adding a skeleton/refrence recipe for using a subset of the yocto kernel tools against kernel git repositories.

Sample/reference configuration fragments, features and a patch are provided and documented in the recipe.

From the recipe itself:

Provides an example/minimal kernel recipe that uses the linux-yocto and oe-core kernel classes to apply a subset of yocto kernel management to git managed kernel repositories.

Notes:

kconfig(s): the kernel must be configured with a defconfig, or via
configuration fragment(s). Either of these can be added via bbappend.
patches: patches can be merged into to the source git tree itself, added
using standard bbappend syntax or controlled via .scc feature descriptions (also via bbappends)

example configuration addition:

            SRC_URI += "file://smp.cfg"
   example patch addition (for kernel v3.4 only):
            SRC_URI += "file://0001-linux-version-tweak.patch
   example feature addition (for kernel v3.4 only):
            SRC_URI += "file://feature.scc"

Warning:

Building the sample kernel tree (kernel.org) without providing any configuration will result in build or boot errors. This is not a bug it is a required element for creating a valid kernel.

[YOCTO #2397]

---
 .../recipes-kernel/linux/linux-yocto-custom.bb     |   46 ++++++++++++++++++++
 .../0001-linux-version-tweak.patch                 |   26 +++++++++++
 .../linux/linux-yocto-custom/feature.scc           |    1 +
 .../linux/linux-yocto-custom/smp.cfg               |    1 +
 4 files changed, 74 insertions(+), 0 deletions(-)
 create mode 100644 meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb
 create mode 100644 meta-skeleton/recipes-kernel/linux/linux-yocto-custom/0001-linux-version-tweak.patch
 create mode 100644 meta-skeleton/recipes-kernel/linux/linux-yocto-custom/feature.scc
 create mode 100644 meta-skeleton/recipes-kernel/linux/linux-yocto-custom/smp.cfg
meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb new file +46 -0
new file mode 100644
index 0000000..1438ad8
@@ -0,0 +1,46 @@
+# linux-yocto-custom.bb:
+#
+#   Provides an example/minimal kernel recipe that uses the linux-yocto
+#   and oe-core kernel classes to apply a subset of yocto kernel 
+#   management to git managed kernel repositories.
+#
+# Notes:
+#
+#   kconfig(s): the kernel must be configured with a defconfig, or via
+#               configuration fragment(s). Either of these can be added
+#               via bbappend.
+#   patches: patches can be merged into to the source git tree itself, added
+#            using standard bbappend syntax or controlled via .scc feature 
+#            descriptions (also via bbappends)
+#   
+#   example configuration addition:
+#            SRC_URI += "file://smp.cfg"
+#   example patch addition (for kernel v3.4 only):
+#            SRC_URI += "file://0001-linux-version-tweak.patch
+#   example feature addition (for kernel v3.4 only):
+#            SRC_URI += "file://feature.scc"
+#
+# Warning:
+#
+#   Building the sample kernel tree (kernel.org) without providing any
+#   configuration will result in build or boot errors. This is not a bug
+#   it is a required element for creating a valid kernel.
+#    
+
+inherit kernel
+require recipes-kernel/linux/linux-yocto.inc
+
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git;protocol=git;nocheckout=1"
+
+LINUX_VERSION ?= "3.4"
+LINUX_VERSION_EXTENSION ?= "-custom"
+
+# tag: v3.4 76e10d158efb6d4516018846f60c2ab5501900bc
+SRCREV="76e10d158efb6d4516018846f60c2ab5501900bc"
+
+PR = "r0"
+PV = "${LINUX_VERSION}+git${SRCPV}"
+
+COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemux86-64)"
+
+require recipes-kernel/linux/linux-tools.inc
meta-skeleton/recipes-kernel/linux/linux-yocto-custom/0001-linux-version-tweak.patch new file +26 -0
new file mode 100644
index 0000000..c9562da
@@ -0,0 +1,26 @@
+From 5a55943a6bbb10a79994a0b18071b2427dffb15f Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <[email protected]>
+Date: Mon, 11 Jun 2012 15:31:42 -0400
+Subject: [PATCH] linux: version tweak
+
+Signed-off-by: Bruce Ashfield <[email protected]>
+---
+ Makefile |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index a687963..f5b1ac3 100644
+--- a/Makefile
++++ b/Makefile
+@@ -2,7 +2,7 @@ VERSION = 3
+ PATCHLEVEL = 4
+ SUBLEVEL = 0
+ EXTRAVERSION =
+-NAME = Saber-toothed Squirrel
++NAME = Saber-toothed Squirrel-custom
+ 
+ # *DOCUMENTATION*
+ # To see a list of typical targets execute "make help"
+-- 
+1.7.5.4
+
meta-skeleton/recipes-kernel/linux/linux-yocto-custom/feature.scc new file +1 -0
new file mode 100644
index 0000000..aad5af4
@@ -0,0 +1 @@
+patch 0001-linux-version-tweak.patch
meta-skeleton/recipes-kernel/linux/linux-yocto-custom/smp.cfg new file +1 -0
new file mode 100644
index 0000000..0c26a86
@@ -0,0 +1 @@
+# CONFIG_SMP is not set
Signature · 1 line
1.7.7.6
author
#19 lore raw

[Consolidated Pull 21/23] directfb: fix Upstream-status -> Upstream-Status

In reply to Saul Wold
---
 ...ibdirect-remove-include-of-linux-config.h.patch |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
meta/recipes-graphics/directfb/directfb/libdirect-remove-include-of-linux-config.h.patch +1 -1
index dcf6736..6c014ca 100644
@@ -1,4 +1,4 @@
-Upstream-status: backport from 1.6.0-pre1
+Upstream-Status: backport from 1.6.0-pre1
 
 From cd575a84f10d90759e069f5f2e6092251a1b84bd Mon Sep 17 00:00:00 2001
 From: Sven Neumann <[email protected]>
Signature · 1 line
1.7.7.6
author
#20 lore raw

[Consolidated Pull 19/23] cleanup-workdir: only deal dirs related to current arch

In reply to Saul Wold

From: Kang Kai <[email protected]>

Some users may build for different archs under same workdir, so they don't want to clean the dirs not related to current arch.

Run command 'bitbake -e' with selected packages to get the dirs related to current arch then clean them.

Update the way to get the WORKDIR by parsing the IMAGE_ROOTFS by the way.

---
 scripts/cleanup-workdir |   54 ++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 49 insertions(+), 5 deletions(-)
scripts/cleanup-workdir +49 -5
index 1e9c56d..156a259 100755
@@ -47,6 +47,19 @@ def run_command(cmd):
         sys.exit(1)
     return output
 
+def get_cur_arch_dirs(workdir, arch_dirs):
+    pattern = workdir + '/(.*?)/'
+
+    # select thest 5 packages to get the dirs of current arch
+    pkgs = ['hicolor-icon-theme', 'base-files', 'acl-native', 'binutils-crosssdk', 'autoconf-nativesdk']
+
+    for pkg in pkgs:
+        cmd = "bitbake -e " + pkg + " | grep ^IMAGE_ROOTFS="
+        output = run_command(cmd)
+        output = output.split('"')[1]
+        m = re.match(pattern, output)
+        arch_dirs.append(m.group(1))
+
 def main():
     global parser
     parser = optparse.OptionParser(
@@ -87,21 +100,52 @@ This script must be ran under BUILDDIR after source file \"oe-init-build-env\"."
             version = parse_version(elems[2])
         pkg_cur_dirs.append(elems[0] + '-' + version)
 
-    cmd = "bitbake -e | grep ^TMPDIR"
+    cmd = "bitbake -e"
     output = run_command(cmd)
 
-    tmpdir = output.split('"')[1]
-    workdir = os.path.join(tmpdir, 'work')
-    if not os.path.exists(workdir):
-        print "WORKDIR %s does NOT exist. Quit." % workdir
+    tmpdir = None
+    image_rootfs = None
+    output = output.split('\n')
+    for line in output:
+        if tmpdir and image_rootfs:
+            break
+
+        if not tmpdir:
+            m = re.match('TMPDIR="(.*)"', line)
+            if m:
+                tmpdir = m.group(1)
+
+        if not image_rootfs:
+            m = re.match('IMAGE_ROOTFS="(.*)"', line)
+            if m:
+                image_rootfs = m.group(1)
+
+    # won't fail just in case
+    if not tmpdir or not image_rootfs:
+        print "Can't get TMPDIR or IMAGE_ROOTFS."
+        return 1
+
+    pattern = tmpdir + '/(.*?)/(.*?)/'
+    m = re.match(pattern, image_rootfs)
+    if not m:
+        print "Can't get WORKDIR."
         return 1
 
+    workdir = os.path.join(tmpdir, m.group(1))
+
+    # we only deal the dirs of current arch, total numbers of dirs are 6
+    cur_arch_dirs = [m.group(2)]
+    get_cur_arch_dirs(workdir, cur_arch_dirs)
+
     for workroot, dirs, files in os.walk(workdir):
         # For the files, they should NOT exist in WORKDIR. Romve them.
         for f in files:
             obsolete_dirs.append(os.path.join(workroot, f))
 
         for d in dirs:
+            if d not in cur_arch_dirs:
+                continue
+
             for pkgroot, pkgdirs, filenames in os.walk(os.path.join(workroot, d)):
                 for f in filenames:
                     obsolete_dirs.append(os.path.join(pkgroot, f))
Signature · 1 line
1.7.7.6
author
#21 lore raw

[Consolidated Pull 20/23] cleanup-workdir: update help text

In reply to Saul Wold

From: Kang Kai <[email protected]>

Update the help text to tell user that the files and dirs under WORKDIR which are not created by Yocto will be deleted.

---
 scripts/cleanup-workdir |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)
scripts/cleanup-workdir +5 -2
index 156a259..c748846 100755
@@ -65,8 +65,11 @@ def main():
     parser = optparse.OptionParser(
         usage = """%prog
 
-Remove the obsolete packages' build directories in WORKDIR.
-This script must be ran under BUILDDIR after source file \"oe-init-build-env\".""")
+%prog removes the obsolete packages' build directories in WORKDIR.
+This script must be ran under BUILDDIR after source file \"oe-init-build-env\".
+
+Any file or directory under WORKDIR which is not created by Yocto
+will be deleted. Be CAUTIOUS.""")
 
     options, args = parser.parse_args(sys.argv)
 
Signature · 1 line
1.7.7.6
author
#22 lore raw

[Consolidated Pull 22/23] curl: Use gnutls for target and openssl for native

In reply to Saul Wold

Since gnutls is available on the target use it, but we do not build gnutls for the native side as it adds too many dependecies, so use openssl.

---
 meta/recipes-support/curl/curl_7.24.0.bb |   13 ++++++-------
 1 files changed, 6 insertions(+), 7 deletions(-)
meta/recipes-support/curl/curl_7.24.0.bb +6 -7
index f9dce7d..2c5369c 100644
@@ -5,10 +5,10 @@ SECTION = "console/network"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://COPYING;beginline=7;md5=3a34942f4ae3fbf1a303160714e664ac"
 
-DEPENDS = "zlib gnutls openssl"
+DEPENDS = "zlib gnutls"
 DEPENDS_virtclass-native = "zlib-native openssl-native"
-DEPENDS_virtclass-nativesdk = "zlib-nativesdk openssl-nativesdk"
-PR = "r1"
+DEPENDS_virtclass-nativesdk = "zlib-nativesdk"
+PR = "r2"
 
 SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2 \
            file://noldlibpath.patch \
@@ -20,7 +20,6 @@ SRC_URI[sha256sum] = "ebdb111088ff8b0e05b1d1b075e9f1608285e8105cc51e21caacf33d01
 inherit autotools pkgconfig binconfig
 
 EXTRA_OECONF = "--with-zlib=${STAGING_LIBDIR}/../ \
-		--with-ssl \
                 --without-libssh2 \
 		--with-random=/dev/urandom \
 		--without-libidn \
@@ -28,9 +27,9 @@ EXTRA_OECONF = "--with-zlib=${STAGING_LIBDIR}/../ \
                 ${CURLGNUTLS} \
 		"
 
-CURLGNUTLS = " --with-gnutls=${STAGING_LIBDIR}/../"
-CURLGNUTLS_virtclass-native = "--without-gnutls"
-CURLGNUTLS_virtclass-nativesdk = "--without-gnutls"
+CURLGNUTLS = " --with-gnutls=${STAGING_LIBDIR}/../ --without-ssl"
+CURLGNUTLS_virtclass-native = "--without-gnutls --with-ssl"
+CURLGNUTLS_virtclass-nativesdk = "--without-gnutls --without-ssl"
 
 do_configure_prepend() {
 	sed -i s:OPT_GNUTLS/bin:OPT_GNUTLS:g configure.ac
Signature · 1 line
1.7.7.6
author
#23 lore raw

[Consolidated Pull 23/23] mdadm: add binutils to DEPENDS

In reply to Saul Wold

mdadm requires ansidecl.h and therefore binutils needs to be completely installed before this compile can complete, so add the DEPENDS.

---
 meta/recipes-extended/mdadm/mdadm_3.2.5.bb |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
meta/recipes-extended/mdadm/mdadm_3.2.5.bb +1 -0
index 2d7e1d0..244777b 100644
@@ -9,6 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
                     file://mdadm.h;beglinlne=4;endline=22;md5=462bc9936ac0d3da110191a3f9994161"
 
 PR = "r0"
+DEPENDS = "binutils" 
 
 SRC_URI = "${KERNELORG_MIRROR}/linux/utils/raid/mdadm/${BPN}-${PV}.tar.bz2 \
 	    file://mdadm-3.2.2_fix_for_x32.patch \
Signature · 1 line
1.7.7.6
#24 lore raw

Re: [Consolidated Pull 23/23] mdadm: add binutils to DEPENDS

Quoted 13 lines · Saul Wold

mdadm requires ansidecl.h and therefore binutils needs to be completely installed before this compile can complete, so add the DEPENDS.

---
 meta/recipes-extended/mdadm/mdadm_3.2.5.bb |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
meta/recipes-extended/mdadm/mdadm_3.2.5.bb +0 -0
index 2d7e1d0..244777b 100644

meta/recipes-extended/mdadm/mdadm_3.2.5.bb LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ · line 15

Quoted 7 lines
meta/recipes-extended/mdadm/mdadm_3.2.5.bb +1 -0
@@ -9,6 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
                     file://mdadm.h;beglinlne=4;endline=22;md5=462bc9936ac0d3da110191a3f9994161"
 
 PR = "r0"
+DEPENDS = "binutils" 
 
 SRC_URI = "${KERNELORG_MIRROR}/linux/utils/raid/mdadm/${BPN}-${PV}.tar.bz2 \
 	    file://mdadm-3.2.2_fix_for_x32.patch \

I think we can likely just remove the use of the header:

http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=37cf162998b13d7d594c7ed68c47d440a3033ed5

Cheers,

Richard

author
#25 lore raw

Re: [Consolidated Pull 23/23] mdadm: add binutils to DEPENDS

Quoted 19 lines · Richard Purdie
Quoted 18 lines · Saul Wold

mdadm requires ansidecl.h and therefore binutils needs to be completely installed before this compile can complete, so add the DEPENDS.

---
  meta/recipes-extended/mdadm/mdadm_3.2.5.bb |    1 +
  1 files changed, 1 insertions(+), 0 deletions(-)
meta/recipes-extended/mdadm/mdadm_3.2.5.bb +1 -0
index 2d7e1d0..244777b 100644
@@ -9,6 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
                      file://mdadm.h;beglinlne=4;endline=22;md5=462bc9936ac0d3da110191a3f9994161"
 
  PR = "r0"
+DEPENDS = "binutils"
 
Quoted 7 lines

meta/recipes-extended/mdadm/mdadm_3.2.5.bb LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ · line 15

Quoted 2 lines
meta/recipes-extended/mdadm/mdadm_3.2.5.bb +0 -0
  SRC_URI = "${KERNELORG_MIRROR}/linux/utils/raid/mdadm/${BPN}-${PV}.tar.bz2 \
  	    file://mdadm-3.2.2_fix_for_x32.patch \

I think we can likely just remove the use of the header:

http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=37cf162998b13d7d594c7ed68c47d440a3033ed5

Fixed in the branch oe-contrib/sgw/stage branch as suggested.

Sau!

Quoted 12 lines

Cheers,

Richard

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

#26 lore raw
In reply to Saul Wold
Quoted 47 lines · Saul Wold

Richard,

Been tested on the ab over the weekend, reviewed.

Autobuild turned up a latent dependency issue with mdadm!

Sau!

The following changes since commit 63d1ae1c2828cda03828b4c3fdde037d7a23f1e4:

directfb: added missing Upstream-status (2012-06-15 15:41:11 +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=sgw/stage

Bruce Ashfield (1):
meta-skeleton: add linux-yocto-custom reference recipe

Kang Kai (4):
cleanup-workdir: update the way to check obsolete dirs
cleanup-workdir: replace commands with subprocess
cleanup-workdir: only deal dirs related to current arch
cleanup-workdir: update help text

Khem Raj (9):
uclibc_0.9.33.bb: Upgrade to latest git site/x86_64-linux-uclibc: Cache definitions of guint32/guint64
rpm: Fix compilation on uclibc
rpm: Use link time check for libssp
sat-solver: Fix build on uclibc
libzypp: Fix build with uclibc
rpm: pass lrt and lpthread to link step explicitly for uclibc
zypper: Fix build on uclibc
libzypp: Define OECMAKE_CXX_LINK_FLAGS when compiling for uclibc

Laurentiu Palcu (2):
core-image-gtk-directfb, qt4e-demo-image: Remove module-init-tools
from IMAGE_INSTALL list
puzzles: upgrade to r9561

Mark Hatle (1):
busybox: Fix syslog configuration file

Robert Yang (1):
gcc-cross: argument list too long when do_install

Quoted 8 lines

Saul Wold (3):
directfb: fix Upstream-status -> Upstream-Status
curl: Use gnutls for target and openssl for native
mdadm: add binutils to DEPENDS

Xiaofeng Yan (2):
multilib.conf: Add the support of multilib for lsbinitscripts
lsbinitscripts: Add the header for functions.patch

Merged to master, thanks.

(Including updated version of the mdadm patch)

Richard