[oe] [meta-oe][PATCH 3/3] emacs: fix X11DEPENDS and build without x11 enabled at all

Martin Jansa martin.jansa at gmail.com
Sat Sep 22 15:07:42 UTC 2012


* also added copy for libcroco
  librsvg is linked to it by default after
  http://git.openembedded.org/openembedded-core/commit/?id=e177f1475c55c7d0bf3e2752e6502a7e8577a075

Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
---
 meta-oe/recipes-support/emacs/emacs.inc     | 114 +++++++++++++++-------------
 meta-oe/recipes-support/emacs/emacs_23.4.bb |   2 +-
 2 files changed, 64 insertions(+), 52 deletions(-)

diff --git a/meta-oe/recipes-support/emacs/emacs.inc b/meta-oe/recipes-support/emacs/emacs.inc
index 61761e8..b7a7b75 100644
--- a/meta-oe/recipes-support/emacs/emacs.inc
+++ b/meta-oe/recipes-support/emacs/emacs.inc
@@ -8,7 +8,13 @@ DEPENDS += "qemu-native"
 
 DEPENDS +=" liblockfile"
 
-X11DEPENDS = "gtk+ libungif dbus"
+X11DEPENDS = " \
+  libice libsm atk cairo dbus expat libffi fontconfig freetype gconf giflib \
+  jpeg xz pixman libpng librsvg tiff libcroco \
+  libx11 libxau libxcomposite libxcursor libxdamage libxdmcp libxext libxfixes \
+  libxft libxpm libxrandr libxrender \
+  gdk-pixbuf glib-2.0 gtk+ pango libxcb \
+" 
 
 EXTRA_OECONF =  "--without-sound --with-crt-dir=${STAGING_LIBDIR} "
 
