Patchwork [1/2] newt: enable python support

login
register
mail settings
Submitter Kang Kai
Date Dec. 10, 2012, 9:37 a.m.
Message ID <82be931f7271af4863557f93daa29324fcbb439b.1355131760.git.kai.kang@windriver.com>
Download mbox | patch
Permalink /patch/40683/
State New
Headers show

Comments

Kang Kai - Dec. 10, 2012, 9:37 a.m.
Compile newt with python support. There may be packages that need newt's
python extension.

Add python to DEPENDS. And add patch fix_python_fpic.patch to compile
python .so module with flag -fPIC.

Signed-off-by: Kang Kai <kai.kang@windriver.com>
---
 .../newt/files/fix_python_fpic.patch               |   11 +++++++++
 meta/recipes-extended/newt/libnewt_0.52.14.bb      |   24 +++++++++++++++-----
 2 files changed, 29 insertions(+), 6 deletions(-)
 create mode 100644 meta/recipes-extended/newt/files/fix_python_fpic.patch
Saul Wold - Dec. 10, 2012, 11:58 p.m.
On 12/10/2012 01:37 AM, Kang Kai wrote:
> Compile newt with python support. There may be packages that need newt's
> python extension.
>
> Add python to DEPENDS. And add patch fix_python_fpic.patch to compile
> python .so module with flag -fPIC.
>
> Signed-off-by: Kang Kai <kai.kang@windriver.com>
> ---
>   .../newt/files/fix_python_fpic.patch               |   11 +++++++++
>   meta/recipes-extended/newt/libnewt_0.52.14.bb      |   24 +++++++++++++++-----
>   2 files changed, 29 insertions(+), 6 deletions(-)
>   create mode 100644 meta/recipes-extended/newt/files/fix_python_fpic.patch
>
> diff --git a/meta/recipes-extended/newt/files/fix_python_fpic.patch b/meta/recipes-extended/newt/files/fix_python_fpic.patch
> new file mode 100644
> index 0000000..d0dbe99
> --- /dev/null
> +++ b/meta/recipes-extended/newt/files/fix_python_fpic.patch

No Patch Header!

Please add Signed-off-by and Upstream-Status to your patches.

Sau!

> @@ -0,0 +1,11 @@
> +--- newt-0.52.14/Makefile.in	2012-12-04 17:27:27.578915801 +0800
> ++++ newt-0.52.14/Makefile.in.new	2012-12-04 17:28:43.274918472 +0800
> +@@ -84,7 +84,7 @@
> + 			PIFLAGS=`$$ver-config --includes`; \
> + 			PLDFLAGS=`$$ver-config --ldflags`; \
> + 			PLFLAGS=`$$ver-config --libs`; \
> +-	        $(CC) $(CPPFLAGS) $$PIFLAGS $$PCFLAGS -c -o $$ver/snackmodule.o snackmodule.c ;\
> ++	        $(CC) $(SHCFLAGS) $(CPPFLAGS) $$PIFLAGS $$PCFLAGS -c -o $$ver/snackmodule.o snackmodule.c ;\
> + 	        $(CC) --shared $$PLDFLAGS $$PLFLAGS $(LDFLAGS) -o $$ver/_snackmodule.so $$ver/snackmodule.o -L.  -lnewt $(LIBS);\
> + 	done || :
> + 	touch $@
> diff --git a/meta/recipes-extended/newt/libnewt_0.52.14.bb b/meta/recipes-extended/newt/libnewt_0.52.14.bb
> index 0208695..c1ec029 100644
> --- a/meta/recipes-extended/newt/libnewt_0.52.14.bb
> +++ b/meta/recipes-extended/newt/libnewt_0.52.14.bb
> @@ -15,28 +15,40 @@ LICENSE = "LGPLv2"
>   LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
>
>   # slang needs to be >= 2.2
> -DEPENDS = "slang popt"
> +DEPENDS = "slang popt python"
>
> -PR = "r1"
> +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://cross_ar.patch \
> +           file://fix_python_fpic.patch"
>
>   SRC_URI[md5sum] = "eb78c6bb658b92ec7198908b5b8d0e37"
>   SRC_URI[sha256sum] = "f70f4f58baa60388ddf2e39249ffb00898fb40f2b2767e42e2ab51fe4b40978e"
>
>   S = "${WORKDIR}/newt-${PV}"
>
> -EXTRA_OECONF = "--without-python --without-tcl"
> +EXTRA_OECONF = "--without-tcl"
>
> -inherit autotools
> +inherit autotools pythonnative python-dir
>
> -PACKAGES_prepend = "whiptail "
> +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() {
>       sh autogen.sh
>   }
>
>   FILES_whiptail = "${bindir}/whiptail"
> +FILES_${PN}-dbg += "${PYTHON_SITEPACKAGES_DIR}/.debug/"
> +FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*"
> +FILES_${PN}-staticdev = "${libdir}/*.a"
>

