[OE-core] [PATCH 1/2] swig: add package 3.0.2
Martin Jansa
martin.jansa at gmail.com
Wed Aug 19 13:12:01 UTC 2015
On Wed, Aug 19, 2015 at 03:29:28AM -0400, wenzong.fan at windriver.com wrote:
> From: Wenzong Fan <wenzong.fan at windriver.com>
>
> Pull package from meta-oe to oe-core:
> meta-oe commit: 8b7d90d8e4c3338f94c588fc7e4a88319bd9a9e8
There is patch for meta-oe to upgrade it to 3.0.6 (which isn't
compatible with some recipes, but fixes for that were sent as well
already).
> It's required for libcap-ng to build python bindings.
>
> With adding it to oe-core, the copies from following layers could
> be removed:
>
> * meta-oe, meta-selinux, meta-intel-iot-middleware ...
>
> Signed-off-by: Wenzong Fan <wenzong.fan at windriver.com>
> ---
> meta/recipes-devtools/swig/swig.inc | 63 ++++++++++++++++++++
> ...lf-exe-for-swig-swiglib-on-non-Win32-plat.patch | 69 ++++++++++++++++++++++
> ...nfigure-use-pkg-config-for-pcre-detection.patch | 64 ++++++++++++++++++++
> meta/recipes-devtools/swig/swig_3.0.2.bb | 8 +++
> 4 files changed, 204 insertions(+)
> create mode 100644 meta/recipes-devtools/swig/swig.inc
> create mode 100644 meta/recipes-devtools/swig/swig/0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch
> create mode 100644 meta/recipes-devtools/swig/swig/0001-configure-use-pkg-config-for-pcre-detection.patch
> create mode 100644 meta/recipes-devtools/swig/swig_3.0.2.bb
>
> diff --git a/meta/recipes-devtools/swig/swig.inc b/meta/recipes-devtools/swig/swig.inc
> new file mode 100644
> index 0000000..9821fa5
> --- /dev/null
> +++ b/meta/recipes-devtools/swig/swig.inc
> @@ -0,0 +1,63 @@
> +DESCRIPTION = "SWIG - Simplified Wrapper and Interface Generator"
> +HOMEPAGE = "http://swig.sourceforge.net/"
> +LICENSE = "BSD & GPLv3"
> +LIC_FILES_CHKSUM = "file://LICENSE;md5=e7807a6282784a7dde4c846626b08fc6 \
> + file://LICENSE-GPL;md5=d32239bcb673463ab874e80d47fae504 \
> + file://LICENSE-UNIVERSITIES;md5=8ce9dcc8f7c994de4a408b205c72ba08"
> +
> +SECTION = "devel"
> +
> +DEPENDS = "libpcre python"
> +
> +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz"
> +
> +inherit autotools pythonnative
> +
> +EXTRA_OECONF = " \
> + --with-python=${PYTHON} \
> + --without-allegrocl \
> + --without-android \
> + --without-boost \
> + --without-chicken \
> + --without-clisp \
> + --without-csharp \
> + --without-d \
> + --without-gcj \
> + --without-go \
> + --without-guile \
> + --without-java \
> + --without-lua \
> + --without-mzscheme \
> + --without-ocaml \
> + --without-octave \
> + --without-perl5 \
> + --without-pike \
> + --without-php \
> + --without-python3 \
> + --without-r \
> + --without-ruby \
> + --without-tcl \
> +"
> +
> +BBCLASSEXTEND = "native nativesdk"
> +
> +do_configure() {
> + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}/Tools/config
> + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}/Tools/config
> + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}
> + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}
> + oe_runconf
> +}
> +
> +do_install_append_class-nativesdk() {
> + cd ${D}${bindir}
> + ln -s swig swig2.0
> +}
> +
> +def swiglib_relpath(d):
> + swiglib = d.getVar('datadir', True) + "/" + d.getVar('BPN', True) + "/" + d.getVar('PV', True)
> + return os.path.relpath(swiglib, d.getVar('bindir', True))
> +
> +do_install_append_class-native() {
> + create_wrapper ${D}${bindir}/swig SWIG_LIB='`dirname $''realpath`'/${@swiglib_relpath(d)}
> +}
> diff --git a/meta/recipes-devtools/swig/swig/0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch b/meta/recipes-devtools/swig/swig/0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch
> new file mode 100644
> index 0000000..81df3e2
> --- /dev/null
> +++ b/meta/recipes-devtools/swig/swig/0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch
> @@ -0,0 +1,69 @@
> +From a4a0440a644c6c5e5da096efe3cf05ba309a284f Mon Sep 17 00:00:00 2001
> +From: "NODA, Kai" <nodakai at gmail.com>
> +Date: Sun, 22 Apr 2012 17:01:02 +0900
> +Subject: [PATCH] Use /proc/self/exe for "swig -swiglib" on non-Win32
> + platforms.
> +
> +If it wasn't found, then fall back to a fixed string just as before.
> +
> +Upstream-Status: Submitted
> +http://sourceforge.net/mailarchive/message.php?msg_id=29179733
> +
> +---
> + Source/Modules/main.cxx | 24 ++++++++++++++++++++++--
> + 1 file changed, 22 insertions(+), 2 deletions(-)
> +
> +diff --git a/Source/Modules/main.cxx b/Source/Modules/main.cxx
> +index d2f5d3b..cbb0a12 100644
> +--- a/Source/Modules/main.cxx
> ++++ b/Source/Modules/main.cxx
> +@@ -26,6 +26,11 @@ char cvsroot_main_cxx[] = "$Id$";
> + #include "cparse.h"
> + #include <ctype.h>
> + #include <limits.h> // for INT_MAX
> ++#ifndef _WIN32
> ++#include <cstddef>
> ++#include <unistd.h> // for readlink
> ++#include <sys/stat.h> // for stat
> ++#endif
> +
> + // Global variables
> +
> +@@ -902,9 +907,9 @@ int SWIG_main(int argc, char *argv[], Language *l) {
> +
> + // Check for SWIG_LIB environment variable
> + if ((c = getenv("SWIG_LIB")) == (char *) 0) {
> ++ char *p;
> + #if defined(_WIN32)
> + char buf[MAX_PATH];
> +- char *p;
> + if (!(GetModuleFileName(0, buf, MAX_PATH) == 0 || (p = strrchr(buf, '\\')) == 0)) {
> + *(p + 1) = '\0';
> + SwigLib = NewStringf("%sLib", buf); // Native windows installation path
> +@@ -914,7 +919,22 @@ int SWIG_main(int argc, char *argv[], Language *l) {
> + if (Len(SWIG_LIB_WIN_UNIX) > 0)
> + SwigLibWinUnix = NewString(SWIG_LIB_WIN_UNIX); // Unix installation path using a drive letter (for msys/mingw)
> + #else
> +- SwigLib = NewString(SWIG_LIB);
> ++ char buf[PATH_MAX];
> ++ if (0 < ::readlink("/proc/self/exe", buf, sizeof(buf)) &&
> ++ (p = ::strstr(buf, "/bin/swig"))) {
> ++ int major, minor, patch;
> ++ const int ret = ::sscanf(VERSION, "%d.%d.%d", &major, &minor, &patch);
> ++ if (3 == ret) {
> ++ const ::ptrdiff_t dir_part_len = p - buf;
> ++ ::snprintf(p, PATH_MAX - dir_part_len, "/share/swig/%d.%d.%d", major, minor, patch);
> ++ struct ::stat stat_res;
> ++ if (0 == ::stat(buf, &stat_res) && S_ISDIR(stat_res.st_mode)) {
> ++ SwigLib = NewString(buf);
> ++ }
> ++ }
> ++ }
> ++ if (NULL == SwigLib)
> ++ SwigLib = NewString(SWIG_LIB);
> + #endif
> + } else {
> + SwigLib = NewString(c);
> +--
> +1.7.9.5
> +
> diff --git a/meta/recipes-devtools/swig/swig/0001-configure-use-pkg-config-for-pcre-detection.patch b/meta/recipes-devtools/swig/swig/0001-configure-use-pkg-config-for-pcre-detection.patch
> new file mode 100644
> index 0000000..1b1128a
> --- /dev/null
> +++ b/meta/recipes-devtools/swig/swig/0001-configure-use-pkg-config-for-pcre-detection.patch
> @@ -0,0 +1,64 @@
> +From 5c4d6d8538994d5fe9b3b46bfafaf0a605e3bda6 Mon Sep 17 00:00:00 2001
> +From: Koen Kooi <koen.kooi at linaro.org>
> +Date: Tue, 17 Jun 2014 08:18:17 +0200
> +Subject: [PATCH] configure: use pkg-config for pcre detection
> +
> +Signed-off-by: Koen Kooi <koen.kooi at linaro.org>
> +Upstream-Status: pending
> +---
> + configure.ac | 38 +++++++-------------------------------
> + 1 file changed, 7 insertions(+), 31 deletions(-)
> +
> +diff --git a/configure.ac b/configure.ac
> +index 0c984b7..6edcec1 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -70,38 +70,14 @@ AC_MSG_RESULT([$with_pcre])
> +
> + dnl To make configuring easier, check for a locally built PCRE using the Tools/pcre-build.sh script
> + if test x"${with_pcre}" = xyes ; then
> +- AC_MSG_CHECKING([whether to use local PCRE])
> +- local_pcre_config=no
> +- if test -z $PCRE_CONFIG; then
> +- if test -f `pwd`/pcre/pcre-swig-install/bin/pcre-config; then
> +- PCRE_CONFIG=`pwd`/pcre/pcre-swig-install/bin/pcre-config
> +- local_pcre_config=$PCRE_CONFIG
> +- fi
> +- fi
> +- AC_MSG_RESULT([$local_pcre_config])
> +-fi
> +-AS_IF([test "x$with_pcre" != xno],
> +- [AX_PATH_GENERIC([pcre],
> +- [], dnl Minimal version of PCRE we need -- accept any
> +- [], dnl custom sed script for version parsing is not needed
> +- [AC_DEFINE([HAVE_PCRE], [1], [Define if you have PCRE library])
> +- LIBS="$LIBS $PCRE_LIBS"
> +- CPPFLAGS="$CPPFLAGS $PCRE_CFLAGS"
> +- ],
> +- [AC_MSG_FAILURE([
> +- Cannot find pcre-config script from PCRE (Perl Compatible Regular Expressions)
> +- library package. This dependency is needed for configure to complete,
> +- Either:
> +- - Install the PCRE developer package on your system (preferred approach).
> +- - Download the PCRE source tarball, build and install on your system
> +- as you would for any package built from source distribution.
> +- - Use the Tools/pcre-build.sh script to build PCRE just for SWIG to statically
> +- link against. Run 'Tools/pcre-build.sh --help' for instructions.
> +- (quite easy and does not require privileges to install PCRE on your system)
> +- - Use configure --without-pcre to disable regular expressions support in SWIG
> +- (not recommended).])
> +- ])
> ++ PKG_CHECK_MODULES([PCRE], [libpcre], [
> ++ AC_DEFINE([HAVE_PCRE], [1], [Define if you have PCRE library])
> ++ LIBS="$LIBS $PCRE_LIBS"
> ++ CPPFLAGS="$CPPFLAGS $PCRE_CFLAGS"
> ++ ], [
> ++ AC_MSG_WARN([$PCRE_PKG_ERRORS])
> + ])
> ++fi
> +
> +
> + dnl CCache
> +--
> +1.9.3
> +
> diff --git a/meta/recipes-devtools/swig/swig_3.0.2.bb b/meta/recipes-devtools/swig/swig_3.0.2.bb
> new file mode 100644
> index 0000000..ac41914
> --- /dev/null
> +++ b/meta/recipes-devtools/swig/swig_3.0.2.bb
> @@ -0,0 +1,8 @@
> +require ${BPN}.inc
> +
> +SRC_URI += "file://0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch \
> + file://0001-configure-use-pkg-config-for-pcre-detection.patch \
> + "
> +
> +SRC_URI[md5sum] = "62f9b0d010cef36a13a010dc530d0d41"
> +SRC_URI[sha256sum] = "a2669657cabcedc371f63c0457407a183e0b6b2ef4e7e303c1ec9a3964cc7813"
> --
> 1.9.1
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
--
Martin 'JaMa' Jansa jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20150819/1ad066a5/attachment-0002.sig>
More information about the Openembedded-core
mailing list