Patchwork [v2,4/4] libnewt: split python module into libnewt-python

login
register
mail settings
Submitter Christopher Larson
Date June 11, 2013, 1:49 a.m.
Message ID <c0ba5fcaba4666698c7ba9469b77554e07c1248f.1370915304.git.chris_larson@mentor.com>
Download mbox | patch
Permalink /patch/51489/
State New
Headers show

Comments

Christopher Larson - June 11, 2013, 1:49 a.m.
From: Christopher Larson <chris_larson@mentor.com>

This is useful as it avoids pulling python into a build just to build
chkconfig. The python recipe uses the libnewt installed in the sysroot by the
main package, so there's little loss of build time, other than the additional
unpack/patch.

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
---
 meta/recipes-extended/newt/libnewt-0.52.14.inc     | 45 ++++++++++++++++++
 .../newt/libnewt-python_0.52.14.bb                 | 26 +++++++++++
 meta/recipes-extended/newt/libnewt_0.52.14.bb      | 54 +---------------------
 3 files changed, 73 insertions(+), 52 deletions(-)
 create mode 100644 meta/recipes-extended/newt/libnewt-0.52.14.inc
 create mode 100644 meta/recipes-extended/newt/libnewt-python_0.52.14.bb

Patch

diff --git a/meta/recipes-extended/newt/libnewt-0.52.14.inc b/meta/recipes-extended/newt/libnewt-0.52.14.inc
new file mode 100644
index 0000000..262610c
--- /dev/null
+++ b/meta/recipes-extended/newt/libnewt-0.52.14.inc
@@ -0,0 +1,45 @@ 
+SUMMARY = "A library for text mode user interfaces"
+
+DESCRIPTION = "Newt is a programming library for color text mode, widget based user \
+interfaces.  Newt can be used to add stacked windows, entry widgets, \
+checkboxes, radio buttons, labels, plain text fields, scrollbars, \
+etc., to text mode user interfaces.  This package also contains the \
+shared library needed by programs built with newt, as well as a \
+/usr/bin/dialog replacement called whiptail.  Newt is based on the \
+slang library."
+
+HOMEPAGE = "https://fedorahosted.org/newt/"
+SECTION = "libs"
+
+LICENSE = "LGPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
+
+# slang needs to be >= 2.2
+DEPENDS = "slang popt"
+
+PR = "r2"
+
+SRC_URI = "https://fedorahosted.org/releases/n/e/newt/newt-${PV}.tar.gz \
+           file://remove_slang_include.patch \
+           file://fix_SHAREDDIR.patch \
+           file://cross_ar.patch \
+           file://fix_python_fpic.patch"
+
+SRC_URI[md5sum] = "eb78c6bb658b92ec7198908b5b8d0e37"
+SRC_URI[sha256sum] = "f70f4f58baa60388ddf2e39249ffb00898fb40f2b2767e42e2ab51fe4b40978e"
+
+S = "${WORKDIR}/newt-${PV}"
+
+EXTRA_OECONF = "--without-tcl --without-python"
+
+inherit autotools
+
+export STAGING_INCDIR
+export STAGING_LIBDIR
+
+export BUILD_SYS
+export HOST_SYS
+
+do_configure_prepend() {
+    sh autogen.sh
+}
diff --git a/meta/recipes-extended/newt/libnewt-python_0.52.14.bb b/meta/recipes-extended/newt/libnewt-python_0.52.14.bb
new file mode 100644
index 0000000..dd3ac63
--- /dev/null
+++ b/meta/recipes-extended/newt/libnewt-python_0.52.14.bb
@@ -0,0 +1,26 @@ 
+require recipes-extended/newt/libnewt-${PV}.inc
+
+SUMMARY .= " - python"
+DEPENDS = "libnewt python"
+RDEPENDS_${PN} += "python-core"
+
+inherit pythonnative python-dir
+
+EXTRA_OECONF += "--with-python"
+EXTRA_OEMAKE += "PYTHONVERS=${PYTHON_DIR}"
+
+
+do_compile () {
+	VERSION="$(sed -n 's/^VERSION = //p' Makefile)"
+	oe_runmake "LIBNEWTSH=${STAGING_LIBDIR}/libnewt.so.$VERSION" _snackmodule.so
+}
+
+do_install () {
+	install -d ${D}${PYTHON_SITEPACKAGES_DIR}
+	install -m 0755 ${PYTHON_DIR}/_snackmodule.so ${D}${PYTHON_SITEPACKAGES_DIR}/
+	install -m 0644 snack.py ${D}${PYTHON_SITEPACKAGES_DIR}/
+}
+
+
+FILES_${PN} = "${PYTHON_SITEPACKAGES_DIR}/*"
+FILES_${PN}-dbg += "${PYTHON_SITEPACKAGES_DIR}/.debug/"
diff --git a/meta/recipes-extended/newt/libnewt_0.52.14.bb b/meta/recipes-extended/newt/libnewt_0.52.14.bb
index 54da15d..155114e 100644
--- a/meta/recipes-extended/newt/libnewt_0.52.14.bb
+++ b/meta/recipes-extended/newt/libnewt_0.52.14.bb
@@ -1,54 +1,4 @@ 
-SUMMARY = "A library for text mode user interfaces"
-
-DESCRIPTION = "Newt is a programming library for color text mode, widget based user \
-interfaces.  Newt can be used to add stacked windows, entry widgets, \
-checkboxes, radio buttons, labels, plain text fields, scrollbars, \
-etc., to text mode user interfaces.  This package also contains the \
-shared library needed by programs built with newt, as well as a \
-/usr/bin/dialog replacement called whiptail.  Newt is based on the \
-slang library."
-
-HOMEPAGE = "https://fedorahosted.org/newt/"
-SECTION = "libs"
-
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
-
-# slang needs to be >= 2.2
-DEPENDS = "slang popt python"
-
-PR = "r2"
-
-SRC_URI = "https://fedorahosted.org/releases/n/e/newt/newt-${PV}.tar.gz \
-           file://remove_slang_include.patch \
-           file://fix_SHAREDDIR.patch \
-           file://cross_ar.patch \
-           file://fix_python_fpic.patch"
-
-SRC_URI[md5sum] = "eb78c6bb658b92ec7198908b5b8d0e37"
-SRC_URI[sha256sum] = "f70f4f58baa60388ddf2e39249ffb00898fb40f2b2767e42e2ab51fe4b40978e"
-
-S = "${WORKDIR}/newt-${PV}"
-
-EXTRA_OECONF = "--without-tcl"
-
-inherit autotools pythonnative python-dir
-
-EXTRA_OEMAKE = "PYTHONVERS=${PYTHON_DIR}"
-
-export STAGING_INCDIR
-export STAGING_LIBDIR
-
-export BUILD_SYS
-export HOST_SYS
-
-PACKAGES_prepend = "whiptail ${PN}-python "
-
-do_configure_prepend() {
-    ( cd ${S}; sh autogen.sh )
-}
+require recipes-extended/newt/${BPN}-${PV}.inc
 
+PACKAGES =+ "whiptail"
 FILES_whiptail = "${bindir}/whiptail"
-FILES_${PN}-dbg += "${PYTHON_SITEPACKAGES_DIR}/.debug/"
-FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*"
-FILES_${PN}-staticdev = "${libdir}/*.a"