Patch

diff --git a/meta/recipes-extended/newt/files/fix_python_fpic.patch b/meta/recipes-extended/newt/files/fix_python_fpic.patch
new file mode 100644
index 0000000..d0dbe99
--- /dev/null
+++ b/meta/recipes-extended/newt/files/fix_python_fpic.patch
@@ -0,0 +1,11 @@ 
+--- newt-0.52.14/Makefile.in	2012-12-04 17:27:27.578915801 +0800
++++ newt-0.52.14/Makefile.in.new	2012-12-04 17:28:43.274918472 +0800
+@@ -84,7 +84,7 @@
+ 			PIFLAGS=`$$ver-config --includes`; \
+ 			PLDFLAGS=`$$ver-config --ldflags`; \
+ 			PLFLAGS=`$$ver-config --libs`; \
+-	        $(CC) $(CPPFLAGS) $$PIFLAGS $$PCFLAGS -c -o $$ver/snackmodule.o snackmodule.c ;\
++	        $(CC) $(SHCFLAGS) $(CPPFLAGS) $$PIFLAGS $$PCFLAGS -c -o $$ver/snackmodule.o snackmodule.c ;\
+ 	        $(CC) --shared $$PLDFLAGS $$PLFLAGS $(LDFLAGS) -o $$ver/_snackmodule.so $$ver/snackmodule.o -L.  -lnewt $(LIBS);\
+ 	done || :
+ 	touch $@
diff --git a/meta/recipes-extended/newt/libnewt_0.52.14.bb b/meta/recipes-extended/newt/libnewt_0.52.14.bb
index 0208695..c1ec029 100644
--- a/meta/recipes-extended/newt/libnewt_0.52.14.bb
+++ b/meta/recipes-extended/newt/libnewt_0.52.14.bb
@@ -15,28 +15,40 @@  LICENSE = "LGPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
 
 # slang needs to be >= 2.2
-DEPENDS = "slang popt"
+DEPENDS = "slang popt python"
 
-PR = "r1"
+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://cross_ar.patch \
+           file://fix_python_fpic.patch"
 
 SRC_URI[md5sum] = "eb78c6bb658b92ec7198908b5b8d0e37"
 SRC_URI[sha256sum] = "f70f4f58baa60388ddf2e39249ffb00898fb40f2b2767e42e2ab51fe4b40978e"
 
 S = "${WORKDIR}/newt-${PV}"
 
-EXTRA_OECONF = "--without-python --without-tcl"
+EXTRA_OECONF = "--without-tcl"
 
-inherit autotools
+inherit autotools pythonnative python-dir
 
-PACKAGES_prepend = "whiptail "
+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() {
     sh autogen.sh
 }
 
 FILES_whiptail = "${bindir}/whiptail"
+FILES_${PN}-dbg += "${PYTHON_SITEPACKAGES_DIR}/.debug/"
+FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*"
+FILES_${PN}-staticdev = "${libdir}/*.a"