@@ -50,11 +56,24 @@ do_compile_prepend() {
 	if [ -e $treedir ];then
 		rm -rf $treedir
 	fi
+	
+	mkdir -p $treedir/${base_libdir}
+
+	if [ -f ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so ]; then
+		cp -pPR ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so $treedir/${base_libdir}
+	fi
+	if [ -f ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so.* ]; then
+		cp -pPR ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so.* $treedir/${base_libdir}
+	fi
+	# stupid hack, but without it, it tries to use /usr/lib/libc.so from host and fails
+	# temacs: error while loading shared libraries: /usr/lib/libc.so: ELF file version does not match current one
+	if [ ! -f $treedir/${base_libdir}/libc.so ]; then
+		ln -s libc.so.6 $treedir/${base_libdir}/libc.so
+	fi
 
 	# copy only as much stuff as we need
 	# before: 5.5G   ../../qemu-treedir/
-	# after:   86M   ../../qemu-treedir/
-	mkdir -p $treedir/${base_libdir}
+	# after:   17M   ../../qemu-treedir/
 	cp -pPR \
 	${STAGING_DIR_TARGET}/${base_libdir}/ld-* \
 	${STAGING_DIR_TARGET}/${base_libdir}/libc.* \
@@ -65,57 +84,50 @@ do_compile_prepend() {
 	${STAGING_DIR_TARGET}/${base_libdir}/libresolv* \
 	${STAGING_DIR_TARGET}/${base_libdir}/libdl* \
 	${STAGING_DIR_TARGET}/${base_libdir}/librt* \
-	${STAGING_DIR_TARGET}/${base_libdir}/libresolv* \
 	${STAGING_DIR_TARGET}/${base_libdir}/libgcc_s.so.* \
-	${STAGING_DIR_TARGET}/${base_libdir}/libuuid.so.* \
 	${STAGING_DIR_TARGET}/${base_libdir}/libpthread* $treedir/${base_libdir}/
 
-	cp -pPR \
-	${STAGING_DIR_TARGET}/${libdir}/libICE.so.* \
-	${STAGING_DIR_TARGET}/${libdir}/libSM.so.* \
-	${STAGING_DIR_TARGET}/${libdir}/libatk-1.0.so.* \
-	${STAGING_DIR_TARGET}/${libdir}/libcairo.so.* \
-	${STAGING_DIR_TARGET}/${libdir}/libdbus-1.so.* \
-	${STAGING_DIR_TARGET}/${libdir}/libdbus-glib-1.so.* \
-	${STAGING_DIR_TARGET}/${libdir}/libexpat.so.* \
-	${STAGING_DIR_TARGET}/${libdir}/libffi.so.* \
-	${STAGING_DIR_TARGET}/${libdir}/libfontconfig.so.* \
-	${STAGING_DIR_TARGET}/${libdir}/libfreetype.so.* \
-	${STAGING_DIR_TARGET}/${libdir}/libgconf-2.so.* \
-	${STAGING_DIR_TARGET}/${libdir}/libgif.so.* \
-	${STAGING_DIR_TARGET}/${libdir}/libjpeg.so.* \
-	${STAGING_DIR_TARGET}/${libdir}/liblzma.so.* \
-	${STAGING_DIR_TARGET}/${libdir}/libpixman-1.so.* \
-	${STAGING_DIR_TARGET}/${libdir}/libpng12.so.* \
-	${STAGING_DIR_TARGET}/${libdir}/librsvg-2.so.* \
-	${STAGING_DIR_TARGET}/${libdir}/libstdc++.so.* \
-	${STAGING_DIR_TARGET}/${libdir}/libtiff.so.* \
-	${STAGING_DIR_TARGET}/${libdir}/libxml2.so.* \
-	${STAGING_DIR_TARGET}/${libdir}/libz.so.* $treedir/${base_libdir}/
-
-	# X11 Xau Xcomposite Xcursor Xdamage Xdmcp Xext Xfixes Xft Xpm Xrandr Xrender
-	cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libX*.so.* $treedir/${base_libdir}/
-
-	# gdk-x11 gdk_pixbuf gio glib gmodule gobject gthread gtk-x11
-	cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libg*-2.0.so.* $treedir/${base_libdir}/
-
-	# pango pangocairo pangoft2
-	cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libpango*-1.0.so.* $treedir/${base_libdir}/
-
-	# xcb-render xcb-shm xcb
-	cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libxcb*.so.* $treedir/${base_libdir}/
-
-	#cp -pPR ${STAGING_DIR_TARGET}/* $treedir
-	if [ -f ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so ]; then
-		cp -pPR ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so $treedir/lib
-	fi
-	if [ -f ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so.* ]; then
-		cp -pPR ${TOOLCHAIN_PATH}/${TARGET_SYS}/${base_libdir}/libgcc_s.so.* $treedir/lib
-	fi
-	# stupid hack, but without it, it tries to use /usr/lib/libc.so from host and fails
-	# temacs: error while loading shared libraries: /usr/lib/libc.so: ELF file version does not match current one
-	if [ ! -f $treedir/${base_libdir}/libc.so ]; then
-		ln -s libc.so.6 $treedir/${base_libdir}/libc.so
+	if [ ! -z "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" ] ; then
+		echo "X11 build enabled"
+		# copy only as much stuff as we need
+		# before: 5.5G   ../../qemu-treedir/
+		# after:   86M   ../../qemu-treedir/
+		cp -pPR \
+		${STAGING_DIR_TARGET}/${base_libdir}/libuuid.so.* \
+		${STAGING_DIR_TARGET}/${libdir}/libICE.so.* \
+		${STAGING_DIR_TARGET}/${libdir}/libSM.so.* \
+		${STAGING_DIR_TARGET}/${libdir}/libatk-1.0.so.* \
+		${STAGING_DIR_TARGET}/${libdir}/libcairo.so.* \
+		${STAGING_DIR_TARGET}/${libdir}/libdbus-1.so.* \
+		${STAGING_DIR_TARGET}/${libdir}/libdbus-glib-1.so.* \
+		${STAGING_DIR_TARGET}/${libdir}/libexpat.so.* \
+		${STAGING_DIR_TARGET}/${libdir}/libffi.so.* \
+		${STAGING_DIR_TARGET}/${libdir}/libfontconfig.so.* \
+		${STAGING_DIR_TARGET}/${libdir}/libfreetype.so.* \
+		${STAGING_DIR_TARGET}/${libdir}/libgconf-2.so.* \
+		${STAGING_DIR_TARGET}/${libdir}/libgif.so.* \
+		${STAGING_DIR_TARGET}/${libdir}/libjpeg.so.* \
+		${STAGING_DIR_TARGET}/${libdir}/liblzma.so.* \
+		${STAGING_DIR_TARGET}/${libdir}/libpixman-1.so.* \
+		${STAGING_DIR_TARGET}/${libdir}/libpng12.so.* \
+		${STAGING_DIR_TARGET}/${libdir}/librsvg-2.so.* \
+		${STAGING_DIR_TARGET}/${libdir}/libstdc++.so.* \
+		${STAGING_DIR_TARGET}/${libdir}/libtiff.so.* \
+		${STAGING_DIR_TARGET}/${libdir}/libxml2.so.* \
+		${STAGING_DIR_TARGET}/${libdir}/libcroco-0.6.so.* \
+		${STAGING_DIR_TARGET}/${libdir}/libz.so.* $treedir/${base_libdir}/
+
+		# X11 Xau Xcomposite Xcursor Xdamage Xdmcp Xext Xfixes Xft Xpm Xrandr Xrender
+		cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libX*.so.* $treedir/${base_libdir}/
+
+		# gdk-x11 gdk_pixbuf gio glib gmodule gobject gthread gtk-x11
+		cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libg*-2.0.so.* $treedir/${base_libdir}/
+
+		# pango pangocairo pangoft2
+		cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libpango*-1.0.so.* $treedir/${base_libdir}/
+
+		# xcb-render xcb-shm xcb
+		cp -pPR ${STAGING_DIR_TARGET}/${libdir}/libxcb*.so.* $treedir/${base_libdir}/
 	fi
 }
 
diff --git a/meta-oe/recipes-support/emacs/emacs_23.4.bb b/meta-oe/recipes-support/emacs/emacs_23.4.bb
index 65cc3a3..5ad5644 100644
--- a/meta-oe/recipes-support/emacs/emacs_23.4.bb
+++ b/meta-oe/recipes-support/emacs/emacs_23.4.bb
@@ -1,6 +1,6 @@
 require emacs.inc
 
-PR = "r1"
+PR = "r2"
 
 SRC_URI = "${GNU_MIRROR}/emacs/emacs-${PV}.tar.gz;name=tarball \
            file://use-qemu.patch \
-- 
1.7.12





More information about the Openembedded-devel mailing list